# Changeset 3b402339 for doc

Ignore:
Timestamp:
Feb 2, 2021, 9:56:41 PM (6 months ago)
Branches:
arm-eh, jacob/cs343-translation, master
Children:
3d67f83
Parents:
144fa5c (diff), 1c1c180 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
doc/theses/andrew_beach_MMath
Files:
7 edited

Unmodified
Added
Removed
• ## doc/theses/andrew_beach_MMath/existing.tex

 r144fa5c obvious to the reader. \section{\texorpdfstring{Overloading and \lstinline|extern|}{Overloading and extern}} \section{\texorpdfstring{Overloading and \lstinline|extern|} {Overloading and extern}} \CFA has extensive overloading, allowing multiple definitions of the same name to be defined.~\cite{Moss18}
• ## doc/theses/andrew_beach_MMath/features.tex

 r144fa5c Virtual types and casts are not required for a basic exception-system but are useful for advanced exception features. However, \CFA is not object-oriented so there is no obvious concept of virtuals.  Hence, to create advanced exception there is no obvious concept of virtuals. Hence, to create advanced exception features for this work, I needed to designed and implemented a virtual-like system for \CFA. \end{center} The hierarchy provides the ability to handle an exception at different degrees of specificity (left to right).  Hence, it is possible to catch a more general of specificity (left to right). Hence, it is possible to catch a more general exception-type in higher-level code where the implementation details are unknown, which reduces tight coupling to the lower-level implementation. Exceptions are defined by the trait system; there are a series of traits, and if a type satisfies them, then it can be used as an exception.  The following if a type satisfies them, then it can be used as an exception. The following is the base trait all exceptions need to match. \begin{cfa} \PAB{I do not understand this paragraph.} One odd thing about @get_exception_vtable@ is that it should always be a constant function, returning the same value regardless of its argument.  A constant function, returning the same value regardless of its argument. A pointer or reference to the virtual table instance could be used instead, however using a function has some ease of implementation advantages and allows for easier disambiguation because the virtual type name (or the address of an instance that is in scope) can be used instead of the mangled virtual table name.  Also note the use of the word promise'' in the trait name. Also note the use of the word promise'' in the trait description. Currently, \CFA cannot check to see if either @exceptT@ or @virtualT@ match the layout requirements. This is considered part of Finally there are three convenience macros for referring to the these traits: @IS_EXCEPTION@, @IS_TERMINATION_EXCEPTION@ and @IS_RESUMPTION_EXCEPTION@.  Each @IS_EXCEPTION@, @IS_TERMINATION_EXCEPTION@ and @IS_RESUMPTION_EXCEPTION@. Each takes the virtual type's name, and for polymorphic types only, the parenthesized list of polymorphic arguments. These macros do the name mangling expression has a type with a @void defaultResumptionHandler(T &)@ (default handler) defined, where the handler is found at the call site by the type system.  At runtime, a representation of the exception type and an instance of system. At runtime, a representation of the exception type and an instance of the exception type is \emph{not} copied because the stack is maintained during the handler search. exception matches, @CONDITION@ is executed. The condition expression may reference all names in scope at the beginning of the try block and @NAME@ introduced in the handler clause.  If the condition is true, then the handler introduced in the handler clause. If the condition is true, then the handler matches. Otherwise, the exception search continues at the next appropriate kind of handler clause in the try block. the end of the block. This requirement ensures always continues as if the finally clause is not present, \ie finally is for cleanup not changing control flow.  Because of this requirement, local control flow out of the finally block is forbidden.  The compiler precludes any @break@, @continue@, @fallthru@ or flow. Because of this requirement, local control flow out of the finally block is forbidden. The compiler precludes any @break@, @continue@, @fallthru@ or @return@ that causes control to leave the finally block. Other ways to leave the finally block, such as a long jump or termination are much harder to check, There is no special statement for starting a cancellation; instead the standard library function @cancel_stack@ is called passing an exception.  Unlike a library function @cancel_stack@ is called passing an exception. Unlike a raise, this exception is not used in matching only to pass information about the cause of the cancellation. \item[Main Stack:] The main stack is the one used by the program main at the start of execution, and is the only stack in a sequential program.  Hence, when cancellation is and is the only stack in a sequential program. Hence, when cancellation is forwarded to the main stack, there is no other forwarding stack, so after the stack is unwound, there is a program-level abort. \item[Thread Stack:] A thread stack is created for a @thread@ object or object that satisfies the @is_thread@ trait.  A thread only has two points of communication that must @is_thread@ trait. A thread only has two points of communication that must happen: start and join. As the thread must be running to perform a cancellation, it must occur after start and before join, so join is a cancellation point.  After the stack is unwound, the thread halts and waits for cancellation point. After the stack is unwound, the thread halts and waits for another thread to join with it. The joining thread, checks for a cancellation, and if present, resumes exception @ThreadCancelled@. \item[Coroutine Stack:] A coroutine stack is created for a @coroutine@ object or object that satisfies the @is_coroutine@ trait.  A coroutine only knows of two other coroutines, its starter and its last resumer.  The last resumer has the tightest coupling to the coroutine it activated.  Hence, cancellation of or object that satisfies the @is_coroutine@ trait. A coroutine only knows of two other coroutines, its starter and its last resumer. The last resumer has the tightest coupling to the coroutine it activated. Hence, cancellation of the active coroutine is forwarded to the last resumer after the stack is unwound, as the last resumer has the most precise knowledge about the current
