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