Skip to content

hz7k-nzw/sicp-in-smlnj

Repository files navigation

SICP in SML/NJ

This is a translation of source code from SICP [1] into SML/NJ [2].


== Status

Currently, the following sections are translated:

1  Building Abstractions with Procedures
 1.1  The Elements of Programming:
 => chap1_1.sml
 1.2  Procedures and the Processes They Generate
 => chap1_2.sml
 1.3  Formulating Abstractions with Higher-Order Procedures
 => chap1_3.sml

2  Building Abstractions with Data
 2.1  Introduction to Data Abstraction
 => chap2_1.sml
 2.2  Hierarchical Data and the Closure Property
 => chap2_2.sml
  2.2.4  Example: A Picture Language
  => chap2_2_4_smltk.sml
     (sml_tk [3] is used to implement them.)
 2.3  Symbolic Data
 => chap2_3.sml
 2.4  Multiple Representations for Abstract Data
 => chap2_4.sml
 2.5  Systems with Generic Operations
 => chap2_5.sml

3  Modularity, Objects, and State
 3.1  Assignment and Local State
 => chap3_1.sml
 3.2  The Environment Model of Evaluation
 => chap3_2.sml
 3.3  Modeling with Mutable Data
 => chap3_3.sml
 3.4  Concurrency: Time Is of the Essence
 => chap3_4.sml
 3.5  Streams
 => chap3_5.sml
  3.5.2  Infinite Streams (Defining streams implicitly)
  => chap3_5_lazy.sml
     (The lazy evaluation feature of SML/NJ is used.)

4  Metalinguistic Abstraction
 4.1  The Metacircular Evaluator
 => chap4_1.sml
 4.2  Variations on a Scheme -- Lazy Evaluation
 => chap4_2.sml
 4.3  Variations on a Scheme -- Nondeterministic Computing
 => chap4_3.sml, chap4_3_example.scm
 4.4  Logic Programming
 => chap4_4_lazy.sml, chap4_4_example.scm
    (The lazy evaluation feature of SML/NJ is used.)

5  Computing with Register Machines
 5.1  Designing Register Machines
 => chap5_1.sml
 5.2  A Register-Machine Simulator
 => chap5_2.sml
 5.3  Storage Allocation and Garbage Collection
 => not translated
 5.4  The Explicit-Control Evaluator
 => chap5_4.sml
 5.5  Compilation
 => chap5_5.sml

=== References and links

[1] Harold Abelson, Gerald Jay Sussman, and Julie Sussman.
    Structure and Interpretation of Computer Programs.
    MIT Press and McGraw-Hill, second Edition, 1996.
    http://mitpress.mit.edu/sicp/

[2] Standard ML of New Jersey
    http://www.smlnj.org/

[3] sml_tk
    http://www.informatik.uni-bremen.de/~cxl/sml_tk/

[4] Topics:SICP in other languages - CTMWiki
    http://www.codepoetics.com/wiki/index.php?title=Topics:SICP_in_other_languages

[5] Eli Bendersky's website >> SICP
    http://eli.thegreenplace.net/category/programming/lisp/sicp/

About

This is a translation of source code from SICP into SML/NJ.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages