Tree @master (Download .tar.gz)
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.
Commit History
@master
git clone https://git.catseye.tc/PL-GOTO.NET/
- Modernize test suite. Cat's Eye Technologies 14 years ago
- Markdown(-in-LHS) tweaks. catseye 14 years ago
- Tiny Markdown fix. catseye 14 years ago
- Update tests for upcoming Falderal version 0.5. catseye 14 years ago
- Added tag rel_1_1_20111011 for changeset d2b67df791b2 catseye 14 years ago
- Simplify test driver for latest Falderal. Chris Pressey 14 years ago
- The tests are fully in Falderal format now, so rename the file. Chris Pressey 14 years ago
- Convert tests to the proposed Falderal 0.3 format. catseye 14 years ago
- Added tag rel_1_1 for changeset 05e678791afb Chris Pressey 15 years ago
- Fix bug in compiler. Dutifully bump version number. Chris Pressey 15 years ago
- Added tag rel_1_0 for changeset d61a7d03b723 Chris Pressey 15 years ago
- Add version number. Chris Pressey 15 years ago
- Document the main source a bit more thoroughly. Chris Pressey 15 years ago
- Preamble in the test suite, and add one more test. Chris Pressey 15 years ago
- Ignore files generated by compiler-demo.sh. Chris Pressey 15 years ago
- Simplify -- MSIL locals don't have to be enumerated. Chris Pressey 15 years ago
- Heh, turns out locals don't have to be referenced by number after all. Chris Pressey 15 years ago
- Implement loop compilation. Fix bug in loop labeling. Update tests. Run up against limitation in MSIL. Chris Pressey 15 years ago
- Implement all of the logic for a loop except the conditional. Chris Pressey 15 years ago
- Simplify by treated loop variables like any other local variable. Chris Pressey 15 years ago
- Label each loop with a unique integer internally. Chris Pressey 15 years ago
- Count loops and allocate loop variables for them. Chris Pressey 15 years ago
- Rudimentary code generator; doesn't handle loops yet. Chris Pressey 15 years ago
- Make generated program dump all variables at end of execution. Chris Pressey 15 years ago
- Construct the locals block properly. Chris Pressey 15 years ago
- Flesh out the compiler. It generates legal (if vacuous) MSIL now. Chris Pressey 15 years ago
- Sketch out the skeleton of the compiler. catseye 15 years ago
- Initial import of files for PL-{GOTO}.NET. Chris Pressey 15 years ago