/scm

The Concurrent Schemer

Primary LanguageErlangMIT LicenseMIT

The Concurrent Schemer

Copyright (c) 2013-2014 by Joseph Wayne Norton

Authors: Joseph Wayne Norton (norton@alum.mit.edu).

"The Concurrent Schemer" (CSCM) is an implementation of the Scheme programming language built on top of the Erlang Virtual Machine. CSCM combines the sequential programming model of Scheme with the concurrent, distributed, and fault-tolerant programming model of Erlang. Simply put, the goals of CSCM are concurrent Scheme, distributed Scheme, and fault-tolerant Scheme.

Scheme is a statically scoped and properly tail recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman at MIT. Scheme was designed to have exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and object-oriented styles, find convenient expression in Scheme.

Erlang is a programming language used to build massively scalable, soft, real-time systems with requirements on high availability. Erlang's run-time system has built-in support for concurrency, distribution and fault tolerance. Erlang is designed at the Ericsson Computer Science Laboratory and is maintained as an open-source project and community.

The default language is Scheme R7RS. The default virtual machine is Erlang/OTP 17.0 or higher.

For further information, see https://github.com/the-concurrent-schemer.

Modules

scm_app
scm_sup
scmd_parse
scmd_parse_numR
scmd_scan
scmd_scan_num10
scmd_scan_num16
scmd_scan_num2
scmd_scan_num8
scmd_types
scmd_types_impl
scmi_analyze
scmi_analyze_derived
scmi_analyze_macro
scmi_analyze_primitive
scmi_analyze_program
scmi_env
scmi_eval
scmi_iodev
scmi_iodev_server_file
scmi_iodev_server_ram
scmi_iodev_server_std
scmi_iodev_server_std_test
scmi_types
scml
scml_base_boolean
scml_base_bytevector
scml_base_char
scml_base_control
scml_base_equality
scml_base_exception
scml_base_io
scml_base_list
scml_base_number
scml_base_string
scml_base_symbol
scml_base_system
scml_base_vector
scml_char
scml_complex
scml_context
scml_cxr
scml_eval
scml_file
scml_inexact
scml_lambda
scml_lazy
scml_load
scml_r5rs
scml_read
scml_repl
scml_time
scml_write
scmtmp
xfm_import_as_export