Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

CALL/360:BASIC

From Wikipedia, the free encyclopedia
Programming language

CALL/360:BASIC was anIBM dialect of theBASIC programming language for theSystem/360 and later platforms. It was based on mid-1960s versions ofDartmouth BASIC but added a number of extensions. Most of these were related to file handling, which, at that time, Dartmouth lacked. It also added support for the mathematical symbols found on some IBM terminals, so that<= could be entered directly as. Differences are otherwise minor.

History

[edit]

CALL/360:BASIC was announced in 1968,[1] along with several other languages for the system includingAPL andFORTRAN and the Datatextmarkup language basedtext editor. Early advertizing for the system boasted that one could "Start learning CALL / 360 : BASIC after breakfast and you can share our computer before lunch".[2]

The CALL/360 suite was developed within IBM's Information Marketing department. Initially, the products were considered proprietary and could only be accessed via the online service. Customer demand forced them to offer these products to otherSystem/360 users, which they did by releasing it on an "as is" basis with no support.[3] Later the same year, IBM transferred this department, along with the rest of itstimesharing services, to theService Bureau Corporation (SBC),[4] including the CALL/360operating system and CALL/360:BASIC. Manuals after that date refer to the language as an SBC product.[5]

In 1973, SBC was itself transferred toControl Data Corporation as part of a long runninganti-trust lawsuit.[6]

Description

[edit]

CALL/360:BASIC is almost identical to Dartmouth BASIC the Fourth, including support for the advancedMATrix math features. It differs primarily in its support of file handling.[7]

Basics

[edit]

The language included the commandsLET,PRINT,END,FOR...NEXT with an optionalSTEP,[a]GOTO,GOSUB...RETURN,IF...THEN,IF...GOTO,DEF,READ,DATA,RESTOREDIM, andREM. To this list, it added computed GOTO of the formGOTO 100,200,300 ON X.[10] Note that theTHEN in anIF statement can only be followed by a line number, the idea of allowing arbitrary statements afterTHEN did not appear until later.[11]REMarks are always shown with a colon in the manual,REM: orREMARK:, but it is not clear if these were required.[12] TheRESTORE,END andSTOP commands could also be followed by a comment string, where a colon was not required.[10]

PRINT was expanded withPRINT USING followed by a line number. The line referred to started with a colon and then a series of formatting strings. This series of strings was known as an "image".[13] Items to be printed could be separated by commas or semicolons, with commas having "print zones" 18-characters wide.[14] A new command,PAUSE, stopped the program with a statementPAUSE AT LINE 35 and then waited for the user to enter text, which was ignored. The end-of-line character caused the program to continue.[b] It could also be followed by a comment in the source.[13]

It also included the same basic set of math instructions as Dartmouth,+,-,* and/, as well as the up-arrow for exponents and adding the two-asterisk form,10**9.[15] Logical operators included the standard set of=,>,=>,<,<= and<>, as well as the special character versions,,,.[15] It included the standard set of mathematical functions from Dartmouth, addingCOT,SEC,CSC,ASN,ACS,HSN,HCS,HTN,LTW for base-2 logs, andLGT for base-10. It also includedDEG andRAD functions to convert between degrees and radians,[16] and three pre-defined internal constants,&PI,$E and$SQR2, which could be used instead of typing in the actual numbers.[17]

CALL/360 included string variables, only recently introduced to Dartmouth, using the same dollar-sign notation. It added the ability to delimit string constants with either single or double quotes, as well as the ability to type two of either character within a string to include a single character of that type. For instance,"ABC""DE" representsABC"DE.[18] Strings were broken into 18-character lengths internally, and strings that did not use up an entire 18-character record were padded with blanks, meaning"" would be interpreted as 18 spaces.[18]

Arrays and matrix math

[edit]

Like early versions of Dartmouth, CALL/360:BASIC supported one and two dimensional arrays, with the lower index always being 1. Thus an array defined usingDIM A(3) contains three values, A(1) through A(3). CALL/360 also added the ability to define string arrays, with each entry being a single 18-character string.[19] In contrast to Dartmouth, it does not appear variables were always DIMed; in Dartmouth one could refer toA(5) without dimensioning A, in which case it had a default behaviour of beingDIM A(10). The manual does not explicitly say CALL/360 does not do this, but it does state variables cannot be used in matrix operations without being dimensioned. A maximum of 29 numeric arrays were allowed in a program, with the total sum of the elements across all arrays being no more than 7167.[20]

