updates
[phd-thesis.git] / dsl / first-class_datatypes.tex
index 1c9c028..4c7f06f 100644 (file)
@@ -3,7 +3,8 @@
 \include{subfilepreamble}
 
 \begin{document}
-\chapter{First-class data types in shallow \glsxtrlongpl{EDSL} using metaprogramming}%
+\chapter{First-class data types in shallow \texorpdfstring{embedded domain-specific languages}{\glsxtrlongpl{EDSL}} using metaprogramming}%
+\chaptermark{bork}%
 \label{chp:first-class_datatypes}%
 \begin{chapterabstract}
        \Gls{FP} languages are excellent for hosting \glspl{EDSL} because of their rich type systems, minimal syntax, and referential transparency.
@@ -21,7 +22,7 @@
 By expressing the language constructs in the host language, the parser, the type checker, and the run time can be inherited from the host language.
 Unfortunately, data types defined in the host language are not automatically available in the \gls{EDSL}.
 
-The two main strategies for embedding \glspl{DSL} in a \gls{FP} language are deep embedding (also called initial) and shallow embedding (also called final).
+The two main strategies for embedding \glspl{DSL} in \pgls{FP} language are deep embedding (also called initial) and shallow embedding (also called final).
 Deep embedding represents the constructs in the language as data types and the semantics as functions over these data types.
 This makes extending the language with new semantics effortless: just add another function.
 In contrast, adding language constructs requires changing the data type and updating all existing semantics to support this new construct.