perm filename SALISP.DOC[LSP,BGB]2 blob
sn#010892 filedate 1972-11-12 generic text, type T, neo UTF8
00100 CART PROJECT MEMO HALLOWEEN 31 OCT 1972
00200
00300 SALISP - SAIL Accessible LISP.
00400
00500 Baumgart
00600
00700
00100 ABSTRACT: SALISP is the LISP 1.6 interpreter modified so that it can
00200 be loaded and used within a SAIL core image.
00300
00400 As a pure LISP interpreter, SALISP may be used as a teletype command
00500 scanner for calling SAIL procedures and for altering SAIL variables.
00600
00700 As a bastard of SAIL and LISP, afew transanguineous subroutines allow
00800 SALISP to serve as an alternative to RAID, LEAP, MLISP and the LISP
00900 compiler.
01500
01600
01700 CONTENTS:
01800
01900 I. HOW TO USE SALISP.
02000
02100 II. MEMORY STRUCTURE.
02200
02300 III. CONTROL STRUCTURE.
02400
00100 I. HOW TO USE SALISP.
00200
00300 In order to have SALISP loaded with a SAIL program,
00400 the file SALISP[FU,BGB] is require as a load module.
00500
00600
00700 INVOCATION:
00800 Declaration of LISP in SAIL.
00900 REQUIRE "SALISP[SYS,BGB]" LOAD_MODULE;
01000 EXTERNAL SIMPLE PROCEDURE LISP (INTEGER SIZE);
01100 Call of LISP in SAIL.
01200 LISP(size);
01300 Declaration of a SAIL subroutine in LISP.
01400 (PUTPROP @NAME (NUMVAL(*GETSYM @NAME)) @SAIBR)
01500 Call of a Sail subroutine in LISP.
01600 (NAME arguments)
01700
00100 IMPLEMENTATION:
00200
00300 1. Entry interface at internal symbol LISP.
00400 2. Core Allocator Modified.
00500 3. Core REALLOC deleted.
00600 4. Garbage Collector modified.
00700 5. Core Expansions:
00800 ALVINE & GRINDEF Interface modified.
00900 LOADER Interface deleted.
01000 IO buffer allocations modified.
01100 6. UUO handling modified to make LISP transparent to SAIL.
01200 7. APR Interrupts modified to make LISP transparent.
01300 8. EVAL modified - property SAIBR subroutines.
01400 9. LISP modified to use I/O channels 10 to 17.
01500
00100 SALISP has five kinds of numerals:
00200
00300 1. INUMS
00400 2. FIXNUMS
00500 3. FLONUMS
00600 4. BIGNUMS
00700 5. SAINUMS