1
0
mirror of https://github.com/dhil/phd-dissertation synced 2026-03-13 11:08:25 +00:00
This commit is contained in:
2021-05-28 00:07:19 +01:00
parent 5340615c26
commit 4259ddee4d

View File

@@ -2367,6 +2367,12 @@ special instance of a statically typed programming language, where the
typechecking function $T$ is the constant function that always returns typechecking function $T$ is the constant function that always returns
true. true.
Often we will build programming languages incrementally by starting
from a base language and extend it with new facilities. A
\emph{conservative extension} is a particularly well-behaved extension
in the sense that it preserves the all of the behaviour of the
original language.
%
\begin{definition} \begin{definition}
A programming language $\LLL = (S, T, E)$ is said to be a A programming language $\LLL = (S, T, E)$ is said to be a
\emph{conservative extension} of a language $\LLL' = (S', T', E')$ \emph{conservative extension} of a language $\LLL' = (S', T', E')$
@@ -2374,10 +2380,10 @@ true.
\begin{itemize} \begin{itemize}
\item $S'$ is a proper subset of $S$. \item $S'$ is a proper subset of $S$.
\item $\LLL$ preserves the static semantics of $\LLL'$, \item $\LLL$ preserves the static semantics of $\LLL'$,
i.e. $T(P)$ holds if and only if $T'(P)$ holds for all programs i.e. $T(p)$ holds if and only if $T'(p)$ holds for all programs
$P$ generated by $S'$. $p$ generated by $S'$.
\item $\LLL$ preserves the dynamic semantics of $\LLL'$, i.e. \item $\LLL$ preserves the dynamic semantics of $\LLL'$, i.e.
$E(P)$ holds if and only if $E'(P)$ holds for all programs $P$ $E(p)$ holds if and only if $E'(p)$ holds for all programs $p$
generated by $S'$. generated by $S'$.
\end{itemize} \end{itemize}
\end{definition} \end{definition}