process rinus' comments
[phd-thesis.git] / dsl / first.tex
index da783ac..d6e7298 100644 (file)
        However, data types defined in the host language are not automatically available in the embedded language.
        To do so, all the operations on the data type must be ported to the \gls{EDSL} resulting in a lot of boilerplate.
 
-       This paper shows that by using metaprogramming, all first-order user-defined data types can be automatically made first class in shallow \glspl{EDSL}.
+       This chapter shows that by using metaprogramming, all first-order user-defined data types can be automatically made first class in shallow \glspl{EDSL}.
        We show this by providing an implementation in \gls{TH} for a typical \gls{DSL} with two different semantics.
        Furthermore, we show that by utilising quasiquotation, there is hardly any burden on the syntax.
-       Finally, the paper also serves as a gentle introduction to \gls{TH}.
+       Finally, the chapter also serves as a gentle introduction to \gls{TH}.
 \end{chapterabstract}
 
 \section{Introduction}
@@ -51,11 +51,11 @@ Metaprogramming entails that some parts of the program are generated by a progra
 Quasiquotation is a metaprogramming mechanism that allows entering verbatim code for which a---possibly user defined---translation is used to convert the verbatim code to host language \gls{AST} nodes.
 Metaprogramming allows functions to be added to the program at compile time based on the structure of user-defined data types.
 
-\subsection{Contributions of the paper}
-This paper shows that with the use of metaprogramming, all first-order user-defined data types can automatically be made first class for shallow \glspl{EDSL}.
+\subsection{Contributions}
+This chapter shows that with the use of metaprogramming, all first-order user-defined data types can automatically be made first class for shallow \glspl{EDSL}.
 It does so by providing an implementation in \gls{TH} for a typical \gls{DSL} with two different semantics: an interpreter and a pretty printer.
 Furthermore, we show that by utilising quasiquotation, there is hardly any burden on the syntax.
-Finally, the paper also serves as a gentle introduction to \gls{TH} and reflects on the process of using \gls{TH}.
+Finally, the chapter also serves as a gentle introduction to \gls{TH} and reflects on the process of using \gls{TH}.
 
 \section{Tagless-final embedding}
 Tagless-final embedding is an upgrade to standard shallow embedding achieved by lifting all language construct functions to type classes.
@@ -861,7 +861,7 @@ Where in \gls{TH} you can manipulate arbitrary parts of the syntax tree, add top
 \Citet{willis_staged_2020} used \gls{TTH} to remove the overhead of parsing combinators.
 
 \section{Discussion}
-This paper aims to be twofold, first, it shows how to inherit data types in a \gls{DSL} as first-class citizens by generating the boilerplate at compile time using \gls{TH}.
+This chapter aims to be twofold, first, it shows how to inherit data types in a \gls{DSL} as first-class citizens by generating the boilerplate at compile time using \gls{TH}.
 Secondly, it introduces the reader to \gls{TH} by giving an overview of the literature in which \gls{TH} is used and provides a gentle introduction by explaining the case study.
 
 \Gls{FP} languages are especially suitable for embedding \glspl{DSL} but adding user-defined data types is still an issue.