Trees that Grow in the Paragon Compiler A Step Towards Modularity
Abstract
Paragon is a programming language that extends Java with statically checked
information flow control policies. Paragon’s compiler, which is written in Haskell,
has a large type checker. Its current implementation is monolithic, making the
compiler challenging to develop. Paragon’s authors, Broberg et al., have proposed
to partition the type checker into five phases, and this project is a step towards
such an implementation.
We identify the representation of Paragon’s abstract syntax tree as an essential
design aspect and emphasize extensibility to conform to the phases’ varying requirements.
Based on a programming idiom, Trees that Grow, by Najd and Jones,
we implement an extensible abstract syntax tree in Paragon’s compiler. We observe
that our implementation introduces a substantial amount of boilerplate code.
To alleviate the issue, we employ several methods for generic programming. We
conclude that our AST implementation is extensible but complex.
Degree
Student essay
Collections
View/ Open
Date
2020-10-30Author
Andersson, John
Berggren Sjöblom, Anders
Bäckelie, Anders
Ljung Ekeroth, Johannes
Skystedt, Lukas
Terner, Lina
Language
eng