Title :
Growing a Language in Pattern Calculus
Author :
Jay, Barry ; Vergara, Josefina
Author_Institution :
Univ. of Technol., Sydney, NSW, Australia
Abstract :
Pattern calculus treats all computation as pattern matching, which is, in turn, central to the implementation of programming languages. Hence, its realisation in the general purpose language bondi provides a natural host in which to develop domain-specific languages (DSLs). bondi is a strongly typed language that supports mixing of programming styles to support the features required for language implementation. In particular, bondi supports queries, views and transformations that can be used to develop object-oriented meta-models. The approach is illustrated by growing a small combinatory language in which each language feature i.e. each production of each grammar, is isolated within a single object-oriented class that captures the rules for parsing, type inference, evaluation and printing. Further, growth is used to support lambda-abstractions, providing good evidence that this combinatory language could grow to support a general purpose programming language.
Keywords :
grammars; inference mechanisms; object-oriented programming; process algebra; specification languages; DSL; bondi; domain-specific languages; general purpose programming language; lambda-abstractions; object-oriented class; object-oriented meta-models; parsing; pattern calculus; pattern matching; programming languages; type inference; Calculus; Data structures; Grammar; Pattern matching; Printing; Programming; Syntactics;
Conference_Titel :
Theoretical Aspects of Software Engineering (TASE), 2013 International Symposium on
Conference_Location :
Birmingham
DOI :
10.1109/TASE.2013.37