Changeset 1e110bf
- Timestamp:
- Jul 8, 2024, 9:00:23 AM (3 months ago)
- Branches:
- master
- Children:
- 5a553e2
- Parents:
- f06ba98
- Location:
- doc/theses/mike_brooks_MMath
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/mike_brooks_MMath/background.tex
rf06ba98 r1e110bf 67 67 68 68 69 \section{Reading Declarations}69 \section{Reading declarations} 70 70 71 71 A significant area of confusion for reading C declarations results from embedding a declared variable in a declaration, mimicking the way the variable is used in executable statements. … … 316 316 317 317 318 \subsection{Multi- Dimensional}318 \subsection{Multi-dimensional} 319 319 320 320 As in the last section, multi-dimensional array declarations are examined. … … 414 414 415 415 416 \subsection{Design Issues}416 \subsection{Design issues} 417 417 \label{toc:lst:issue} 418 418 … … 432 432 433 433 434 \subsection{Preexisting Linked-List Libraries}434 \subsection{Preexisting linked-list libraries} 435 435 436 436 Two preexisting linked-list libraries are used throughout, to show examples of the concepts being defined, … … 445 445 446 446 447 \subsection{Link attachment: Intrusive vs.\ Wrapped}447 \subsection{Link attachment: intrusive vs.\ wrapped} 448 448 \label{toc:lst:issue:attach} 449 449 … … 604 604 605 605 606 \subsection{Simultaneity: Single vs.\ Multi-Static vs.\ Dynamic}606 \subsection{Simultaneity: single vs.\ multi-static vs.\ dynamic} 607 607 \label{toc:lst:issue:simultaneity} 608 608 … … 729 729 730 730 731 \subsection{User integration: Preprocessed vs.\ Type-System Mediated}731 \subsection{User integration: preprocessed vs.\ type-system mediated} 732 732 733 733 % example of poor error message due to LQ's preprocessed integration … … 739 739 740 740 741 \subsection{List identity: Headed vs.\ Ad-hoc}741 \subsection{List identity: headed vs.\ ad-hoc} 742 742 \label{toc:lst:issue:ident} 743 743 … … 788 788 789 789 790 \subsection{End treatment: Cased vs.\ Uniform }790 \subsection{End treatment: cased vs.\ uniform } 791 791 792 792 This issue is implementation-level, relevant to achieving high performance. -
doc/theses/mike_brooks_MMath/conclusion.tex
rf06ba98 r1e110bf 7 7 \section{Strings} 8 8 9 \section{Future Work}9 \section{Future work} -
doc/theses/mike_brooks_MMath/intro.tex
rf06ba98 r1e110bf 16 16 17 17 18 \section{Linked List}18 \section{Linked list} 19 19 20 20 A linked-list provides a homogeneous container often with $O(log N)$/$O(N)$ access to elements using successor and predecessor operations. … … 59 59 60 60 61 \subsection{Ill- Typed Expressions}61 \subsection{Ill-typed expressions} 62 62 63 63 C reports many ill-typed expressions as warnings. … … 95 95 \section{Contributions} 96 96 97 \subsection{Linked List}97 \subsection{Linked list} 98 98 99 99 \subsection{Array} -
doc/theses/mike_brooks_MMath/string.tex
rf06ba98 r1e110bf 3 3 \section{String} 4 4 5 \subsection{Logical Overlap}5 \subsection{Logical overlap} 6 6 7 7 \input{sharing-demo.tex} … … 38 38 39 39 40 \subsection{Memory Management}40 \subsection{Memory management} 41 41 42 42 A centrepriece of the string module is its memory manager. The managment scheme defines a large shared buffer for strings' text. Allocation in this buffer is always bump-pointer; the buffer is compacted and/or relocated with growth when it fills. A string is a smart pointer into this buffer. … … 80 80 81 81 82 \subsection{Avoiding Implicit Sharing}82 \subsection{Avoiding implicit sharing} 83 83 84 84 There are tradeoffs associated with the copy-on-write mechanism. Several quatitative matters are detailed in the [xref: Performance Assessment] section and the qualitiative issue of multi-threaded support is introduced here. The \CFA sting library provides a switch to disable the sharing mechanism for situtations where it is inappropriate. … … 98 98 99 99 100 \subsection{Future Work}100 \subsection{Future work} 101 101 102 102 To discuss: Unicode … … 105 105 106 106 107 \subsection{Performance Assessment}107 \subsection{Performance assessment} 108 108 109 109 I assessed the CFA string library's speed and memory usage. I present these results ineven quivalent cases, due to either micro-optimizations foregone, or fundamental costs of the added functionality. They also show the benefits and tradeoffs, as >100\% effects, of switching to CFA, with the tradeoff points quantified. The final test shows the overall win of the CFA text-sharing mechanism. It exercises several operations together, showing CFA enabling clean user code to achieve performance that STL requires less-clean user code to achieve.
Note: See TracChangeset
for help on using the changeset viewer.