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
9 \section{Deep Embedding
}
12 \section{Shallow Embedding
}
15 \section{Class Based Shallow Embedding
}