Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ibara/pl0c

Self-hosting PL/0 to C compiler to teach basic compiler construction from a practical, hands-on perspective.
https://github.com/ibara/pl0c

c code-generation code-generator code-generators compilation compiler compilers compiling freebsd lexer linux netbsd openbsd parser pascal pl-0 recursive-descent recursive-descent-parser unix

Last synced: 1 day ago
JSON representation

Self-hosting PL/0 to C compiler to teach basic compiler construction from a practical, hands-on perspective.

Awesome Lists containing this project

README

        

pl0c
====
`pl0c` is a compiler for the
[PL/0](https://en.wikipedia.org/wiki/PL/0)
language. It reads in PL/0 source code and outputs
equivalent C source code.

It was written to be the subject of a series of
[blog posts](https://briancallahan.net/blog/20210814.html)
on writing a compiler from a hands-on practical perspective
for the beginner.

Building
--------
Just run `make`. Then (optionally) `make install`.

If you are on a platform that does not include
[`strtonum(3)`](https://man.openbsd.org/strtonum.3)
in its libc, remove `-DHAVE_STRTONUM` from `CFLAGS`.
In this case, you'll have to put `strtonum.c` in the
same directory as `pl0c`. This will be improved.

Version
-------
The current version is `1.0.2`.

You can find a source tarball in the Releases tab.

Issues and Pull Requests
------------------------
Issues and Pull Requests are accepted at any time.

If your Pull Request changes the compiler in any way, I ask
that you remember to update the bootstrap compiler using
`make genbootstrap` and including the updated bootstrap
compiler as part of the Pull Request.