• ## doc/theses/andrew_beach_MMath/implement.tex

 r144fa5c @_URC_END_OF_STACK@. Second, when a handler is matched, raise exception continues onto the cleanup phase. Second, when a handler is matched, raise exception continues onto the cleanup phase. Once again, it calls the personality functions of each stack frame from newest to oldest. This pass stops at the stack frame containing the matching handler.
• ## doc/theses/andrew_beach_MMath/thesis-frontpgs.tex

 r144fa5c A thesis \\ presented to the University of Waterloo \\ presented to the University of Waterloo \\ in fulfillment of the \\ thesis requirement for the degree of \\ \cleardoublepage %---------------------------------------------------------------------- % EXAMINING COMMITTEE (Required for Ph.D. theses only) \begin{center}\textbf{Examining Committee Membership}\end{center} \noindent The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote. \bigskip \noindent \begin{tabbing} Internal-External Member: \=  \kill % using longest text to define tab length External Examiner: \>  Bruce Bruce \\ The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote. \bigskip \noindent \begin{tabbing} Internal-External Member: \=  \kill % using longest text to define tab length External Examiner: \>  Bruce Bruce \\ \> Professor, Dept. of Philosophy of Zoology, University of Wallamaloo \\ \end{tabbing} \bigskip \end{tabbing} \bigskip \noindent \begin{tabbing} \end{tabbing} \bigskip \noindent \begin{tabbing} \end{tabbing} \bigskip \noindent \begin{tabbing} \end{tabbing} \bigskip \noindent \begin{tabbing} % December 13th, 2006.  It is designed for an electronic thesis. \noindent I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. \bigskip I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. \bigskip \noindent I understand that my thesis may be made electronically available to the public.
