PreScheme aka Pre-Scheme https://groups.scheme.org/prescheme/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Lassi Kortela 49a5a5d5b6
Fix heading
2 months ago
scripts Add scripts 6 months ago
www/1.3 Add manual 6 months ago
.gitignore Add initial draft of main page 6 months ago
README.md Fix heading 2 months ago

README.md

PreScheme

Overview

PreScheme (also spelled Pre-Scheme) is a statically typed dialect of Scheme that gives the programmer the efficiency and low-level machine access of C while retaining many of the desirable features of Scheme.

The PreScheme compiler makes use of type inference, partial evaluation and Scheme and Lisp compiler technology to compile the problematic features of Scheme, such as closures, into C code without significant run-time overhead. Use of such features in PreScheme programs is restricted to those cases that can be compiled into efficient code.

Type reconstruction is done using a modified Hindley/Milner algorithm that allows overloaded user-defined functions.

All top-level forms in PreScheme programs are evaluated at compile time, which gives the user additional control over the compiler's partial evaluation of a program.

PreScheme has been implemented and used to write a byte-code interpeter and associated support code for a complete Scheme implementation.

Manuals

Implementations

Scheme 48

VLISP

No known public release.

SPS

SPS is a Pre-Scheme to (GNU) C compiler written in Pre-Scheme.

Written in 1999.

GitHub

Pre-Scheme for Guile

A port of Pre-Scheme from Scheme 48 to Guile.

Started in 2022.

GitLab

Research papers

From the MITRE Corporation:

  • A Verified Compiler for Pure PreScheme (1991)
  • The VLISP PreScheme Front End (1992)
  • A Verified Run-Time Structure for Pure PreScheme (1992)
  • The Revised VLISP PreScheme Front End (1993)
  • The VLISP Verified PreScheme Compiler (1995)
  • A Verified Compiler for Multithreaded PreScheme (1996)

From Kelsey:

  • Pre-Scheme: A Scheme Dialect for Systems Programming (1997)