Implementing Attribute Grammars in F#

OData support
Dr. Simon Balázs
Department of Control Engineering and Information Technology

Nowadays certain problems cannot be solved efficiently with general purpose programming languages. These problems are usually handled by domain-specific languages (DSL). A domain-specific language is a special computer language that is designed to solve problems in a particular domain.

The syntax of domain-specific languages is usually defined using context-free grammars. However, the abstract syntax tree built by the DSL parser based on the CF grammar of the DSL does not have any semantics. Attribute grammars (AG) solve this problem by providing a formal way to add semantic information to the syntax tree.

The .NET Framework is an application development platform on which one can create applications using multiple interoperable languages. F# is a functional programming language in .NET which can also be used with lexer and parser generator tools, such as FsLex and FsYacc.

This platform has become very popular in the last couple of years. Thus, it is likely that one would create a domain-specific language on this platform which also includes implementing attribute grammars.

In this thesis I examine this problem. It is vital to have efficient tools and methods that help creating a DSL. So the main goal is to find different methods to implement an attribute grammar in F#.


Please sign in to download the files of this thesis.