Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Dartmouth BASIC
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Development history== ===Earlier work=== [[John G. Kemeny]] joined the mathematics department of Dartmouth College in 1953 and later became its department chairman. In 1956 he gained access to an [[IBM 704]] via [[Massachusetts Institute of Technology|MIT's]] [[NERCOMP|New England Regional Computer Center]] efforts. That year, he wrote the [[DARSIMCO]] language, a version of [[assembly language|assembler]] which simplified the programming of mathematical operations. He was aided by [[Thomas E. Kurtz]], who joined the department that year.{{sfn|Kurtz|1981|p=516}} DARSIMCO was forgotten when the first [[Fortran|FORTRAN]] compiler was installed on the machine in 1957. The arrival of FORTRAN instilled an important lesson. Kurtz, having been indoctrinated that FORTRAN was slow, spent several months writing a program in 704 assembler which had taken up about an hour of CPU time to debug and still was not running. Giving up, he rewrote it in FORTRAN and had it running in five minutes. The lesson was that high-level languages could save time, regardless of their measured performance.{{sfn|Kurtz|1981|p=516}} In 1959, the school received its first computer, the [[drum memory|drum-based]] [[LGP-30]]. One student wrote a FORTRAN-inspired language called DART for the machine. This led to an effort to produce an ALGOL 58 compiler, turning to [[ALGOL 60]] when that definition was finalized. Writing the compiler was difficult due to the very small memory size, 32 KB in modern terms, and was extremely slow, based on the drum speed of 3600 rpm. Nevertheless, they were able to produce a functional cut-down version known as [[Dartmouth ALGOL 30|ALGOL 30]].{{sfn|Kurtz|1981|pp=516-516}} Further development produced SCALP, the "Self-Contained Algol Processor", a one-pass compiler that was ready to run the compiled program as soon as the [[punched tape]] finished reading in the source. Output with the program results or any error messages would immediately appear. This [[compile-and-go]] style of operation would later be used by BASIC.{{sfn|Kurtz|1981|pp=516-516}}{{sfn|Kemeny|Kurtz|1985|p=7}} In 1962, Kemeny and high-school student Sidney Marshall{{sfn|Kemeny|Kurtz|1985|p=8}} began experimenting with a new language, [[DOPE (Dartmouth Oversimplified Programming Experiment)]]. This used numbered lines to represent instructions, for instance, to add two numbers, DOPE used: 5 + A B C Which meant "on line 5, perform an addition of the values in variables A and B and put the result in C". Although somewhat cryptic in layout, the basis for the future BASIC language can be seen.{{sfn|Kurtz|1981|p=517}} In addition to basic mathematical operations, the language included SQR, EXP, LOG, SIN and a simple branching construct.{{sfn|Kurtz|1981|p=518}} ===Computing in liberal arts=== Kemeny and Kurtz agreed on the need for programming literacy among students outside the traditional [[Science, technology, engineering, and mathematics|STEM fields]]; only 25% of the students at Dartmouth took STEM-related courses, but some level of mathematics was used in almost every field. Moreover, as computers became more important in society, they wondered "How can sensible decisions about computing and its use be made by persons essentially ignorant of it?"{{sfn|Kurtz|1981|p=518}} Kemeny later noted that "Our vision was that every student on campus should have access to a computer, and any faculty member should be able to use a computer in the classroom whenever appropriate. It was as simple as that."{{sfn|Time|2014}} But doing so would be largely impossible given what they had to work with; the turnaround on a typical SCALP run was about 15 minutes, and the languages were far too difficult for non-STEM users to use for basic tasks.{{sfn|Kurtz|1981|p=518}} It was not simply the complexity that was a problem, it was the entire concept of the [[batch processing]]. Students would prepare their programs on punch cards or paper tape, submit them to the computer operators, and then at some future point receive their output. This would often reveal an error that required the entire process to be repeated. As they later put it, "If it takes on the order of 1 day for one try, the student will either lose interest or forget what the problems were. At best, he will waste time standing around waiting for the day's results to appear."{{sfn|Kemeny|Kurtz|1968|p=3}}{{efn|Note the use of the term "his", which in this case was the only possibility as Dartmouth did not admit women until some time later.}} In 1959, due largely to Kemeny's reputation as an innovator in math teaching, the department won an [[Alfred P. Sloan Foundation]] award for $500,000 to build a new department building.<ref>{{cite magazine |url=https://content.time.com/time/subscriber/article/0,33009,825616,00.html |title= High Math at Hanover |date=23 February 1959 |magazine=Time}}</ref> ===Developing the concept=== During a 1961 visit to MIT, they were introduced to the [[PDP-1]] and its recently completed experimental time-sharing [[operating system]]. [[John McCarthy (computer scientist)|John McCarthy]] asked Kurtz why they did not use time sharing for their efforts to bring computing to the masses. Kurtz returned to Dartmouth and told Kemeny "we should do time sharing", to which Kemeny immediately replied "OK".{{sfn|Kemeny|Kurtz|1985|p=3}} In an experiment to test whether the concept was workable, students were broken into groups of five and given turns on the LGP-30 using SCALP.{{sfn|Kemeny|Kurtz|1985|p=7}} Computer time was broken into 15-minute sessions and each group of five was given one session and then turned it over to the next group. It was found that students could generally complete their programs in two or three "turnarounds" during a single session. This clearly suggested that an interactive system would allow hundreds of users to successfully use a single machine.{{sfn|Kemeny|Kurtz|1985|p=4}} The arrival of the [[Teletype Model 33]] [[teleprinter]] using the newly introduced [[ASCII]] over telephone lines solved the problem of access; no longer would the programmers have to submit the programs on cards or paper tape, they would now use the Model 33 to type directly into the computer. All that was needed was a new machine that was fast enough to host a time-sharing system, and a simple language for the programmers to use.{{sfn|Kurtz|1981|p=519}} When the topic of a simple language began to be considered seriously, Kemeny immediately suggested writing a new one. Kurtz was more interested in a cut-down version of FORTRAN or ALGOL.{{sfn|Kemeny|Kurtz|1985|p=6}} But these languages had so many idiosyncrasies that Kurtz came to agree with Kemeny: {{blockquote|If we had corrected FORTRAN's ugly features, we would not have FORTRAN anymore. I reluctantly had to agree with John that, yes, a new language was needed.{{sfn|Kemeny|Kurtz|1985|p=9}}}} Over time, four key elements emerged; the system would use time-sharing, a new language would be needed, to get users onto the system new courses would introduce programming as an adjunct to other subjects, and finally, the terminals would be open to all users.{{sfn|Kurtz|1981|pp=519-520}} ===Initial version=== The project officially started in September 1963. The goal was to develop the language and operating system on an off-the-shelf computer.{{sfn|Kiewit|1971|p=9}} In early 1964, they approached the [[National Science Foundation]] (NSF) for funding. The NSF sent the proposals, one for the time sharing system and another for the language, out for peer review. The reviews invariably suggested they did not understand the difficulty of what they were attempting. In spite of these negative comments, the NSF went ahead with both grants. Educational discounts available from [[General Electric]] led to the purchase of a [[GE-225]] computer, in an era when not "going IBM" was still fraught with peril.{{sfn|Kemeny|Kurtz|1985|p=5}} The GE-225 was paired with the much simpler [[DATANET-30]] (DN-30) machine and a [[hard drive]] connected to both machines in order to share programs.{{sfn|Kurtz|1981|p=520}} The DN-30 lacked any programming documentation at the time, as it was never intended to be shipped from the factory without a program already installed.{{sfn|Kemeny|Kurtz|1985|p=5}} It included one key feature, [[direct memory access]] (DMA) access to the larger GE machines. This meant small messages could be quickly passed back and forth between the machines, allowing commands typed by the user to be immediately performed by the 225.<ref name=DN30Ref>{{cite book |last=General Electric Computers |title=DATANET-30 Programming Reference Manual |year=1965 |url=http://dtss.dartmouth.edu/scans/D-30%20Manuals/D-30manual.pdf}}</ref> The system would work by having the DN-30 run the terminals and save the user's work to the disk. When the user typed <code>RUN</code>, the DN-30 would use DMA to send that command to the GE-225. The 225 would read that file, compile it, run it, and pass back the results to the DN-30 which would print the output on the terminal.<ref>[https://web.archive.org/web/20070808230115/http://www.dtss.org/index.php Dartmouth Time Sharing System (DTSS). March 1995]. Retrieved 27 May 2016</ref> In the summer of 1963, pending the purchase of the computer, GE provided access to one of their GE-225s. Kemeny began working on a prototype compiler. Students Michael Busch and John McGeachie began working on the operating system design that fall. Both the language and the OS were extensively modified during this period, although the basic goals remained the same and were published in a draft form that November.{{sfn|Kurtz|1981|p=520}} The school's machine arrived in the last week of February 1964,{{sfn|Kemeny|Kurtz|1968|p=224}} was operational by mid-March,{{sfn|Kiewit|1971|p=10}} and officially handed over on 1 April. By that point, the operating system design was already well developed. Most of the student programmers working on the operating system did so for 50 hours a week, in addition to their normal course load.{{sfn|Kemeny|Kurtz|1968|p=224}} The language was developed in parallel on borrowed time on another 225 machine.{{sfn|Kemeny|Kurtz|1968|p=225}} The OS was completed in April, and the entire system running on three Model 33 terminals was ready by the end of the month. John Kemeny and John McGeachie ran the first BASIC program on 1 May 1964 at 4 a.m. [[Eastern Time Zone|ET]].{{sfn|Kiewit|1971|p=10}} It is not completely clear what the first programs were. Many sources, including Dartmouth, claim it was this simple program:<ref>{{cite web |url=https://www.dartmouth.edu/its-tools/archive/history/timeline/1960s.html |title=The 1960s |website=Dartmouth ITS}}</ref> PRINT 2 + 2 A later history of the language states that two programs were typed in at the same time, one by Kemeny and one by another unnamed programmer. They typed in their programs, typed {{code|RUN}} at the same time, and received the correct results.{{sfn|Kemeny|Kurtz|1985|pp=16,22}} Kurtz was an early riser and had already gone home and "missed all the fun."{{sfn|Kemeny|Kurtz|1985|p=16}} Over the next month the system was tested by having a numerical analysis class test programs on the system. During this period, the machine remained running properly for an average of five minutes.{{sfn|Kemeny|Kurtz|1968|p=226}} The problems were rapidly addressed, and in June it was decided to increase the number of terminals to eleven. It was around this time that a faster GE-235 replaced the 225. By the fall, 20 terminals were in use.{{sfn|Kurtz|1981|p=520}} GE began to refer to the combination of GE-235 and DN-30 as the GE-265,{{sfn|Kemeny|Kurtz|1985|p=21}} adding their model numbers together. GE built about 75 additional examples of the GE-265,{{sfn|Kemeny|Kurtz|1985|p=22}} many for their [[service bureau]] business. GE referred to these as their Mark I time-sharing systems.{{sfn|Kurtz|1981|pp=532,534}} ===New system=== One of the original goals of the program was to work programming into other coursework. This was a success, but it put considerable strain on the system and it became clear that it had no room for future growth.{{sfn|Kiewit|1971|p=11}} In 1965, the team approached GE for support with ongoing development. In September, Vice President Louis Rader offered the new [[GE-635]], which ran approximately 10 times as fast and included two CPUs. Additionally, a second DN-30 would be added to handle more lines, enough for 150 simultaneous users.{{sfn|Kiewit|1971|p=11}} To house it, a larger facility would be needed than the basement of College Hall where the 265 was running. Peter Kiewit, Class of '22, along with additional support from the NSF, led to the construction of the Kiewit Computation Center, which opened in December 1966.{{sfn|Kiewit|1971|p=11}} While waiting for this machine to arrive, in the summer and fall of 1966 a GE-635 at the [[Rome Air Development Center]] was used to develop MOLDS, the "Multiple User On-Line Debugging System". The GE-635 was operational in early 1967, and using MOLDS the new operating system was fully functional in September, at which time the GE-265 was sold off.{{sfn|Kurtz|1981|p=533}} GE provided the machine for free for three years as part of a wider agreement under which Dartmouth would develop new versions of BASIC while GE used it to develop a new release of their version of the operating system.{{sfn|Kurtz|1981|p=533}} This collaboration proved to be a success; GE began deploying these machines as their Mark II time-sharing systems,{{sfn|Kurtz|1981|p=534}} and by the end of the decade they were one of the largest time-sharing vendors in the world.{{sfn|Kiewit|1971|p=11}} When this "Phase I" system became operational, the Dartmouth team began development of "Phase II", the ideal operating system. This was installed in March 1969, and changed its name to the [[Dartmouth Time-Sharing System]] shortly thereafter. When the three-year period was up, GE gifted the machine to the university. Although the two teams remained in contact, and several good-faith attempts were made to continue the relationship, little further collaboration occurred and the partnership officially ended on 20 September 1972.{{sfn|Kurtz|1981|p=533}} ===Expanding user base=== A review in 1968 noted that 80% of the students and 70% of the faculty was making some use of the system. Hundreds of terminals were spread across the campus, from the hospital to the business school. 57% of the CPU time was used for coursework, 16% for research, and the remaining 27% for "recreational use"; Dartmouth actively encouraged users to play games as a way to get hands-on use and overcome fear of the computer.{{sfn|Kiewit|1971|p=17}} Beginning with another NSF grant, in 1967 Dartmouth also began placing terminals in off-campus locations, including high schools in the area. In terms of user counts, these terminals hosted 69% of the total users, although they used a smaller amount of computer time.{{sfn|Kiewit|1971|p=17}} By 1971 there were 79 remote terminals, as far away as [[New Jersey]] and [[Bangor, Maine]]. These were supported by [[multiplexer]] systems that allowed up to 12 terminals to be supported over a single voice-grade telephone line. Additionally, a number of these lines were available for dial-up use with a [[modem]].{{sfn|Kiewit|1971|p=18}} ===Influence=== Time-sharing was a major area of research in the 1960s, with many in the computer industry predicting that computing power would become inexpensive and widespread. This was most famously stated by John McCarthy, who said "computing may someday be organized as a public utility just as the telephone system is a public utility."<ref>{{cite book|title=Architects of the Information Society, Thirty-Five Years of the Laboratory for Computer Science at MIT|editor1-first=Hal|editor1-last=Abelson|first1=Simson|last1=Garfinkel|isbn=978-0-262-07196-3|publisher=MIT Press|year=1999|page=1|url=https://books.google.com/books?id=Fc7dkLGLKrcC&pg=PA1|location=Cambridge}}</ref> While other languages were available on DTSS, {{as of|1972|lc=y}} 98% of its programs were written in BASIC.<ref name="kemeny1972">{{Cite book |last=Kemeny |first=John G. |url=https://archive.org/details/mancomputer00keme/page/32/mode/2up?view=theater |title=Man and the Computer |publisher=Charles Scribner's Sons |year=1972 |location=New York |pages=32β37, 41β42 |isbn=9780684130095 |language=en-US |lccn=72-1176}}</ref> With BASIC, computer services became far more accessible to end-users whose tasks would take too long to code for them to be suitable for solving on a computer. This led to a number of manufacturers who introduced computers specifically designed for this market of users who wanted to solve small or medium-scale tasks and were not as worried about outright performance. In particular, two machines aimed directly at this market became the "most widely used small time-sharing systems ever developed".{{sfn|Kurtz|1981|p=534}} The [[HP 2000]] ran [[HP Time-Shared BASIC]], a combination of a BASIC and a time-share operating system almost identical to the DTSS setup. The system supported up to 32 simultaneous users, using a low-end HP 2100 CPU to run the terminals in the same fashion as the Datanet-30 of the original GE-265 setup, while the programs ran on a higher-end model of the same machine, typically differing in that it had more [[core memory]]. HP's BASIC used a semi-compiled [[lexical analysis#Tokenization|tokenized]] format for storing programs, which improved loading times and meant "compiles" were zero-time.<ref>{{cite book |url=ftp://ftp.mrynet.com/pub/os/HP2000/pdf/02000-90002_2000A_UG_Aug69.pdf |title=A Guide to Time Shared BASIC |date=August 1969 |publisher=Hewlett Packard}}</ref> [[Digital Equipment Corporation]] took a different approach, using a single-machine offering based on their existing [[PDP-11]] line with the new [[RSTS/E]] operating system and [[BASIC-PLUS]]. BASIC-PLUS more closely followed the Fifth Edition, including the <code>MAT</code> commands, but was implemented as a pure interpreter as opposed to the Dartmouth compiler or HP's tokenized format. It also included a number of control structures following the [[JOSS]] model, like {{code|2=basic|PRINT I IF I > 10}}.<ref name=plus>{{cite book |url=http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp11/rsts/V04/DEC-11-ORBPA-A-D_BASIC-PLUS_LangMan_Oct72.pdf |title=BASIC-PLUS Manual |date=1972 |publisher=DEC}}</ref> [[Tymshare SUPER BASIC]] also supported JOSS-style structures and matrix math, but retained the original compile-and-go operation. Practically every vendor of the era offered some solution to this same problem, although they may not have been so closely similar to the original. When Kurtz began considering the formation of an [[ANSI]] standard for BASIC in 1973, he found that the number of time-sharing service bureaus with BASIC available was greater than any other language. Unfortunately, this success was also a problem; by that point, there were so many variations that a standard seemed impossible.{{sfn|Kurtz|1981|p=534}} ===Games in BASIC=== Kemeny actively encouraged games on the DTSS platform, and considered it to be one of the major reasons for the success of the DTSS system.{{r|kemeny1972}} He was likely the author of an [[early mainframe game]]. Although Kemeny did not take credit for it, he later referred to ''FTBALL'' by stating it "was written on Sunday after a certain [[1965 Dartmouth Indians football team|Dartmouth]]-[[1965 Princeton Tigers football team|Princeton]] game in 1965 when Dartmouth won the [[Lambert-Meadowlands Trophy|Lambert trophy]]. It's sort of a commemorative program". The game was an upset over heavily favored Princeton.<ref>{{cite web |title=John Kemeny and Tecmo's BASIC FTBALL Granddaddy |url=https://tecmobowl.org/forums/topic/69925-john-kemeny-and-tecmo%E2%80%99s-basic-ftball-granddaddy/ |date=17 October 2017 |access-date=25 July 2018 |archive-date=25 July 2018 |archive-url=https://web.archive.org/web/20180725214835/https://tecmobowl.org/forums/topic/69925-john-kemeny-and-tecmo%E2%80%99s-basic-ftball-granddaddy/ |url-status=dead }}</ref>{{efn|[[David Ahl]] stated Kemeny had written it when describing the game in BASIC Computer Games.{{sfn|Ahl|1978|p=64}}}} As the system expanded, especially after the addition of string handling in BASIC, the DTSS system became a major platform for the development of many [[text-based game]]s. In the early 1970s, the [[People's Computer Company]] began publishing these in their magazine, typically converted to the more widely available HP BASIC. Many of these listings were collected in their 1975 book, ''What to do after you hit return''. Although these are published in HP BASIC form, the majority of them trace their history to either DTSS or the [[Lawrence Hall of Science]] in California where a similar machine was set up, known as DECISION.<ref>{{cite book |url=https://archive.org/details/Whattodoafteryouhitreturn |publisher=People's Computer Company |date=1975 |title= What to do after you hit return}}</ref> A more famous collection is ''[[BASIC Computer Games]]'' of 1978, where about half of the programs in the book were either written at Dartmouth, including another by Kemeny, Batnum, or more commonly, one of the many high schools that were connected to it after 1968. A particularly prolific high school was [[Lexington High School (Massachusetts)|Lexington High School]] in [[Massachusetts]] but many other schools appear as well. A number of the programs do not list their original locations, but come from authors that were likely connected to the system through a school or public projects like Project SOLO.{{sfn|Ahl|1978}} [[Multiplayer video game]]s became possible in BASIC when [[Stephen J. Garland|Stephen Garland]] and John McGeachie developed the MOTIF Multiple Online Terminal Interface for DTSS. To start a game, a user typed LINK followed by a session name instead of RUN, thereby enabling other users to connect to the game by typing JOIN followed by the session name. MOTIF then multiplexed input and output for the BASIC program, prepending a string identifier to the beginning of each line of input and output. The first programs developed with this interface were a two-person version of FTBALL and a five-person poker game. More serious was a management game that allowed up to ten students at the Amos Tuck School of Business Administration to compete in the production and marketing of a single product.<ref>John S. McGeachie, "Multiple terminals under user program control in a time-sharing environment", ''Communications of the ACM'' 16:10, October 1973, pages 587&–590.</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)