% CSG Memo Cover Sheet
% Nikhil
% March 25, 1988

\documentstyle[12pt]{article}

% HORIZONTAL MARGINS
% Left margin 1 inch (0 + 1)
\setlength{\oddsidemargin}{0in}
% Text width 6.5 inch (so right margin 1 inch).
\setlength{\textwidth}{6.5in}

% VERTICAL MARGINS
% Top margin 0.8 inch (-0.2 + 1)
\setlength{\topmargin}{-0.2in}
% Head height 0.25 inch (where page headers go)
\setlength{\headheight}{0.25in}
% Head separation 0.25 inch (between header and top line of text)
\setlength{\headsep}{0.25in}
% Text height 9 inch (so bottom margin 1 in)
\setlength{\textheight}{9in}

% Paragraph Indentation
\setlength{\parindent}{0in}
% Space between paragraphs
\setlength{\parskip}{\medskipamount}

\pagestyle{empty}

% short forms for italicized ``i.e.'', ``e.g.'', ``etc.''
\newcommand{\ie}{{\em i.e.,\/}}
\newcommand{\eg}{{\em e.g.,\/}}
\newcommand{\etc}{{\em etc.\/}}

% This command should specify a directory for ps files for illustrations.
\def\psfileprefix{/home/www/csg-memos/covers/}
\def\illustration#1#2{
\vbox to #2{\vfill\special{psfile=\psfileprefix#1.ps hoffset=-72 voffset=-45}}} 

% THE DOCUMENT ************************************************

\begin{document}

\vspace{1.0in}

\begin{center}

% *** TITLE ***
\rule[0in]{0in}{1.5in}\parbox[t]{6in}{\centering
\Large\bf Practicing the Object Modeling Technology \\
   in a \\
   Functional Programming Framework
}


% *** CSG MEMO NUMBER, DATE ***
\rule[0in]{0in}{0.8in}\parbox[t]{6in}{\centering
Computation Structures Group Memo 379

March, 1996
}

% *** AUTHOR(S) ***
\rule[0in]{0in}{1.0in}\parbox[t]{6in}{\centering
{\bf Jack B. Dennis and Handong Wu}
}

\rule[0in]{0in}{1in}\parbox[t]{5in}{\footnotesize
This memo is an extended version of a paper prepared for OOPSLA-96,
Object-Oriented Programming Systems, Languages and Applications.
Handong Wu is a visitor to the Laboratory for Computer Science
on leave from Ericsson Telecom, Sweden.
}

\vfill

% *** RESEARCH SUPPORT ACK ***
\rule[0in]{0in}{1.0in}\parbox[t]{6in}{\centering
\parbox[t]{5in}{\footnotesize
The research reported in this document was performed, in part, using
facilities of the Laboratory for Computer Science of
the Massachusetts Institute of Technology. Funding for the Laboratory is
provided in part by the Advanced Research Projects Agency of the Department
of Defense under the Office of Naval Research contract N00014-92-J-1310.}
}

\end{center}

\vspace{0.6in}


% This is the oval border, mens et manus logo, etc. Don't touch it. It refers to the
% postscript file ``lcscover.ps''

\begin{figure}[htbp]
\illustration{lcscover}{0 true in}
\end{figure}

\end{document}

===============


\author{
   Jack B. Dennis and Handong Wu\thanks{On leave
      from Ericsson Telecom, Sweden}\\
   MIT Laboratory for Computer Science\\
   Cambridge, MA, 02139, USA\\
   e-mail: \{dennis,handong\}@abp.lcs.mit.edu\\
   tel: 617-253-6837\\
   fax: 617-253-6522
}

\date{}

\begin{document}

\maketitle

\noindent
{\bf Abstract:} Object-oriented methodology has become an important
approach to improving the quality of software and increasing the
efficiency of its development. In this paper we show how the
benefits of object-oriented methodologies can be realized within the
framework of functional programming.
We show how the important uses of inheritance can be
supported by an extension of the Sisal language, namely ObjectSisal, to
include a natural class mechanism with immutable abstract
data types, and how uses of ``state'' may be handled by means of
stream data types and the nondeterminate merge operation.
These principles are illustrated using examples from
simulation and real-time systems.


\noindent
{\bf Keywords:} object modeling technique, object-oriented programming,
  functional programming,nondeterminacy, distributed computing, real-time
  computing


\end{document}



