A CIL-targeting compiler for Brainerd and Landweber's PL-{GOTO} https://catseye.tc/installation/PL-%7BGOTO%7D
Find a file
2024-08-28 10:00:34 +01:00
bin Arrange licensing info in repo according to REUSE 3.2 convention. 2024-08-28 10:00:34 +01:00
demo Arrange licensing info to follow REUSE 3.0 convention. 2024-03-03 10:57:51 +00:00
eg Use standard launcher, example programs for HTML5 installation. 2021-10-31 12:02:04 +00:00
LICENSES Arrange licensing info to follow REUSE 3.0 convention. 2024-03-03 10:57:51 +00:00
src Arrange licensing info to follow REUSE 3.0 convention. 2024-03-03 10:57:51 +00:00
tests Arrange licensing info to follow REUSE 3.0 convention. 2024-03-03 10:57:51 +00:00
.gitignore Arrange licensing info in repo according to REUSE 3.2 convention. 2024-08-28 10:00:34 +01:00
build.sh Arrange licensing info in repo according to REUSE 3.2 convention. 2024-08-28 10:00:34 +01:00
clean.sh Arrange licensing info in repo according to REUSE 3.2 convention. 2024-08-28 10:00:34 +01:00
README.md Add some useful links to the README. 2024-03-05 16:26:59 +00:00
REUSE.toml Arrange licensing info in repo according to REUSE 3.2 convention. 2024-08-28 10:00:34 +01:00
test.sh Arrange licensing info in repo according to REUSE 3.2 convention. 2024-08-28 10:00:34 +01:00

PL-{GOTO}.NET

Try it online @ catseye.tc | See also: Exanoke


This is the reference distribution of PL-{GOTO}.NET, a literate Haskell program which compiles a program written in PL-{GOTO} to a CIL 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 LICENSES/Unlicense.txt for more information.