Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/papers/general/Paper.tex

    r48b9b36 r3d60c08  
    5353%\newcommand{\TODO}[1]{\textbf{TODO}: {\itshape #1}} % TODO included
    5454\newcommand{\TODO}[1]{} % TODO elided
    55 
    56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    5755
    5856% Default underscore is too low and wide. Cannot use lstlisting "literate" as replacing underscore
     
    165163literate={-}{\makebox[1ex][c]{\raisebox{0.4ex}{\rule{0.8ex}{0.1ex}}}}1 {^}{\raisebox{0.6ex}{$\scriptstyle\land\,$}}1
    166164        {~}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}}1 % {`}{\ttfamily\upshape\hspace*{-0.1ex}`}1
    167         {<}{\textrm{\textless}}1 {>}{\textrm{\textgreater}}1
    168         {<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2 {->}{\makebox[1ex][c]{\raisebox{0.5ex}{\rule{0.8ex}{0.075ex}}}\kern-0.2ex{\textrm{\textgreater}}}2,
     165        {<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2 {->}{\makebox[1ex][c]{\raisebox{0.4ex}{\rule{0.8ex}{0.075ex}}}\kern-0.2ex{\textgreater}}2,
    169166moredelim=**[is][\color{red}]{`}{`},
    170167}% lstset
     
    206203
    207204The goal of the \CFA project (pronounced ``C-for-all'') is to create an extension of C that provides modern safety and productivity features while still ensuring strong backwards compatibility with C and its programmers.
    208 Prior projects have attempted similar goals but failed to honour C programming-style;
    209 for instance, adding object-oriented or functional programming with garbage collection is a non-starter for many C developers.
     205Prior projects have attempted similar goals but failed to honour C programming-style; for instance, adding object-oriented or functional programming with garbage collection is a non-starter for many C developers.
    210206Specifically, \CFA is designed to have an orthogonal feature-set based closely on the C programming paradigm, so that \CFA features can be added \emph{incrementally} to existing C code-bases, and C programmers can learn \CFA extensions on an as-needed basis, preserving investment in existing code and programmers.
    211207This paper presents a quick tour of \CFA features showing how their design avoids shortcomings of similar features in C and other C-like languages.
     
    223219
    224220\section{Introduction}
    225 
    226221The C programming language is a foundational technology for modern computing with millions of lines of code implementing everything from commercial operating-systems to hobby projects.
    227222This installation base and the programmers producing it represent a massive software-engineering investment spanning decades and likely to continue for decades more.
     
    20052000Destruction parameters are useful for specifying storage-management actions, such as de-initialize but not deallocate.}.
    20062001\begin{cfa}
    2007 struct VLA { int len, * data; };                        $\C{// variable length array of integers}$
     2002struct VLA { int len, * data; };
    20082003void ?{}( VLA & vla ) with ( vla ) { len = 10;  data = alloc( len ); }  $\C{// default constructor}$
    20092004void ^?{}( VLA & vla ) with ( vla ) { free( data ); } $\C{// destructor}$
Note: See TracChangeset for help on using the changeset viewer.