• ## doc/theses/andrew_beach_MMath/thesis.tex

 r144fa5c % FRONT MATERIAL %---------------------------------------------------------------------- \input{thesis-frontpgs} \input{thesis-frontpgs} %---------------------------------------------------------------------- A \gls{computer} could compute $\pi$ all day long. In fact, subsets of digits of $\pi$'s decimal approximation would make a good source for psuedo-random vectors, \gls{rvec} . vectors, \gls{rvec} . %---------------------------------------------------------------------- \begin{itemize} \item A well-prepared PDF should be \item A well-prepared PDF should be \begin{enumerate} \item Of reasonable size, {\it i.e.} photos cropped and compressed. \item Scalable, to allow enlargment of text and drawings. \end{enumerate} \item Scalable, to allow enlargment of text and drawings. \end{enumerate} \item Photos must be bit maps, and so are not scaleable by definition. TIFF and BMP are uncompressed formats, while JPEG is compressed. Most photos can be compressed without losing their illustrative value. \item Drawings that you make should be scalable vector graphics, \emph{not} \item Drawings that you make should be scalable vector graphics, \emph{not} bit maps. Some scalable vector file formats are: EPS, SVG, PNG, WMF. These can all be converted into PNG or PDF, that pdflatex recognizes. Your drawing package probably can export to one of these formats directly. Otherwise, a common procedure is to print-to-file through a Postscript printer driver to create a PS file, then convert that to EPS (encapsulated PS, which has a bounding box to describe its exact size rather than a whole page). all be converted into PNG or PDF, that pdflatex recognizes. Your drawing package probably can export to one of these formats directly. Otherwise, a common procedure is to print-to-file through a Postscript printer driver to create a PS file, then convert that to EPS (encapsulated PS, which has a bounding box to describe its exact size rather than a whole page). Programs such as GSView (a Ghostscript GUI) can create both EPS and PDF from PS files. Appendix~\ref{AppendixA} shows how to generate properly sized Matlab plots and save them as PDF. \item It's important to crop your photos and draw your figures to the size that you want to appear in your thesis. Scaling photos with the includegraphics command will cause loss of resolution. And scaling down you want to appear in your thesis. Scaling photos with the includegraphics command will cause loss of resolution. And scaling down drawings may cause any text annotations to become too small. \end{itemize} For more information on \LaTeX\, see the uWaterloo Skills for the Academic Workplace \href{https://uwaterloo.ca/information-systems-technology/services/electronic-thesis-preparation-and-submission-support/ethesis-guide/creating-pdf-version-your-thesis/creating-pdf-files-using-latex/latex-ethesis-and-large-documents}{course notes}. Academic Workplace \href{https://uwaterloo.ca/information-systems-technology/services/electronic-thesis-preparation-and-submission-support/ethesis-guide/creating-pdf-version-your-thesis/creating-pdf-files-using-latex/latex-ethesis-and-large-documents}{course notes}. \footnote{ Note that while it is possible to include hyperlinks to external documents, it is not wise to do so, since anything you can't control may change over time. It \emph{would} be appropriate and necessary to provide external links to additional resources for a multimedia enhanced'' thesis. But also note that if the \package{hyperref} package is not included, as for the print-optimized option in this thesis template, any \cmmd{href} it is not wise to do so, since anything you can't control may change over time. It \emph{would} be appropriate and necessary to provide external links to additional resources for a multimedia enhanced'' thesis. But also note that if the \package{hyperref} package is not included, as for the print-optimized option in this thesis template, any \cmmd{href} commands in your logical document are no longer defined. A work-around employed by this thesis template is to define a dummy \cmmd{href} command (which does nothing) in the preamble of the document, before the \package{hyperref} package is included. \cmmd{href} command (which does nothing) in the preamble of the document, before the \package{hyperref} package is included. The dummy definition is then redifined by the \package{hyperref} package when it is included. The classic book by Leslie Lamport \cite{lamport.book}, author of \LaTeX , is worth a look too, and the many available add-on packages are described by worth a look too, and the many available add-on packages are described by Goossens \textit{et al} \cite{goossens.book}. Export Setup button in the figure Property Editor. \section{From the Command Line} \section{From the Command Line} All figure properties can also be manipulated from the command line. Here's an example: example: \begin{verbatim} x=[0:0.1:pi];
• ## doc/theses/andrew_beach_MMath/uw-ethesis-frontpgs.tex

 r144fa5c \normalsize A thesis \\ presented to the University of Waterloo \\ presented to the University of Waterloo \\ in fulfillment of the \\ thesis requirement for the degree of \\ \end{titlepage} % The rest of the front pages should contain no headers and be numbered using Roman numerals starting with ii' % The rest of the front pages should contain no headers and be numbered using % Roman numerals starting with ii'. \pagestyle{plain} \setcounter{page}{2} \cleardoublepage % Ends the current page and causes all figures and tables that have so far appeared in the input to be printed. % In a two-sided printing style, it also makes the next page a right-hand (odd-numbered) page, producing a blank page if necessary. \cleardoublepage % Ends the current page and causes all figures and tables % that have so far appeared in the input to be printed. In a two-sided % printing style, it also makes the next page a right-hand (odd-numbered) % page, producing a blank page if necessary. \begin{comment} \begin{comment} % E X A M I N I N G   C O M M I T T E E (Required for Ph.D. theses only) % Remove or comment out the lines below to remove this page \begin{center}\textbf{Examining Committee Membership}\end{center} \noindent The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote. The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote. \bigskip \noindent \begin{tabbing} Internal-External Member: \=  \kill % using longest text to define tab length External Examiner: \>  Bruce Bruce \\ External Examiner: \>  Bruce Bruce \\ \> Professor, Dept. of Philosophy of Zoology, University of Wallamaloo \\ \end{tabbing} \end{tabbing} \bigskip \noindent \begin{tabbing} \end{tabbing} \bigskip \noindent \begin{tabbing} \end{tabbing} \bigskip \noindent \begin{tabbing} \end{tabbing} \bigskip \noindent \begin{tabbing} % December 13th, 2006.  It is designed for an electronic thesis. \begin{center}\textbf{Author's Declaration}\end{center} \noindent I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. \bigskip \noindent I understand that my thesis may be made electronically available to the public.
• ## doc/theses/andrew_beach_MMath/uw-ethesis.tex

Note: See TracChangeset for help on using the changeset viewer.