|
1.
| | Introduction |
|
2. | | Early influences on McCarthy |
|
2.1. | | Technological enthusiasm |
| 2.2. |
|
Finite automata and explicit representations of facts |
|
2.3. | | Digital computers as intelligent machines |
|
3.
| | Dartmouth project
|
| 3.1. |
| The language of intelligent computers |
|
3.2. | | Between IPL and Fortran |
| 4.
| | FLPL
|
| 4.1. |
| Operations on words |
| 4.2. | | Lists |
|
4.3. | | Creation of lists |
| 5.
| | Proposal of the compiler
|
| 5.1. |
| Programming language as coordinate system |
|
5.2. | | Freedom of the programmer |
| 5.3. |
| Logical values and functions |
|
5.4. | | If function |
| 5.5. |
| Syntacs |
|
5.6. | | Lists |
| 5.7. |
| The functions with multiple values and composition of functions |
|
6.
| | Proposal of the programming language
|
| 6.1. |
| Conditional expression |
| 6.2. | | Go to statement |
|
6.3. | | Macro statement |
| 6.4. |
| Higher order functions |
|
6.5. | | Lambda expressions |
| 7.
| | Imperative Lisp
|
| 7.1. |
| Imperative and algebraic language |
|
7.2. | | Basic types and statements |
| 7.3. |
| Subroutines and functions |
|
7.4. | | Symbolic expressions |
| 7.5. |
| Property lists |
|
7.6. | | The lists and representation of symbolic expressions |
|
7.7. | | The functions for analysis and systesy of words and referencing |
|
7.8. | | Free memory management |
| 7.9. |
| Basic functions on the whole lists |
|
7.10. | | The function maplist |
| 8.
| | Elements of the functional programming
|
| 8.1. |
| New function maplist |
| 8.2. | | McCarthy's lambda expressions |
|
8.3. | | Simplification of the language |
| 8.4. |
| Implementation of recursive functions |
|
8.5. | | Functional and imperative style |
| 8.6. | | Undefinability of the function list |
|
8.7. | | Substitutional functions and function apply |
|
8.8. | | Auxiliary functions and implementation of apply |
|
8.9. | | Automated memory management |
| 8.10. |
| Rochester's lambda expressions |
|
8.11. | | Formatting of the programs |
| 8.12. |
| Compositions of the functions car and cdr |
|
8.13. | | The function compute |
| 9.
| | Pure Lisp
|
| 9.1. |
| Mathematical expressions |
| 9.2. | | Conditional expressions |
|
9.3. | | Recursively and simultaneously recursively defined functions |
|
9.4. | | Lambda-expressions |
| 9.5. |
| Label-expressions |
|
9.6. | | Free and bounded variables |
| 9.7. |
| Comment on symultaneously recursive functions |
|
9.8. | | Definition of symbolic expressions |
| 9.9. |
| Difference from the previous definitions |
|
9.10. | | Meta-expressions |
| 9.11. |
| S-functions |
|
9.12. | | Elementary S-functions |
| 9.13. |
| Comment on McCarthy's defining of S-functions |
|
9.14. | | Examples of non-elementary S-functions |
|
9.15. | | Shorthand and function list |
| 9.16. |
| Functions as arguments of the functions |
|
9.17. | | Comment on elimination of shorthands and non-elementary functions |
|
9.18. | | Translation of M-expressions into S-expressions |
|
9.19. | | Comment on translation of M-expressions |
|
9.20. | | Mathematical definition of S-function eval |
|
9.21. | | S-function eval |
| 9.22. |
| Comments on definition of the function eval |
|
9.23. | | Universal S-function apply |
| 9.24. | | Interpreter for Lisp |
|
9.25. | | S-functions and theory of calculability |
|
9.26. | | Simulation of Turing's machines with S-functions |
|
9.27. | | Questions on S-functions undecidable with S-function |
|
9.28. | | Programs as S-functions |
| 9.29. |
| Representation of symbolic expressions in memory |
|
9.30. | | Differences between symbolic expressions and list structures |
|
9.31. | | Garbage collection |
| 10.
| | Linear Lisp
|
| 10.1. |
| L-expression |
| 10.2. | | Elementary functions |
|
10.3. | | Separation of subexpressions |
| 11.
| | Binary Lisp
|
| 12.
| | Slagle's language for symbol manipulation
|
| 13.
| | Simbolic expressions as syntax of the language
|
| 14. |
| Fortran-like statements, the function program,
power and multiparadigmaticity of Lisp |
|
14.1. | | Encoding of the state of the machine and fortran-like statements |
|
14.2. | | S-function program |
| 14.3. |
| Symultaneous execution of fortran-like statements and order among symbols |
|
14.4. | | Multiparadigmatic Lisp |
| 14.5. |
| Power of the language from the point of view of programmer |
|
15. | | Woodward-Jenkins arithmetics
|
| 16. |
|
Lisp 1.5 |
|
16.1. | | Pure Lisp |
| 16.2. |
| Use of the property list |
|
16.3. | | Pseudofunctions |
| 16.4. |
| Special forms |
|
16.5. | | Fexprs |
| 16.6. |
| Programs in Lisp |
|
16.7. | | Functional arguments |
| 16.8. |
| Special operator prog |
|
16.9. | | Gensym and oblist |
| 16.10. |
| Symbols T, *T* i NIL |
|
16.11. | | Arithmetics |
| 16.12. |
| Arrays |
|
16.13. | | Logic |
| 17.
| | Matemathical theory o computation
|
| 17.1. |
| The functions defined with basic functiosn |
|
17.2. | | Functionals |
| 17.3. |
| Elimination of label-expressions |
|
17.4. | | Conditional expressions are not functions |
|
17.5. | | Uncomputable functions |
| 17.6. |
| Multivalued functions |
|
17.7. | | Recursive defintion of the set of symbolic expressions |
|
17.8. | | Recursive inductions |
| 17.9. |
| Abstract syntax of programming languages |
|
17.10. | | Semantics |
| 18.
| | Gilmore's Lisp-like language |
|
18.1. | | Conditional expressions |
| 18.2. |
| Quote and label |
|
18.3. | | Abstract machine |
| 19. |
|
Memoization |
| 20. |
|
New function eval |
| 20.1. |
| Extended Lisp |
|
20.2. | | New eval |
| 20.3. |
| Autonymes lambda and label |
|
21.
|
|
The first applications of Lisp
|