Skip to content

MIRROR of https://codeberg.org/catseye/PL-GOTO.NET : A CIL-targeting compiler for Brainerd and Landweber's PL-{GOTO}

License

Notifications You must be signed in to change notification settings

catseye/PL-GOTO.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PL-{GOTO}.NET

This is the reference distribution of PL-{GOTO}.NET, a literate Haskell program which compiles a program written in PL-{GOTO} to an MSIL file which can then be assembled by ilasm to produce a .NET executable. PL-{GOTO} is a pedagogical language, described in Brainerd and Landweber's Theory of Computation (1974; ISBN 0471095850), in which it is possible to express only computations which are primitive recursive.

The source code of the compiler is in the file src/PLexceptGOTOdotNET.lhs. Being written in literate Haskell, it also serves as documentation for the compiler.

A test suite written in Falderal format can be found in the tests directory and can be run with the test.sh script in the root directory.

The bin directory contains bin/PLexceptGOTOdotNET-loadngo, a shell script that demonstrates the end-to-end usage of the compiler. You'll need ilasm installed. On Ubuntu, this is provided by the mono-devel package.

The materials in this distribution are in the public domain; see the file UNLICENSE for more information.