Changeset 2260ab6c
- Timestamp:
- Jul 9, 2018, 6:30:49 PM (6 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
- Children:
- a74503ff
- Parents:
- 0fd0c16
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/papers/general/Paper.tex
r0fd0c16 r2260ab6c 226 226 The C programming language is a foundational technology for modern computing with millions of lines of code implementing everything from hobby projects to commercial operating-systems. 227 227 This installation base and the programmers producing it represent a massive software-engineering investment spanning decades and likely to continue for decades more. 228 The TIOBE ~\cite{TIOBE} ranks the top 5 most \emph{popular} programming languages as: Java 15\%, \Textbf{C 12\%}, \Textbf{\CC 5.5\%}, Python 5\%, \Csharp 4.5\% = 42\%, where the next 50 languages are less than 4\% eachwith a long tail.228 The TIOBE index~\cite{TIOBE} ranks the top 5 most \emph{popular} programming languages as: Java 15\%, \Textbf{C 12\%}, \Textbf{\CC 5.5\%}, Python 5\%, \Csharp 4.5\% = 42\%, where the next 50 languages are less than 4\% each, with a long tail. 229 229 The top 3 rankings over the past 30 years are: 230 230 \begin{center} … … 250 250 (4) Extensions introduced by \CFA must be translated in the most efficient way possible. 251 251 These goals ensure existing C code-bases can be converted to \CFA incrementally with minimal effort, and C programmers can productively generate \CFA code without training beyond the features being used. 252 \CC is used similarly, but has the disadvantages of multiple legacy design-choices that cannot be updated and active divergence of the language model from C, requiring significant effort and training to incrementally add \CC to a C-based project.252 \CC is used similarly, but has the disadvantages of multiple legacy design-choices that cannot be updated, and active divergence of the language model from C, requiring significant effort and training to incrementally add \CC to a C-based project. 253 253 254 254 All languages features discussed in this paper are working, except some advanced exception-handling features. … … 1096 1096 1097 1097 1098 \subsection{\texorpdfstring{\protect\lstinline {if}Statement}{if Statement}}1098 \subsection{\texorpdfstring{\protect\lstinline@if@ Statement}{if Statement}} 1099 1099 1100 1100 The @if@ expression allows declarations, similar to @for@ declaration expression: … … 1108 1108 1109 1109 1110 \subsection{\texorpdfstring{\protect\lstinline {switch}Statement}{switch Statement}}1110 \subsection{\texorpdfstring{\protect\lstinline@switch@ Statement}{switch Statement}} 1111 1111 1112 1112 There are a number of deficiencies with the C @switch@ statements: enumerating @case@ lists, placement of @case@ clauses, scope of the switch body, and fall through between case clauses. … … 1263 1263 1264 1264 1265 \subsection{\texorpdfstring{Labelled \protect\lstinline {continue} / \protect\lstinline{break}}{Labelled continue / break}}1265 \subsection{\texorpdfstring{Labelled \protect\lstinline@continue@ / \protect\lstinline@break@}{Labelled continue / break}} 1266 1266 1267 1267 While C provides @continue@ and @break@ statements for altering control flow, both are restricted to one level of nesting for a particular control structure.
Note: See TracChangeset
for help on using the changeset viewer.