home *** CD-ROM | disk | FTP | other *** search
- A LISP INTERPRETOR FOR THE 8080 MICRO
- COMPUTING SYSTEM
-
- AS ASSEMBLED HERE ENTRY IS AT 100H. MOST OF THE CODE
- MAY BE ANYWHERE IN MEMORY BUT ALL LISP DATA ELEMENTS (CONS
- CELLS AND ATOMS) MUST BE IN THE FIRST 16K OF MEMORY . THE
- INTERPRETER IS COMPLETELY SELF CONTAINED EXCEPT FOR TERMINAL
- 1\0. ON INPUT FROM THE TERMINAL, ALL CONTROL CHARACTERS ARE
- IGNORED ,AND THUS MAY BE FREELY ADDED TO IMPROVE READABILITY.
- ALL INPUT IS PARSED AS LITERAL ATOMS AND S.EXPRESSIONS .AN ATOM
- IS ANY STRING OF ALPHANUMERIC CHARACTERS NOT OVER 16 CHARACTERS
- LONG. SOME EXAMPLES OF LEGALATOMSARE;
- ATOM 934 A47 47A
- SOME EXAMPLES OF ILLEGAL ATOMS ARE :
- VERYLONGSTRINGOFLETTERS (MORD THAN 16
- CHARACTERS)
- (CONTAINS NON ALPHA-
- NUMERIC-)
- THE ONLY OTHER CHARCTERS RECOGNIZED BY THE SYSTEM ARE LEFT
- AND RIGTH PARENTHESES, COMMAS ,PERIODS AND BLANKS .CONSECUTIVE
- ATOMS IN LISTS AND S-AXPRESSION MUST BE SEPARATED BY AT LEAST
- ONE OF THESE SYINBOLS TO BE RECOGNIZED. BLANKS MAY BE
- OPTIONALLY INSERTED BEFORE AND AFTER RIGHT PARENS .BOTH INPUT
- AND OUTPUT ROUTINES CAN HANDLE MIXED S.EXPRESSIONS (WITH DOT
- NOTATION )AND LIST NOTATION .THE OUTPUT RUTINES WILL ALWAYS USE
- LIST NOTATION WHENEVER POSSIBLE , BUT WILL USE DOTTED NOTATION
- WHEN NECESSARY . E.G.,AN S-EXPRESSION IN - PUT AS
- :(INTEL.NIL).8080) WOULD PRINT AS (INTEL).8080).LOGICAL VALUES
- RETURNED BY EQ, ATOM ,NULL AND EQUAL ARE T AND F. THESE MUST BE
- QUOTED WHEN USED AS CONSTANTS IN A PROGEAM .THESE ARE ALSO THE
- LOGICAL VALUES EXPECTED BY COND 8ANTUALLY COND ONLY TESTS FOR T
- ). THE INTERPRETER IS AN EVALQUOTE MODE INTERPRETER SO TWO S-
- EXPRESSIONS MUST BE ENTERED FOR EVALUATION TO OCCUR .BOTH OF
- THESE S-EXPRESSIONS MUST BE FOLLOWED BY A BLANK TO ALLOW FOR
- THE LOOKAHEAD USED IN READ .AFTER RECOGNIZING THE SECOND S-
- EXPRESSION, WHICH IS A LIST OF ARGUMENTS TO WHICH THE FIRST S-
- EXPRESSION (TYPICALLY AN ATOM) WILL BE APPLIED ,BOTH OF THESE
- EXPRESSION ARE EFFECTIVELY QUOTED, SO ALL ATOMS IN THE
- EXPRESSION STAND FOR THEMSELVES ,NOT ANY DEFINED BINDING .ONCE
- THE INTERPRTER RECOGNIZES THE SECOND EXPRESSION, IT DOES A NEW
- LINE AND TYPES '>>' FOLLOWED BY THE RESULT OF THE COMPUTATION.
- FOR EXAMPLE, IF THE FOLLOWING IS ENTERED AS INPUT:
- DEFINE(((TT)(FF)(FF(LAMBDA(X)COND((ATOM X)X)(T(FF(CAR
- X))))))))) THE INTERPRTER WILL RESPOND WITH: >>(TF FF)IF YOU
- THEN ENTER: FF(((AB).C)) THE INTERPRETER WILL RESPOND WITH: >>A
-
-