-Writing idiomatic domain-specific code in a \gls{DSL} is easy but this may come at the cost of the \gls{DSL} being less expressive to an extent that it may not even be Turing complete.
-\Glspl{DSL} come in two main flavours: standalone and embedded (\cref{sec:standalone_embedded})\footnote{Standalone and embedded are also called external and internal respectively.} of which \glspl{EDSL} can further be classified into heterogeneous and homogeneous languages (\cref{sec:hetero_homo}).
+Writing idiomatic domain-specific code in a \gls{DSL} is easier and requires less background knowledge about a \gls{GPL}.
+This does come at the cost of the \gls{DSL} being sometimes less expressive to an extent that it may not even be Turing complete.
+\Glspl{DSL} come in two main flavours: standalone and embedded (\cref{sec:standalone_embedded})\footnote{Standalone and embedded are also called external and internal respectively.}.
+Standalone languages are languages for which the complete toolchain has been developed, just as for any other \gls{GPL}.
+Embedded languages piggyback on an existing \gls{GPL}, they are defined in terms of their host language.
+\Glspl{EDSL} can further be classified into heterogeneous and homogeneous languages (\cref{sec:hetero_homo}).
+In homogeneous languages all components are integrated whereas in heterogeneous \glspl{DSL}, some parts are ignorant of the other systems, e.g.\ a \gls{DSL} that generates code that is compiled by an existing compiler.