% FILE. . . . . /home/hak/ngo/doc/hak/design/hakl.tex
% EDIT BY . . . Hassan Ait Kaci
% ON MACHINE. . Latitude314.Ilog.Fr
% STARTED ON. . Tue Jun 25 09:31:35 2002

% Last modified on Tue Jun 25 09:31:45 2002 by Hak

\chapter{A full example---\hakl}
\label{hakl}

This chapter details the design of a concrete language from scratch. We
call this language \hakl---presumably to mean, somewhat presumptuously:
\hak's Little Language.\footnote{... and pronounced
``{\em hackle}''---not to be confused with an otherwise known
programming language of greater notoriety and whose name is the first
name of Prof.~Haskell B.~Curry.}

\hakl\ is a fully-working prototype language whose essential goal is to
illustrate and demonstrate our architecture: the expressive power of the
kernel language and the workings of its type-checker, compiler, and
runtime systems. It is an imperative functional language with objects,
where functions are first-class citizens. \hakl\ has a surface syntax
for an interactive language that can define top-level constructs and
evaluate expressions. It supports 2nd-order (ML-like) type polymorphism,
automatic currying, multiple type overloading, dynamic operator
overloading, as well as flat classes and objects (\ie, no subtyping nor
inheritance---{\em yet}).

