@INPROCEEDINGS{HanusTikovsky16ATPS,
author       = {Hanus, M. and Tikovsky, J.R.},
title        = {A Parser Generator System for Level-based Programming Languages},
year         = {2016},
booktitle    = {Proc. of the 9th Working Conference on Programming Languages (ATPS 2016)},
pages        = {3-24},
publisher    = {CEUR Workshop Proceedings 1559},
abstract     = {
A programming language is usually taught by starting
with a small kernel that is continuously extended to the full set
of language features.
Unfortunately, the existence of advanced language features
might confuse students if they accidentally use them
and get incomprehensible error messages.
To avoid these problems, one should group the language
features into different levels so that beginners start
with a simple level and advance to higher levels with more features
if they become more experienced.
In order to support such a concept for arbitrary programming languages,
we present a parser generator system, called Levels,
for level-based programming languages.
With a level-based language, one can stepwise increase the language level
in order to match the experience of the students.
Furthermore, one can implement level-specific semantic analyses
in order to provide comprehensible error messages.
Our Levels system generates level-specific parsers
from a unified syntax description and provides an infrastructure
to implement level-specific semantic analyses as well as
program editors to develop level-specific programs.
}
}
