Ignore:
Timestamp:
Aug 31, 2021, 1:23:59 PM (3 years ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
ADT, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, pthread-emulation, qualifiedEnum
Children:
0660962c, e37db11
Parents:
0a55a53
Message:

Andrew MMath: First pass on adding missing citations.

File:
1 edited

Legend:

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

    r0a55a53 r6cf21ed8  
    125125with papers on the subject dating back 70s.\cite{Goodenough75}
    126126Early exceptions were often treated as signals, which carried no information
    127 except their identity. Ada still uses this system.\todo{cite Ada}
     127except their identity.
     128Ada originally used this system\cite{Ada}, but now allows for a string
     129message as a payload\cite{Ada12}.
    128130
    129131The modern flag-ship for termination exceptions is \Cpp,
    130132which added them in its first major wave of non-object-orientated features
    131 in 1990.
    132 \todo{cite https://en.cppreference.com/w/cpp/language/history}
     133in 1990.\cite{CppHistory}
    133134Many EHMs have special exception types,
    134135however \Cpp has the ability to use any type as an exception.
     
    146147impossible to actually handle any errors.
    147148
    148 Java was the next popular language to use exceptions. \todo{cite Java}
     149Java was the next popular language to use exceptions.\cite{Java8}
    149150Its exception system largely reflects that of \Cpp, except that requires
    150151you throw a child type of \code{Java}{java.lang.Throwable}
     
    181182% http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/parc/techReports/
    182183%   CSL-79-3_Mesa_Language_Manual_Version_5.0.pdf
    183 Mesa is one programming language that did.\todo{cite Mesa} Experience with Mesa
     184Mesa is one programming language that did.\cite{Mesa} Experience with Mesa
    184185is quoted as being one of the reasons resumptions were not
    185186included in the \Cpp standard.
     
    210211languages, replaced by ``panic".
    211212In Rust, a panic is just a program level abort that may be implemented by
    212 unwinding the stack like in termination exception handling.\todo{cite Rust}
    213 % https://doc.rust-lang.org/std/panic/fn.catch_unwind.html
     213unwinding the stack like in termination exception
     214handling.\cite{RustPanicMacro}\cite{RustPanicModule}
    214215Go's panic through is very similar to a termination, except it only supports
    215216a catch-all by calling \code{Go}{recover()}, simplifying the interface at
    216 the cost of flexibility.\todo{cite Go}
     217the cost of flexibility.\cite{Go:2021}
    217218
    218219%\subsection
     
    291292This difference is less important in higher-level scripting languages,
    292293where using exception for other tasks is more common.
    293 An iconic example is Python's \code{Python}{StopIteration} exception that
     294An iconic example is Python's
     295\code{Python}{StopIteration}\cite{PythonExceptions} exception that
    294296is thrown by an iterator to indicate that it is exhausted.
    295297When paired with Python's iterator-based for-loop this will be thrown every
    296 time the end of the loop is reached.
    297 \todo{Cite Python StopIteration and for-each loop.}
    298 % https://docs.python.org/3/library/exceptions.html#StopIteration
     298time the end of the loop is reached.\cite{PythonForLoop}
Note: See TracChangeset for help on using the changeset viewer.