bc on Truffle

Project Idea

[bc](https://linux.die.net/man/1/bc) is an arbitrary precision calculator language used as a command line calculator in Unix systems. Besides arithmetic expressions, it also support a small C-like statement syntax including control structures. The goal of this project is to implement bc, or a subset of it, as a [Truffle](https://github.com/oracle/graal/tree/master/truffle) language. Truffle is a framework for writing AST interpreters running on [GraalVM](https://github.com/oracle/graal), unifying multiple languages to a polyglot, inter-operable runtime. Currently, the simplest non-trivial Truffle language is [SimpleLanguage](https://github.com/graalvm/simplelanguage), which is maintained by Truffle developers. Unfortunately, the aforementioned language is not simple at all. It is already too complex to serve as an entry-level introduction to Truffle. As bc is much simpler, we expect a Truffle bc to serve the purpose as a Truffle introduction much better. This project is best suited for a student with prior experience with parser and compiler technology, or a high interest in learning on how programming languages are implemented.


Manuel Leuenberger

Boris Spasojević