X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Ffirst.tex;fp=dsl%2Ffirst.tex;h=d3df08e267bec0361bb81c778c0f08724d8c7ead;hb=37e6240fbe3b2d1d8e6babdcc8c48b1b78f31999;hp=68a5baf252118e927f1e10ab2a0b7156ea942ff3;hpb=cdb3ae89b207b609a67f3436d02b7eed6aa4a3ce;p=phd-thesis.git diff --git a/dsl/first.tex b/dsl/first.tex index 68a5baf..d3df08e 100644 --- a/dsl/first.tex +++ b/dsl/first.tex @@ -785,7 +785,7 @@ If not the host language but the \gls{DSL} contains higher order functions, the \Citet{mcdonell_embedded_2022} extends on this idea, resulting in a very similar but different solution to ours. They used the technique that \citeauthor{atkey_unembedding_2009} showed and applied it to deep embedding using the concrete syntax of the host language. The scaffolding---e.g.\ generating the pairs, sums and injections---for embedding is automated using generics but the required pattern synonyms are generated using \gls{TH}. -The key difference to our approach is that we specialise the implementation for each of the backends instead of providing a general implementation of data type handling operations. +The key difference to our approach is that we specialise the implementation for each of the interpretations instead of providing a general implementation of data type handling operations. Furthermore, our implementation does not require a generic function to trace all constructors, resulting in problems with (mutual) recursion. \Citet{young_adding_2021} added pattern matching to a deeply \gls{EDSL} using a compiler plugin. @@ -812,7 +812,7 @@ In practise, this means that the programmer selects a skeleton and, at compile t \Citet{duregard_embedded_2011} wrote a parser generator using \gls{TH} and the custom quasiquoting facilities. From a specification of the grammar, given in verbatim using a custom quasiquoter, a parser is generated at compile time. \Citet{shioda_libdsl_2014} used metaprogramming in the D programming language to create a \gls{DSL} toolkit. -They also programmatically generate parsers and a backend for either compiling or interpreting the \gls{IR}. +They also programmatically generate parsers and an interpretation for either compiling or interpreting the \gls{IR}. \Citet{blanchette_liquid_2022} use \gls{TH} to simplify the development of Liquid \gls{HASKELL} proofs. \Citet{folmer_high-level_2022} used \gls{TH} to synthesize C$\lambda$aSH \citep{baaij_digital_2015} \glspl{AST} to be processed. In similar fashion, \citet{materzok_generating_2022} used \gls{TH} to translate YieldFSM programs to {C$\lambda$aSH}.