LISP Interpreter
Programming: General · ZX-Spectrum 48K · 1 players · English
Serious Software · 1983 · Pound sterling 15.00
Also known as SpecLisp (English)
Discussion
Nobody has started a thread about this yet.
Play
- LISPInterpreterV1.3.tzx.zipTape image English8 KB
- LISPInterpreterV1.3.tap.zipTape image English8 KB
Files and rights
No permission is on record either way. Screens and pictures are copied here on a take-down basis: if you hold the rights and want something removed, say so and it goes.
Scores
In the magazines
- Personal Computer News #71983 · Overall Value2/5
Elsewhere on the web
- WorldOfSpectrum 4 votes7.75
In the magazines 6
ZX Computing #6Apr 1983 · p.56
LISPING ON YOUR SPECRTUM An interpreter for the artificial intelligence research language, LISP, is now available for the ZX Spectrum, Suitable for students learning LISP, the package should also be of interest to hobbyists eager to learn an alternative language to BASIC and gain an insight into artificial intelligence. The LISP interpreter features over 50 pre-defined functions; it allows iteration via PROGN and WHILE functions; incorporates LOAD, SAVE and VERIFY functions as well as an LPRINT function to output to the printer. The interpreter also allows a variable number of parameters to user-defined functions; supports machine code subroutines; incorporates 16-bit signed integer arithmetic; has full error checking, compacting garbage collector and full property list implementation. The LISP package includes a 4.5K machine code interpreter and a 2.6K initialised property list. Ideally requiring 48K of memory, the program will run in 16K. Complete with a demonstration program and a programmer's manual, the LISP interpreter is priced at £15.00. To learn more about the interpreter, send for details from Serious Software, [redacted].
Personal Computer News #7Apr 1983 · p.282/54/52/52/51/52/52/5
Features 2/5
Documentation 4/5
Performance 2/5
Usability 2/5
Reliability 1/5
Overall Value 2/5
Ted Ball 2/5
NAME: SpecLisp 1.2 APPLICATION: Artificial Intelligence programming SYSTEM: 48K ZX Spectrum PRICE: £19.95 PUBLISHER: Serious Software, [redacted] FORMAT: Cassette OUTLETS: Mail Order. LISP TAPED SpecLisp AI For Spectrum You can now program artificial intelligence on the Spectrum. Ted Ball looks at an AI package. Some knowledge of Lisp is essential to anyone seriously interested in Artificial Intelligence (AI). Not only is it the most widely used programming language in the field, but books and papers on AI frequently include programs in LISP, and other AI programming languages (including Planner, Pop-2, and Prolog) are based on Lisp. Lisp has been used in numerous applications: natural language comprehension, compiler writing, robotics, computer aided instruction, etc, and now SpecLisp, the first product from a new company, Serious Software, opens up the whole world of AI to the owner of a 48K Spectrum. Lisp stands for LISt Processing, and there are only two types of object in Lisp, atoms (names and numbers) and lists. A list is represented by being enclosed in brackets, and the elements of a list may be atoms or lists, or a mixture of both. Thus (a b c). ((a b) c) and ((a b c)) are all lists, but the first has three elements, the atoms, a,b,c, the second has two elements, the list (a b) and the atom c, while the third has one element, the list (a b c). The nesting of lists within lists may continue to any depth. Even programs in Lisp are lists, on the same footing as data. So you can type in (plus 2 3) using the built-in function PLUS, and as Lisp is an interactive interpreted language the answer, 5, is printed out immediately. However, you could type (eval (list (quote plus) 2 3)) which also prints out the answer '5'. EVAL evaluates the following list. LIST creates a list from the following elements, and QUOTE means use the name 'plus' instead of evaluating PLUS as a function. The EVAL expression has created the list (plus 2 3) and then treated the list as a program instruction. Lisp is an extensible language that allows you to define new functions that can be used in exactly the same way as the built-in functions. For example, if you don't like the word plus you can define 'add' to mean the same thing by (de add (m n) (plus m n)) where 'de', short for DEFINE, introduces the definition, the next word is the name of the defined function, followed by a list of the parameters and a list which is the body of the function. In practice, a definition would be more complicated than this, and can involve conditional expressions and sequences of expressions. FEATURES SpecLisp 1.2 provides about 60 built-in functions, compared with the 100 or more usually found in mainframe Lisps, but all the basic functions you need are included. Lisp has been around since 1962 and several dialects have developed, but SpecLisp 1.2 generally conforms to the common features of the dialects. One departure, which will be welcomed by structured programming enthusiasts, is a WHILE structure instead of the labels and GO function found in most versions of Lisp. Mainframe Lisps often allow floating point numbers and integers of unlimited length, but although the only numbers allowed in SpecLisp are integers in the range -32767 to +32767 this is not really important as the normal uses for Lisp rarely require more than simple integer arithmetic. SpecLisp does not provide any direct means for using the colour or graphics on the Spectrum, so you are restricted to simple text output, unless you add your own machine code routines (which can be called by using the SpecLisp function SUBR). It would be easy to include a single function, equivalent to PRINT CHR$ N in Basic, which would allow the user access to all the colour and graphics of the Spectrum. There are very few editing facilities provided: you can use the DELETE key, SHIFT 0 in the usual way, and delete a whole input line with SHIFT 5, but once you have entered a definition the only way to change it is to retype the whole thing. You can save programs on tape, but you need to load SpecLisp before you can re-load and run a saved program. PRESENTATION The review copy of SpecLisp 1.2 came on a Boots cassette with a printed label stuck on, and the manual was offset from a typed original. I was unable to contact the manufacturer to find out if this is the normal packaging or a pre-production version supplied for review. The documentation consists of a 31-page manual for SpecLisp version 1.1 and an additional four pages giving some corrections to the manual and describing the differences between versions 1.1 and 1.2. The manual is quite comprehensive, including sections on loading and using SpecLisp, definitions and syntax of the built-in functions, and the internal workings of the interpreter. There is a demonstration program on the tape, which allows you to set up and use a simple database. The manual contains a listing of the database program and some information on how to use it. However, the description of the database functions is not complete, and you need to study the program listing to find out how to use it. GETTING STARTED The manual is purely a reference document for SpecLisp, and does not teach you how to program in Lisp, but it does include a short list of recommended textbooks on Lisp and Artificial Intelligence. SpecLisp is quite easy to use, and you should have little difficulty using it in conjunction with a suitable textbook. Because there are many dialects of Lisp you may find some differences between SpecLisp and the textbook version, such as DIFF instead of DIFFERENCE or DIV instead of QUOTIENT, but it does not take long to get used to this. IN USE SpecLisp runs automatically when it has finished loading, and prints, In white on a black screen, a copyright message, and an asterisk, which is the usual SpecLisp prompt. It is then ready for you to start typing in commands and programs. I tested the interpreter with a number of simple programs, some textbook examples, and some programs I wrote myself to test particular points. I managed to get all the programs working, and by the time I had them completely translated into SpecLisp from the Lisp I am familiar with, I had come across most of the error messages. Some of the error messages are straightforward and fully informative. For example 'x is not a number', which you get if you try to apply an arithmetic function to an atom or expression that does not evaluate to a number, will usually show exactly where you have gone wrong. Other error messages, however, are not specific enough. In particular 'PNAME property not found', which you get if you try to use a function that has not been defined. This message ought to have been extended to include the name that caused the trouble. RELIABILITY SpecLisp is not very robust, and can be crashed quite easily: typing in (1), or any number enclosed in parentheses, produces garbage on the screen and drops you back into Basic. There are also some bugs in the arithmetic. One of the examples I tried was a recursive function for calculating factorials, which worked up to factorial 7, which is less than 32767, but when I tried factorial 8, which produces a result big enough to overflow. I got: "(" EXPECTED "(" EXPECTED -25216 The answer is correct, expressed in 2s complement arithmetic and hence a negative number, but the messages preceding the answer are rather odd. Factorial 9 is even worse. This gave -25216 and this time the answer is wrong. It should be -30336. Another bug is that there is no checking for division by zero: (div 1 0) caused the machine to hang up, and I had to switch off and start again. There is also no checking for stack overflow. This will not occur often, but it can happen and particularly in a language like Lisp, which is stack-based and allows recursion. There should be a built-in test to prevent stack overflow from crashing the computer. VERDICT I was quite pleased with SpecLisp until the bugs started appearing, and without the bugs I would have given much higher ratings. Unfortunately, the bugs are serious enough to require elimination before the product can be considered saleable. At £19.95 I think it is overpriced compared with other programs of similar size and complexity which sell at prices usually between about £8 and £15.
Demonstration database program supplied with SpecList. Below it are examples of the ways in which you can use its commands to insert, find or remove data and relationships.
News/Note4
- Computing TodayJun 1983 · p.16
- ZX Computing #6Apr 1983 · p.56
- Which Micro? & Software ReviewApr 1983 · p.15
- Popular Computing Weekly #5Feb 1983 · p.5
Reviews from people here
Sign in to write about this, or make an account. It takes a minute and lets you correct the catalogue too.
No credit, description, tag recorded.
Sign in to correct or add to this.
Hold the rights to this and want it taken down?
