Changeset 514247d


Ignore:
Timestamp:
Aug 28, 2018, 9:44:09 PM (6 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
0cf9ffd, 546b51e, 933933c
Parents:
ce00317
Message:

Add motivation of C to thesis introduction

Location:
doc/theses/aaron_moss/phd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/aaron_moss/phd/.gitignore

    rce00317 r514247d  
     1templates/
    12thesis.pdf
    23thesis.aux
     
    67thesis.out
    78thesis.toc
    8 templates/
     9thesis.lot
  • doc/theses/aaron_moss/phd/aaron-thesis.bib

    rce00317 r514247d  
    8888    note        = {\href{https://uwspace.uwaterloo.ca/handle/10012/11830}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-11830}},
    8989}
     90
     91@misc{TIOBE,
     92    contributer = {pabuhr@plg},
     93    key         = {TIOBE Index},
     94    title       = {{TIOBE} Index},
     95    howpublished= {\href{http://www.tiobe.com/tiobe_index}{http://\-www.tiobe.com/\-tiobe\_index}},
     96    optnote     = {Accessed: 2018-08},
     97}
  • doc/theses/aaron_moss/phd/frontpgs.tex

    rce00317 r514247d  
    153153% L I S T   O F   T A B L E S
    154154% ---------------------------
    155 % \addcontentsline{toc}{chapter}{List of Tables}
    156 % \listoftables
    157 % \cleardoublepage
    158 % \phantomsection               % allows hyperref to link to the correct page
     155\addcontentsline{toc}{chapter}{List of Tables}
     156\listoftables
     157\cleardoublepage
     158\phantomsection         % allows hyperref to link to the correct page
    159159
    160160% L I S T   O F   F I G U R E S
  • doc/theses/aaron_moss/phd/introduction.tex

    rce00317 r514247d  
    11\chapter{Introduction}
    22
    3 \CFA{}\footnote{Pronounced ``C-for-all'', and written \CFA{} or \CFL{}.} is an evolutionary modernization of the C programming language.
     3The C programming language has had a wide-ranging impact on the design of software and programming languages.
     4In the 30 years since its first standardization, it has consistently been one of the most popular programming languages, with millions of lines of C code still in active use, and tens of thousands of trained programmers producing it. The TIOBE index\cite{TIOBE} tracks popularity of programming languages over time, and C has never dropped below second place:
     5
     6\begin{table}
     7\label{tiobe-table}
     8\caption[TIOBE index over time]{Current top 5 places in the TIOBE index averaged over years}
     9
     10\centering
     11\begin{tabular}{@{}cccccccc@{}}
     12        & 2018  & 2013  & 2008  & 2003  & 1998  & 1993  & 1988  \\
     13Java            & 1             & 2             & 1             & 1             & 18    & --    & --    \\
     14\textbf{C}      & \textbf{2} & \textbf{1} & \textbf{2} & \textbf{2} & \textbf{1} & \textbf{1} & \textbf{1} \\
     15\CC{}           & 3             & 4             & 3             & 3             & 2             & 2             & 5             \\
     16Python          & 4             & 7             & 6             & 11    & 22    & 17    & --    \\
     17\Csharp{}       & 5             & 5             & 7             & 8             & --    & --    & --    \\
     18\end{tabular}
     19\end{table}
     20
     21The impact of C on programming language design is also obvious from Table~\ref{tiobe-table}; with the exception of Python, all of the top five languages use C-like syntax and procedural control structures.
     22\CC is even a largely backwards-compatible extension of C, with development dating back nearly as far as C itself.
     23Though its lasting popularity and wide impact on programming language design point to the continued relevance of C, they also highlight the widespread desire of programmers for languages with more expressive power and programmer-friendly features; accommodating both low-impact maintenance of legacy C code and low-effort development of the software of the future is a difficult task for a single programming language.
     24
     25\CFA{}\footnote{Pronounced ``C-for-all'', and written \CFA{} or \CFL{}.} is an evolutionary modernization of the C programming language which aims to fulfill both these ends well.
    426\CFA{} both fixes existing design problems and adds multiple new features to C, including name overloading, user-defined operators, parametric-polymorphic routines, and type constructors and destructors, among others.
    5 The new features make \CFA{} more powerful and expressive than C, but impose a compile-time cost, particularly in the expression resolver, which must evaluate the typing rules of a significantly more complex type-system.
     27The new features make \CFA{} more powerful and expressive than C, while maintaining strong backward-compatibility with both C code and the procedural paradigm expected by C programmers.
     28However, these new features do impose a compile-time cost, particularly in the expression resolver, which must evaluate the typing rules of a significantly more complex type-system.
    629
    730This thesis is focused on making \CFA{} a more powerful and expressive language, both by adding new features to the \CFA{} type system and ensuring that both added and existing features can be efficiently implemented in \CFACC{}, the \CFA{} reference compiler.
  • doc/theses/aaron_moss/phd/macros.tex

    rce00317 r514247d  
    1212\newcommand{\CCseventeen}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}17} % C++17 symbolic name
    1313\newcommand{\CCtwenty}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}20} % C++20 symbolic name
     14\newcommand{\Csharp}{C\raisebox{-0.7ex}{\Large$^\sharp$}} % C# symbolic name
    1415
    1516\newcommand{\ie}{\textit{i.e.}}
     
    1718\newcommand{\etc}{\textit{etc.}}
    1819\newcommand{\etal}{\textit{et~al.}}
     20
     21\newcommand{\TODO}[1]{\textbf{TODO:} \textit{#1}}
Note: See TracChangeset for help on using the changeset viewer.