Browse Source

Revisions

master
Daniel Hillerström 6 years ago
parent
commit
753996ae9f
  1. 27
      thesis.tex

27
thesis.tex

@ -207,7 +207,7 @@ callcc, J, catchcont, etc.
\part{Design}
\chapter{A ML-flavoured programming language based on rows}
\chapter{An ML-flavoured programming language based on rows}
\label{ch:base-language}
In this chapter we introduce a core calculus, \BCalc{}, which we shall
@ -218,11 +218,11 @@ multi-tier web-programming language
\Links{}~\cite{CooperLWY06}. \Links{} belongs to the
ML-family~\cite{MilnerTHM97} of programming languages as it features
typical characteristics of ML languages such as a static type system
supporting parametric polymorphism with type inference support (in
fact Links supports first-class polymorphism), and its evaluation
semantics is strict. However, \Links{} differentiates itself from the
rest of the ML-family by making crucial use of \emph{row polymorphism}
to support extensible records, variants, and tracking of computational
supporting parametric polymorphism with type inference (in fact Links
supports first-class polymorphism), and its evaluation semantics is
strict. However, \Links{} differentiates itself from the rest of the
ML-family by making crucial use of \emph{row polymorphism} to support
extensible records, variants, and tracking of computational
effects. Thus \Links{} has a rather strong emphasis on structural
types rather than nominal types.
@ -247,9 +247,9 @@ and programming with computational effects.
\section{Syntax and static semantics}
\label{sec:syntax-base-language}
In \BCalc{}, types are precursory to terms, as it is intrinsically
typed. Thus we begin by presenting the syntax of its kind and type
structure in Section~\ref{sec:base-language-types}. Subsequently in
As \BCalc{} is intrinsically typed, we begin by presenting the syntax
of kinds and types in
Section~\ref{sec:base-language-types}. Subsequently in
Section~\ref{sec:base-language-terms} we present the term syntax,
before presenting the formation rules for types in
Section~\ref{sec:base-language-type-rules}.
@ -449,10 +449,11 @@ $\cdot$ for closed rows.
%
\paragraph{Kinds}
The kinds comprise $\Type$ for regular type variables, $\Presence$ for
presence variables, $\Comp$ for computation type variables, $\Effect$
for effect variables, and lastly $\Row_{\mathcal{L}}$ for row
variables.
The kinds classify the different categories of types. The $\Type$ kind
classifies for value types, $\Presence$ classifies presence
annotations, $\Comp$ classifies computation types, $\Effect$
classifies effect types, and lastly $\Row_{\mathcal{L}}$ classifies
rows.
%
The formation rules for kinds are given in
Figure~\ref{fig:base-language-kinding}. The kinding judgement

Loading…
Cancel
Save