]>
Commit | Line | Data |
---|---|---|
509643aa MG |
1 | App-Scheme79asm version 0.001 |
2 | ============================= | |
3 | ||
4 | SIMPLE is a LISP processor defined in the 1979 | |
5 | B<Design of LISP-Based Processors> paper by Steele and Sussman. | |
6 | ||
7 | The SIMPLE processor expects input in a particular tagged-pointer | |
8 | format. This module takes a string containing a sequence of | |
9924aa7b MG |
9 | S-expressions. Each S-expression is a list of one of three types: |
10 | ||
11 | (tag value), for example (symbol nil), represents a value to be | |
12 | put in memory (for example a number, or a symbol, or a variable | |
13 | reference). | |
14 | ||
15 | (tag list), where list is of one of these three types, | |
16 | represents a tagged pointer. In this case, list is (recursively) | |
17 | laid out in memory as per these rules, and a pointer to that location | |
18 | (and tagged tag) is put somewhere in memory. | |
19 | ||
20 | (tag list1 list2), where list1 and list2 are of one of these | |
21 | three types (not necessarily the same type). In this case, list1 | |
22 | and list2 are (recursively) laid out in memory such that list1 | |
23 | is at position X and list2 is at position X+1, and a pointer of | |
24 | type tag and value X is put somewhere in memory. | |
25 | ||
26 | After this process the very last pointer placed in memory is moved to | |
27 | the special location 5 (which is where SIMPLE expects to find the | |
28 | expression to be evaluated). | |
29 | ||
30 | In normal use a single S-expression will be supplied, representing an | |
31 | entire program. | |
509643aa MG |
32 | |
33 | INSTALLATION | |
34 | ||
35 | To install this module type the following: | |
36 | ||
37 | perl Makefile.PL | |
38 | make | |
39 | make test | |
40 | make install | |
41 | ||
42 | DEPENDENCIES | |
43 | ||
44 | This module requires these other modules and libraries: | |
45 | ||
46 | * Data::SExpression | |
47 | ||
48 | COPYRIGHT AND LICENCE | |
49 | ||
50 | Copyright (C) 2018 by Marius Gavrilescu | |
51 | ||
52 | This library is free software; you can redistribute it and/or modify | |
53 | it under the same terms as Perl itself, either Perl version 5.24.3 or, | |
54 | at your option, any later version of Perl 5 you may have available. | |
55 | ||
56 |