Changeset e46ea00 for doc/theses/andrew_beach_MMath
- Timestamp:
- Jun 1, 2021, 9:46:51 AM (3 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 93f74c0f
- Parents:
- b405039
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/andrew_beach_MMath/intro.tex
rb405039 re46ea00 4 4 This thesis goes over the design and implementation of the exception handling 5 5 mechanism (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). 7 Exception handling provides more complex dynamic inter-function control flow. 8 For 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} 13 Exception handling allows deviations, 14 such as @f@ returning directly to @h@ and the intervening call to @g@ is unwound. 15 Other derivations include dynamic function call (old Lisp~\cite{CommonLisp} call) versus static or continuation passing. 16 Basically, any non-linear form of call-return can be part of an EHM. 17 18 Although 19 powerful, an EHM tends to be conceptually more complex and expensive to use, and hence often limited 9 20 to unusual or ``exceptional" cases. 10 21 The 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. 22 remove error-handling logic from the main execution path and paying a higher 23 performance cost only when the error actually occurs. 24 25 \section{Background} 26 27 Programming languages that provide different forms of EHM are: ... 28 29 Mention the popular ``return union'' approach, which does not change the call/return control-flow. 30 31 \section{New Work} 13 32 14 33 % Overview of exceptions in Cforall. 15 The \CFA EHM implements all of the common exception features (or an 34 This thesis describes the design and implementation of the \CFA EHM. 35 The work implements all of the common exception features (or an 16 36 equivalent) found in most other EHMs and adds some features of its own. 17 37 The design of all the features had to be adapted to \CFA's feature set as … … 33 53 34 54 % A note that yes, that was a very fast overview. 35 All the design and implementation of all of \CFA's EHM's features are36 described in detail laterin this thesis, whether they are a common feature55 The design and implementation of all of \CFA's EHM's features are 56 described in detail throughout in this thesis, whether they are a common feature 37 57 or one unique to \CFA. 38 58 39 59 % The current state of the project and what it contributes. 40 All of these features have been added to the \CFA implemenation, along with41 a suite of test cases .60 All of these features have been implemented in \CFA, along with 61 a suite of test cases, as part of this thesis. 42 62 The 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. 63 languages and much of the design as well. Although some of \CFA's more unusual EHM feature 64 would not be found in other programming languages. 65 66 \section{Contributions} 67 68 The 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.