C delta: Design and Implementation of a Transcompiler for Language Integrated Finite-State Machines in C sharp
C♯ is a programming language developed by Microsoft that supports multiple programming paradigms. Two of these paradigms are object-oriented programming and event-driven programming which allow developers to implement finite-state machines in their applications.
However, these implementations are not supported by a built-in programming paradigm, syntactic sugar, or the included base class libraries. This forces developers to either create their own robust general purpose finite-state machines or include a third-party class library.
This master’s thesis discuses automata-based programming as a programming paradigm and how C𝛿, a language designed and implemented in this thesis, will extend C♯ with this paradigm. Furthermore, other programming languages and code generators are compared to C𝛿 in their implementations of finite-state machines. Special attention is given to the programming language P♯, as its specification and goals are similar to C𝛿.
To show the practicability of the C𝛿 language, its compiler is rewritten into C𝛿 itself. This recursive bootstrapping is used to discuss the advantages and experiences of having language integrated finite-state machines, compared to other solutions.