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
}