CALL/360:BASIC included most of the matrix commands from Dartmouth, including the ability to perform basic math on a matrix as a single operation, likeMAT A = A * 10 where A is an array that will then have all of its elements multiplied by 10. It also included the functionsCON,IDNZER,[21]INV andTRN.[8] Data could be loaded into a matrix withMAT READ and output withMAT PRINT. To these original commands they also addedGET andPUT, which were used to read or write all the elements in a matrix to or from a file.[22]

Files

[edit]

The major addition to CALL/360:BASIC was a usable file handling system. This started with theOPEN 10, 'filename' which opened a file and assigned it to the provided file number, 10 in this case, which could be an expression. Reading from the file was accomplished withGET 10: A, B, C in the same general fashion as theREAD statement. Writing was handled by the otherwise identicalPUT.[23] The file pointer could be moved back to the start of the file withRESET followed by one or more file numbers. There was no way to specify a position within a file.[24]CLOSE with a similar list of one or more file numbers freed thefile handles.[25]

Example

[edit]

The following program opens the fileTEMPFILE for input as file handle 10, and then reads lines of data containing a product name and four sales prices in a loop. Notice that the loop is not terminated, instead, this program ends when it runs out of data and causes aEND OF FILE error. How control is passed to line 70 at that point is not explained in the manual. The output to the screen is formatted using the image on line 50.[26]

10OPEN10,'ITEMFILE',INPUT20GET10:A$,A,B,C,D30LETAl=(A+B+C+D)/440PRINTUSING50,A$,Al50:AVERAGEPRICEFORA########IS$#.##60GOTO2070CLOSE1080END

Notes

[edit]
  1. ^The manual often fails to mention optional features, STEP is not mentioned in the list of keywords for instance, although NEXT is.[8] STEP does appear in the detailed description of the FOR loop later in the manual.[9]
  2. ^In this respect, PAUSE operates identically to an INPUT, differing only in that it prints the line number.

References

[edit]

Citations

[edit]
  1. ^"Computer Digest". 1968.{{cite magazine}}:Cite magazine requires|magazine= (help)
  2. ^"IBM ad".Scientific Research. 1968.
  3. ^Sharpe, William (1969).The Economics of Computers. Columbia University Press. p. 523.ISBN 9780231083102.
  4. ^Gregory, Nathan (2018).The Tym Before. Lulu.com. p. 76.ISBN 9781387304059.
  5. ^Manual 1970, p. i.
  6. ^Pollack, Andrew (3 February 1982)."I.B.M. Will Rent Time On Its Units".New York Times.
  7. ^Kemeny & Kurtz 1985.
  8. ^abManual 1970, p. 24.
  9. ^Manual 1970, p. 34.
  10. ^abManual 1970, p. 31.
  11. ^Manual 1970, p. 36.
  12. ^Manual 1970, p. 29.
  13. ^abManual 1970, p. 44.
  14. ^Manual 1970, p. 46.
  15. ^abManual 1970, p. 14.
  16. ^Manual 1970, p. 13.
  17. ^Manual 1970, p. 9.
  18. ^abManual 1970, p. 10.
  19. ^Manual 1970, p. 11.
  20. ^Manual 1970, p. 56.
  21. ^Manual 1970, p. 12.
  22. ^Manual 1970, p. 51.
  23. ^Manual 1970, p. 74.
  24. ^Manual 1970, p. 79.
  25. ^Manual 1970, p. 80.
  26. ^Manual 1970, p. 75.

Bibliography

[edit]
Dialects of theBASIC programming language (list)
Classic
Microsoft
Texas Instruments
Hewlett-Packard
Locomotive Software
Microcomputers
Minicomputers
Time-sharing computers
Other
Extenders
Procedure-
oriented
Proprietary
Free and
open source
Withobject
extensions
Proprietary
Free and
open source
RAD
designers
Proprietary
Free and
open source
Defunct
Retrieved from "https://en.wikipedia.org/w/index.php?title=CALL/360:BASIC&oldid=1169609344"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp