Changeset e46ea00


Ignore:
Timestamp:
Jun 1, 2021, 9:46:51 AM (16 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
arm-eh, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
93f74c0f
Parents:
b405039
Message:

augment introduction chapter with places for extension

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/andrew_beach_MMath/intro.tex

    rb405039 re46ea00  
    44This thesis goes over the design and implementation of the exception handling
    55mechanism (EHM) of
    6 \CFA (pernounced sea-for-all, can also be written Cforall or CFA).
    7 Exception handling provides dynamic inter-function control flow. Although
    8 a powerful feature they tend to be expensive to use so they are often limited
     6\CFA (pronounced see-for-all and also written Cforall or CFA).
     7Exception handling provides more complex dynamic inter-function control flow.
     8For example, normally function call is a strict linear form: function @h@ calls @g@,
     9@g@ calls @f@, @f@ returns to @g@ and @g@ to @h@.
     10\begin{center}
     11\input{callreturn}
     12\end{center}
     13Exception handling allows deviations,
     14such as @f@ returning directly to @h@ and the intervening call to @g@ is unwound.
     15Other derivations include dynamic function call (old Lisp~\cite{CommonLisp} call) versus static or continuation passing.
     16Basically, any non-linear form of call-return can be part of an EHM.
     17
     18Although
     19powerful, an EHM tends to be conceptually more complex and expensive to use, and hence often limited
    920to unusual or ``exceptional" cases.
    1021The classic example of this is error handling, exceptions can be used to
    11 remove error handling logic from the main execution path and paying most of
    12 the cost only when the error actually occurs.
     22remove error-handling logic from the main execution path and paying a higher
     23performance cost only when the error actually occurs.
     24
     25\section{Background}
     26
     27Programming languages that provide different forms of EHM are: ...
     28
     29Mention the popular ``return union'' approach, which does not change the call/return control-flow.
     30
     31\section{New Work}
    1332
    1433% Overview of exceptions in Cforall.
    15 The \CFA EHM implements all of the common exception features (or an
     34This thesis describes the design and implementation of the \CFA EHM.
     35The work implements all of the common exception features (or an
    1636equivalent) found in most other EHMs and adds some features of its own.
    1737The design of all the features had to be adapted to \CFA's feature set as
     
    3353
    3454% A note that yes, that was a very fast overview.
    35 All the design and implementation of all of \CFA's EHM's features are
    36 described in detail later in this thesis, whether they are a common feature
     55The design and implementation of all of \CFA's EHM's features are
     56described in detail throughout in this thesis, whether they are a common feature
    3757or one unique to \CFA.
    3858
    3959% The current state of the project and what it contributes.
    40 All of these features have been added to the \CFA implemenation, along with
    41 a suite of test cases.
     60All of these features have been implemented in \CFA, along with
     61a suite of test cases, as part of this thesis.
    4262The implementation techniques are generally applicable in other programming
    43 languages and much of the design is as well, although occationally
    44 replacements for some of \CFA's more unusual feature would have to be found.
     63languages and much of the design as well. Although some of \CFA's more unusual EHM feature
     64would not be found in other programming languages.
     65
     66\section{Contributions}
     67
     68The contributions of this work are:
     69\begin{enumerate}
     70\item
     71\item
     72\item
     73\item
     74\end{enumerate}
     75
     76\section{Road Map}
Note: See TracChangeset for help on using the changeset viewer.