Part 1 of Lll 8080 Basic Interpreter

Total Page:16

File Type:pdf, Size:1020Kb

Part 1 of Lll 8080 Basic Interpreter SOFTWARE SECTION MICROCOMPUTER DEVELOPMENT SOFTWARE PART 1 OF LLL 8080 BASIC INTERPRETER Submitted by E. R. Fisher By Jerry Barber & Royce Eckard Lawrence Livermore Laboratory FOREWARD Execution time The BASIC interpreter was developed at the Univer­ Operation on 8080 (m secl sity of Idaho by John Dickenson. Jerry Barber. and John Teeter under a contract with the Lawrence Liver­ ADD 2.4 m sec SUBSTRACT more Laboratory. The floating point package was 2.4 m sec MULTIPLY developed by David Mead. modified by Hal Brand and 5.4 m sec DIVIDE 7.0 m sec Frank Olken. In addition. Jerry Barber. as an LLL summer employee. made significant contributions to this document and to implementing the BASIC lan­ BASIC INTERPRETER LANGUAGE GRAMMAR guage in an MCS-8080 microprocessor. COMMANDS - Six BASIC interpreter commands INTRODUCTION are provided. These commands are: This article is Part 1 of a series of four articles RUN Begins program execution covering the LLL 8080 BASIC interpreter just released Clears program from merrory to the public domain by Lawrence Livermore Labor­ SCR Lists ASCII program in merrory atory. The other three articles that will be published in LIST Punches paper-tape copy of program the next three months are: PLST PTAPE Reads paper-tape copy of program PART 2 - LLL 8080 BASIC INTERPRETER SOURCE using high-speed reader PROGRAM WITHOUT FLOAT O\ITRL S Interrupts program during execution PART 3 - LLL 8080 BASIC FLOAT SOURCE PRO­ GRAM PART 4 - LLL 8080 OCTAL DEBUGGING SOURCE The LIST and PLST commands can be followed by PROGRAM one or two line numbers to indicate that only a part of the program is to be listed. If one line number follows The partition approach of publishing the com­ the command. the program is listed from that line plete 120 page LLL BASIC interpreter source pro­ number to the end of the program. If two line numbers gram assembly listing and descriptive text is taken as (separated by a comma) follow the command. the list­ the only logical way to transfer the complete source ing begins at the first line number and ends at the program and text to INTERFACE AGE readers. second. When a command is completed. READY will be STORAGE REQUIREMENTS typed on the teletype. Once initialized by a command. a process will normally go to completion. However. if The BASIC interpreter consists of a 5K-byte-PROM you wish to interrupt an executing program or a list­ resident interpreter used for program generation and ing. simply strike CNTRL S and the process will ter­ debug was configured to operate with the MCS-8080 minate and a READY message will be microprocessor. typed. The goal in developing the 8080 BASIC was to provide a high-level. easy-to-use conversational lan­ ST A TEM ENTS - Each statement line begins with a guage for performing both control and computation line number. which must be an integer between 0 and functions in the MCS-8080 microprocessor. To mini­ 32767. Statements can be entered in any order. but mize system memory size and cost. the interpreter was they will be executed in numerical order. All blanks are constrained to fit into 5 K bytes. It was necessary. ignored. The following types of statements are therefore. to limit the commands to those considered allowed: the most useful in microprocessor applications. REM - Indicates a remark (comment). The system deletes blanks from all character strings that are MATH OPERATOR EXECUTION TIMES not enclosed in quotes ("). Therefore. it is sug­ Average execution times of the four basic math gested that characters following the REM key operators are as follows; word be enclosed in quotes. END - Indicates the end of a program. The program stops when it gets to the END statement. All Happy Holidays programs must end with EN D. 110 INTERFACE AGE DECEMBER 1976 SOFTWARE SECTION MICROCOMPUTER DEVELOPMENT SOFTWARE STOP - Stops the program. This statement is used after the last identifier so, if only one identifier is when the program needs to be stopped other present no comma is needed. When an INPUT than at the end of the program text. statement is executed, a colon (:) is output to the GOTO - Transfers program control to specified teletype to indicate that data are expected. The statement line number. This statement is used to data are entered as numbers separated by com­ loop or jump unconditionally within a program. mas. If fewer data are entered than expected, Program execution continues from new state­ another colon is output to the teletype, indicat­ ment. ing again that data are expected. For example, DIM - Declares an array. Only one-dimensional where arrays with an integer constant number of ele­ 50 INPUT I,J,K,P ments are allowed. An array with N elements is executed, a colon is output to the teletype. uses indexes 0 through N-1. All array locations Then, if only 3 numerical values are entered, ano­ are set to zero. No check is made on subscripts to ther colon will be output to indicate that more ensure that they are within the declared array. An data are expected; e.g., array variable must be a ·single letter. : 4,4,6.2 CIR LET - Indicates an assignment statement (Addition, : 10.3 CIR, subtraction, multiplication, division, or special function may be used). The LET statement is used where CIR is the carriage-return key. If an error is to assign a value to a variable. Non-array var­ made in the input-data line, an error message is iables can be either a single letter or a letter issued and the entire line of data must be re­ followed by a digit. It is possible to have an array entered. If, for the above example, and a non-array variable with the same name. : 4,4,6M2,1 0.3 CIR The general form of the LET statement is: is entered, the system will respond line number LET identifier = expression, INPUT ERROR, TRY AGAIN where "identifier" is either a subscripted array element or a non-array variable or function (see section on functions) and "expression" is a unary At this time, the proper response would be or binary expression. The expression will be one 4,4,6.2,10.3 C/R. of the following ten types: PRINT - This command allows numerical data and variable character strings to be printed on the teletype. -variable Two types of print items are legal in the print variable + variable statement: character strings enclosed in quotes variable - variable (") and expressions. These items .are separated by -variable + variable either a comma or a semicolon. If print items are -variable - variable separated by a comma, a skip occurs to the next variable * variable pre-formatted field before printing of the item -variable * variable following the comma begins. The pre-formatted variable I variable, fields begin at columns 1, 14,27,40, and 52. If -variable I variable, print items are separated by a semicolon, no skip occurs. If a semicolon or comma is the last where "variable" is an identifier, function, or character on a print statement line, the appro­ number. The subscript of an array can also be an priate formatting occurs and the carriage-return­ expression. line feed is suppressed. A print statement of the IF - Condition statement which transfers to specified form line number statement if the condition of the 50 PRINT expression is met. It has the form: line number IF will generate a carriage-return-line feed. Thus, expression relation expression TH EN transfer line the two lines below number. The possible relations are: 50 PRINT "INPUT A NUMBER"; Equal = 60 INPUT A Greater than > Less than < will result in the following output: Greater than or equal > = = < Less than or equal < = = < INPUT A NUMBER: Not equal <> >< FOR - Causes program to iterate through a loop a If the relation between the two expressions is designated number of times. true then the program transfers to the line NEXT - Signals end of loop at which point the number, otherwise it continues sequentially. computer adds the step value to the variable and INPUT - This command allows numerical data to be checks to see if the variable is still less than the input via the teletype. The general form is: terminal value. Line nu mber I N PUT identifier list GOSUB - Transfer control to a subroutine that begins at specified line number where an "identifier list" is a sequence of iden­ tifiers separated by commas. There is no comma RETURN - Returns control to the next sequential line 112 INTERFACE AGE DECEMBER 1976 SOFTWARE SECTION MICROCOMPUTER DEVELOPM-=NT SOFTWARE after the last GOSUB statement executed. A on the stack. Thus. on entry to a subroutine. the return statement executed before a GOSUB is first POP instruction will recover the address to equivalent to a STOP statement. the last parameter in the call list. The next will CALL - Calls user-written assembly-language rou­ recover the next to last. etc. tines of the form Each scalar variable passed results in the address CALL (N. A. B•... l. to the first byte of a four-byte block of memory. where N is a subroutine number from 0- 254 and Each array element passes the address to the first A. B.... are parameters. The parameters can be byte of a (N-M) x four-byte memory block. where constants. variables. or expressions. However. if N is the number of elements given the array in variables and constants or expressions are inter­ the DIM STMT and M is the array subscript in the mixed. all variables should have been referenced CALL STMT.
Recommended publications
  • Introduction to Programming in Fortran 77 for Students of Science and Engineering
    Introduction to programming in Fortran 77 for students of Science and Engineering Roman GrÄoger University of Pennsylvania, Department of Materials Science and Engineering 3231 Walnut Street, O±ce #215, Philadelphia, PA 19104 Revision 1.2 (September 27, 2004) 1 Introduction Fortran (FORmula TRANslation) is a programming language designed speci¯cally for scientists and engineers. For the past 30 years Fortran has been used for such projects as the design of bridges and aeroplane structures, it is used for factory automation control, for storm drainage design, analysis of scienti¯c data and so on. Throughout the life of this language, groups of users have written libraries of useful standard Fortran programs. These programs can be borrowed and used by other people who wish to take advantage of the expertise and experience of the authors, in a similar way in which a book is borrowed from a library. Fortran belongs to a class of higher-level programming languages in which the programs are not written directly in the machine code but instead in an arti¯cal, human-readable language. This source code consists of algorithms built using a set of standard constructions, each consisting of a series of commands which de¯ne the elementary operations with your data. In other words, any algorithm is a cookbook which speci¯es input ingredients, operations with them and with other data and ¯nally returns one or more results, depending on the function of this algorithm. Any source code has to be compiled in order to obtain an executable code which can be run on your computer.
    [Show full text]
  • A Beginner's Guide to Freebasic
    A Beginner’s Guide to FreeBasic Richard D. Clark Ebben Feagan A Clark Productions / HMCsoft Book Copyright (c) Ebben Feagan and Richard Clark. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". The source code was compiled under version .17b of the FreeBasic compiler and tested under Windows 2000 Professional and Ubuntu Linux 6.06. Later compiler versions may require changes to the source code to compile successfully and results may differ under different operating systems. All source code is released under version 2 of the Gnu Public License (http://www.gnu.org/copyleft/gpl.html). The source code is provided AS IS, WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Microsoft Windows®, Visual Basic® and QuickBasic® are registered trademarks and are copyright © Microsoft Corporation. Ubuntu is a registered trademark of Canonical Limited. 2 To all the members of the FreeBasic community, especially the developers. 3 Acknowledgments Writing a book is difficult business, especially a book on programming. It is impossible to know how to do everything in a particular language, and everyone learns something from the programming community. I have learned a multitude of things from the FreeBasic community and I want to send my thanks to all of those who have taken the time to post answers and examples to questions.
    [Show full text]
  • BASIC CODE 2010 Edition by the League of Minnesota Cities Duke Addicks, Special Counsel Rachel Carlson, Staff Attorney
    THE MINNESOTA BASIC CODE 2010 Edition By The League of Minnesota Cities Duke Addicks, Special Counsel Rachel Carlson, Staff Attorney Published by American Legal Publishing Corporation 432 Walnut Street, 12th Floor Cincinnati, Ohio 45202 Tel: (800) 445-5588 Fax: (513) 763-3562 E-Mail: [email protected] Internet: http://www.amlegal.com PREFACE TO THE MINNESOTA BASIC CODE, 2010 EDITION The Minnesota Basic Code This League of Minnesota Cities/American Legal Publishing (LMC/ALP) Minnesota Basic Code (MBC) is an effort to provide a modern and comprehensive code of ordinances for smaller Minnesota cities without the expense of a customized code of ordinances. Its provisions are also useful to all Minnesota cities that wish to have models for the basic city ordinances on the subjects contained in the code. The code reflects current state statutes, case law and rules through January, 2010. The MBC will be supplemented periodically to reflect legislative enactments and new case law and rules. The supplements will consist of new pages which will replace or be in addition to the pages contained in this edition. In addition, the supplements will contain new model ordinances that will be included into the MBC unless the city decides not to incorporate them into their code. Authors and Editors This Minnesota Basic Code is partly based on the Model Ordinance Code for Minnesota Cities, Revised Edition 1980, prepared by Orville C. Peterson, former Executive Director of the League of Minnesota Cities, and the 1989 Model Ordinance Code prepared by Thomas L. Grundhoefer, then Staff Attorney and now General Counsel for the League.
    [Show full text]
  • AN125: Integrating Raisonance 8051 Tools Into The
    AN125 INTEGRATING RAISONANCE 8051 TOOLS INTO THE SILICON LABS IDE 1. Introduction 4. Configure the Tool Chain This application note describes how to integrate the Integration Dialog Raisonance 8051 Tools into the Silicon Laboratories Under the 'Project' menu, select 'Tool Chain Integration’ IDE (Integrated Development Environment). Integration to bring up the dialog box shown below. Raisonance provides an efficient development environment with (Ride 7) is the default. To use Raisonance (Ride 6), you compose, edit, build, download and debug operations can select it from the 'Preset Name' drop down box integrated in the same program. under 'Tools Definition Presets'. Next, define the Raisonance assembler, compiler, and linker as shown in 2. Key Points the following sections. The Intel OMF-51 absolute object file generated by the Raisonance 8051 tools enables source-level debug from the Silicon Labs IDE. Once Raisonance Tools are integrated into the IDE they are called by simply pressing the ‘Assemble/ Compile Current File’ button or the ‘Build/Make Project’ button. See the “..\Silabs\MCU\Examples” directory for examples that can be used with the Raisonance tools. Information in this application note applies to Version 4.00 and later of the Silicon Labs IDE and Ride7 and later of the Raisonance 8051 tools. 4.1. Assembler Definition 1. Under the ‘Assembler’ tab, if the assembler 3. Create a Project in the Silicon executable is not already defined, click the browse Labs IDE button next to the ‘Executable:’ text box, and locate the assembler executable. The default location for A project is necessary in order to link assembly files the Raisonance assembler is: created by the compiler and build an absolute ‘OMF-51’ C:\Program Files\Raisonance\Ride7\bin\ma51.exe output file.
    [Show full text]
  • 4 Using HLA with the HIDE Integrated Development Environment
    HLA Reference Manual 5/24/10 Chapter 4 4 Using HLA with the HIDE Integrated Development Environment This chapter describes two IDEs (Integrated Development Environments) for HLA: HIDE and RadASM. 4.1 The HLA Integrated Development Environment (HIDE) Sevag has written a nice HLA-specified integrated development environment for HLA called HIDE (HLA IDE). This one is a bit easier to install, set up, and use than RadASM (at the cost of being a little less flexible). HIDE is great for beginners who want to get up and running with a minimal amount of fuss. You can find HIDE at the HIDE home page: http://sites.google.com/site/highlevelassembly/downloads/hide Contact: [email protected] Note: the following documentation was provided by Sevag. Thanks Sevag! 4.1.1 Description HIDE is an integrated development environment for use with Randall Hyde's HLA (High Level Assembler). The HIDE package contains various 3rd party programs and tools to provide for a complete environment that requires no files external to the package. Designed for a system- friendly interface, HIDE makes no changes to your system registry and requires no global environment variables to function. The only exception is ResEd (a 3rd party Resource Editor written by Ketil.O) which saves its window position into the registry. 4.1.2 Operation HIDE is an integrated development environment for use with Randall Hyde's HLA (High Level Assembler). The HIDE package contains various 3rd party programs and tools to provide for a complete environment that requires no files external to the package. Designed for a system- friendly interface, HIDE makes no changes to your system registry and requires no global environment variables to function.
    [Show full text]
  • Lindoo2019 Miami Xojo Presentation
    Back to the Basics, in an Two Effort to Improve Student distinct retention in Intro to schools Programming Classes CS Dr. Ed Lindoo Associate Professor Computer Information Systems (CC&IS) 3 year average CS and CIS Drop/Fail rate • 3 year average • 50+ percent drop/fail rate in intro to programming class Two CIS classes taught by CS • Specifically CC&IS students were failing at a 62% rate! • Big problem! • If they fail this course, they don’t continue in the program • Represents a huge loss of revenue to the school • Intro to programming class taught by CS department • I was asked by our Dean to “Fix it” • Computer Science students and Information Systems students • Performed extensive research on why students fail. (business students) took the class together. • After sifting through all the research, I decided to go back to • Business students don’t have the strong technical skills to the basics, BASIC programing that is. jump into a Java or C++ course • I started thinking back to my days of BASIC and QBASIC • Certainly not as an intro class • Remember BASIC? • But that’s what was happening • Well that wasn’t going to cut it! • Further research found a common theme • Visual Programming Environments • Easier to understand languages. DON’T START WITH C++ • I thought long and hard about it • Re-wrote the entire course, Intro to Programming based on Xojo • Even though I had done a lot of work in VB.net, I felt like that was too heavy for this course • Ahh, but there’s a catch…………………isn’t there always? • Then I remembered back to my days of using Real Basic, so I • Must pass a Java course once they pass this class.
    [Show full text]
  • Programming Manual Version 2.0
    www.tinybasic.de programming manual version 2.0 TinyBasic Programming Manual Version 2.0 April 2008 altenburg © 2006-2008 by U. Altenburg CHAPTER 1 Introduction.....................................................8 EDITOR, COMPILER, DOWNLOAD, CONSOLE, SCOPE CHAPTER 2 Preprocessor……….........................................12 #TARGET, #INCLUDE, #DEFINE, #UNDEF, #IFDEF, #IFNDEF, #ELSE, #ENDIF CHAPTER 3 Variables and Types.......................................14 CHAR, BYTE, WORD, INTEGER, LONG, FLOAT, DATA, READ, RESTORE, LOAD, STORE, INC, DEC CHAPTER 4 Maths and Expressions..................................19 +, -, *, /, <, >, <=, >=, <>, <<, >>, (), [], NOT, AND, OR, XOR, MOD CHAPTER 5 Control Flow...................................................22 IF, THEN, ELSE, ELSIF, ENDIF, DO, LOOP, FOR, NEXT, WHILE, WEND, EXIT, ON, GOTO, GOSUB, RETURN, WAIT, PAUSE TinyBasic Programming www.tinybasic.de 5 CHAPTER 6 Functions.......................................................28 LO, HI, MIN, MAX, LEN, POS, VAL, PI, SIN, COS, TAN, ATN, DEG, RAD, SQR, EXP, LOG, POW, ABS, INT, ROUND, POINT, PEEK, EOF CHAPTER 7 Input and Output...........................................33 PUT, GET, PRINT, INPUT, OPEN, CLOSE, FLUSH, FIND, INITGSM, SENDSMS, RECVSMS, ERR, CR, NL, CHR, HEX, SPC, TAB, USING CHAPTER 8 Date and Time................................................40 SETCLOCK, DATE, TIME, HOUR, MINUTE, SECOND, DAY, MONTH, YEAR CHAPTER 9 Displays and Graphics...................................42 SETDISPLAY, SETSYMBOL, CLS, FONT, COLOR, PLOT, MOVE, DRAW, FRAME,
    [Show full text]
  • Microsoft Small Basic
    Microsoft Small Basic An introduction to Programming Chapter 1 An Introduction Small Basic and Programming Computer Programming is defined as the process of creating computer software using programming languages. Just like we speak and understand English or Spanish or French, computers can understand programs written in certain languages. These are called programming languages. In the beginning there were just a few programming languages and they were really easy to learn and comprehend. But as computers and software became more and more sophisticated, programming languages evolved fast, gathering more complex concepts along the way. As a result most modern programming languages and their concepts are pretty challenging to grasp by a beginner. This fact has started discouraging people from learning or attempting computer programming. Small Basic is a programming language that is designed to make programming extremely easy, approachable and fun for beginners. Small Basic’s intention is to bring down the barrier and serve as a stepping stone to the amazing world of computer programming. The Small Basic Environment Let us start with a quick introduction to the Small Basic Environment. When you first launch SmallBasic, you will see a window that looks like the following figure. Figure 1 - The Small Basic Environment This is the Small Basic Environment, where we’ll write and run our Small Basic programs. This environment has several distinct elements which are identified by numbers. The Editor, identified by [1] is where we will write our Small Basic programs. When you open a sample program or a previously saved program, it will show up on this editor.
    [Show full text]
  • TSO/E Programming Guide
    z/OS Version 2 Release 3 TSO/E Programming Guide IBM SA32-0981-30 Note Before using this information and the product it supports, read the information in “Notices” on page 137. This edition applies to Version 2 Release 3 of z/OS (5650-ZOS) and to all subsequent releases and modifications until otherwise indicated in new editions. Last updated: 2019-02-16 © Copyright International Business Machines Corporation 1988, 2017. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents List of Figures....................................................................................................... ix List of Tables........................................................................................................ xi About this document...........................................................................................xiii Who should use this document.................................................................................................................xiii How this document is organized............................................................................................................... xiii How to use this document.........................................................................................................................xiii Where to find more information................................................................................................................ xiii How to send your comments to IBM......................................................................xv
    [Show full text]
  • Programmierung Unter GNU/Linux Für Einsteiger
    Programmierung unter GNU/Linux fur¨ Einsteiger Edgar 'Fast Edi' Hoffmann Community FreieSoftwareOG [email protected] 7. September 2016 Programmierung (von griechisch pr´ogramma Vorschrift\) bezeichnet die T¨atigkeit, " Computerprogramme zu erstellen. Dies umfasst vor Allem die Umsetzung (Implementierung) des Softwareentwurfs in Quellcode sowie { je nach Programmiersprache { das Ubersetzen¨ des Quellcodes in die Maschinensprache, meist unter Verwendung eines Compilers. Programmierung Begriffserkl¨arung 2 / 35 Dies umfasst vor Allem die Umsetzung (Implementierung) des Softwareentwurfs in Quellcode sowie { je nach Programmiersprache { das Ubersetzen¨ des Quellcodes in die Maschinensprache, meist unter Verwendung eines Compilers. Programmierung Begriffserkl¨arung Programmierung (von griechisch pr´ogramma Vorschrift\) bezeichnet die T¨atigkeit, " Computerprogramme zu erstellen. 2 / 35 Programmierung Begriffserkl¨arung Programmierung (von griechisch pr´ogramma Vorschrift\) bezeichnet die T¨atigkeit, " Computerprogramme zu erstellen. Dies umfasst vor Allem die Umsetzung (Implementierung) des Softwareentwurfs in Quellcode sowie { je nach Programmiersprache { das Ubersetzen¨ des Quellcodes in die Maschinensprache, meist unter Verwendung eines Compilers. 2 / 35 Programme werden unter Verwendung von Programmiersprachen formuliert ( kodiert\). " In eine solche Sprache ubersetzt\¨ der Programmierer die (z. B. im Pflichtenheft) " vorgegebenen Anforderungen und Algorithmen. Zunehmend wird er dabei durch Codegeneratoren unterstutzt,¨ die zumindest
    [Show full text]
  • The MSX Red Book (Revised Version 1997/08/06) Notes from The
    The MSX Red Book (revised version 1997/08/06) Notes from the editor: - The book was scanned and converted (via O.C.R.) by one person and edited by another (using an IBM PC compatible), independently. - All pages have a fix size of 64 lines. The width was not justified to make future modifications easier, though no line is longer than 80 columns. - This book only covers standard MSX. The BIOS entry points from 0000H to 01B5H should be used instead of the called entries described in the book, because other machines (MSX2, MSX2+, MSX turbo R and customized ones) have different positions for the routines. The use of internal BIOS routine addresses are responsible for many programs only running in MSX. - Some errors present in the original book were fixed, though it was tried to keep it as unaltered as possible. All page numbers match the originals, except undetected errors already present in the original. - Most figures were modificated due to the text-only nature of this file. The character set used during edition was the International IBM PC's one. The following special characters were used and should be changed to the corresponding ones of other character sets: Frame ÚÄÂÄ¿ Pound: œ characters: ³ ³ ³ Micro: æ ÃÄÅÄ´ ³ ³ ³ ÀÄÁÄÙ ------------------------------------------------------------------------------- CONTENTS Introduction .............................. 1 1. Programmable Peripheral Interface ...... 3 2. Video Display Processor ................ 8 3. Programmable Sound Generator ........... 21 4. ROM BIOS ............................... 26 5. ROM BASIC Interpreter .................. 89 6. Memory Map ............................. 208 7. Machine Code Programs .................. 240 Contents Copyright 1985 Avalon Software Iver Lane, Cowley, Middx, UB8 2JD MSX is a trademark of Microsoft Corp.
    [Show full text]
  • BASIC Session
    BASIC Session Chairman: Thomas Cheatham Speaker: Thomas E. Kurtz PAPER: BASIC Thomas E. Kurtz Darthmouth College 1. Background 1.1. Dartmouth College Dartmouth College is a small university dating from 1769, and dedicated "for the educa- tion and instruction of Youth of the Indian Tribes in this Land in reading, writing and all parts of learning . and also of English Youth and any others" (Wheelock, 1769). The undergraduate student body (now nearly 4000) outnumbers all graduate students by more than 5 to 1, and majors predominantly in the Social Sciences and the Humanities (over 75%). In 1940 a milestone event, not well remembered until recently (Loveday, 1977), took place at Dartmouth. Dr. George Stibitz of the Bell Telephone Laboratories demonstrated publicly for the first time, at the annual meeting of the American Mathematical Society, the remote use of a computer over a communications line. The computer was a relay cal- culator designed to carry out arithmetic on complex numbers. The terminal was a Model 26 Teletype. Another milestone event occurred in the summer of 1956 when John McCarthy orga- nized at Dartmouth a summer research project on "artificial intelligence" (the first known use of this phrase). The computer scientists attending decided a new language was needed; thus was born LISP. [See the paper by McCarthy, pp. 173-185 in this volume. Ed.] 1.2. Dartmouth Comes to Computing After several brief encounters, Dartmouth's liaison with computing became permanent and continuing in 1956 through the New England Regional Computer Center at MIT, HISTORY OF PROGRAMMING LANGUAGES 515 Copyright © 1981 by the Association for Computing Machinery, Inc.
    [Show full text]