Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > cd38b09e3cb8d6c675b02d30393e68af > files > 13

kaya-doc-0.5.2-8.fc14.noarch.rpm

\documentclass[a4paper]{article}

\input{macros.ltx}

\usepackage{palatino}

\setlength{\parindent}{0cm}
\setlength{\parskip}{1ex}

\begin{document}

\title{The \Kaya{} Programming Language, Version 
\input{../VERSION}}
% Note: Please add yourself as an author if you add anything else!
\author{Edwin Brady \and Chris Morris \and [Your Name Here!] \\
email: \texttt{kaya@compsoc.dur.ac.uk}}

\maketitle

\section{Introduction}

This document is eventually intended to evolve into reference
documentation for the \Kaya{} programming language. It is not
intended to be a tutorial, but rather an accurate description of the
language and compiler features.  The language itself, its type system
and its data and execution models are introduced.

At present, there is no formal and unambiguous definition of the
language, besides the implementation itself. The lexical structure is
implemented by \texttt{Lexer.hs} and the grammar by \texttt{Parser.y}.
Since the implementation is constantly evolving, so is this
document. If you find any errors or inconsistencies, please let us
know.  

%One day, of course, it would be nice to have a document
%describing the precise language details, but that will have to wait!
%\TODO{At the very least, we might add the type inference rules at some
%point.}

Throughout, code is presented in \CD{this style} and meta-code (i.e.,
something standing for code) is presented in \MC{this style}.  We use
the convention that \oneplus{\MC{x}} means a sequence of at least one
\MC{x}, and \zeroplus{\MC{x}} means a sequence of zero or more
\MC{x}s.  \oneplus{\MC{x},} means a delimited sequence of one or more
\MC{x}s (where the delimiter is an arbitrary symbol), and
correspondingly \zeroplus{\MC{x},}.  \maybe{\MC{x}} denotes an
optional \MC{x}. Complex BNF expressions may be enclosed in angle
brackets, e.g. \zeroplus{$\langle$\MC{type} \MC{identifier}$\rangle$,}
denotes a comma separated list of types followed by identifiers.

\input{lexical.tex}
\input{types.tex}
\input{structure.tex}
\input{functions.tex}
\input{expressions.tex}
\input{builtins.tex}
\input{progtypes.tex}
\input{modules.tex}
\input{foreign.tex}
\input{internals.tex}
\input{future.tex}

\nocite{pj-imp}
\nocite{compilers}
\bibliographystyle{alpha}
\bibliography{references}

\end{document}