Merge branch 'master' of git.martlubbers.net:msc-thesis1617
[msc-thesis1617.git] / edsl.tex
1 An \gls{EDSL} is a language embedded in a host language. \glspl{EDSL} can have
2 one or more backends or views. Commonly used views are pretty printing,
3 compiling, simulating, verifying and proving the program. There are several
4 techniques available for creating \glspl{EDSL}. They all have their own
5 advantages and disadvantages in terms of extendability, typedness and view
6 support. In the following subsections each of the main techniques are briefly
7 explained.
8
9 \section{Deep Embedding}
10 \input{edsl.deep}
11
12 \section{Shallow Embedding}
13 \input{edsl.shallow}
14
15 \section{Class Based Shallow Embedding}
16 \input{edsl.class}