Changes in doc/papers/general/Paper.tex [48b9b36:3d60c08]
- File:
-
- 1 edited
-
doc/papers/general/Paper.tex (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
doc/papers/general/Paper.tex
r48b9b36 r3d60c08 53 53 %\newcommand{\TODO}[1]{\textbf{TODO}: {\itshape #1}} % TODO included 54 54 \newcommand{\TODO}[1]{} % TODO elided 55 56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%57 55 58 56 % Default underscore is too low and wide. Cannot use lstlisting "literate" as replacing underscore … … 165 163 literate={-}{\makebox[1ex][c]{\raisebox{0.4ex}{\rule{0.8ex}{0.1ex}}}}1 {^}{\raisebox{0.6ex}{$\scriptstyle\land\,$}}1 166 164 {~}{\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, 169 166 moredelim=**[is][\color{red}]{`}{`}, 170 167 }% lstset … … 206 203 207 204 The 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. 205 Prior 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. 210 206 Specifically, \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. 211 207 This paper presents a quick tour of \CFA features showing how their design avoids shortcomings of similar features in C and other C-like languages. … … 223 219 224 220 \section{Introduction} 225 226 221 The 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. 227 222 This installation base and the programmers producing it represent a massive software-engineering investment spanning decades and likely to continue for decades more. … … 2005 2000 Destruction parameters are useful for specifying storage-management actions, such as de-initialize but not deallocate.}. 2006 2001 \begin{cfa} 2007 struct VLA { int len, * data; }; $\C{// variable length array of integers}$2002 struct VLA { int len, * data; }; 2008 2003 void ?{}( VLA & vla ) with ( vla ) { len = 10; data = alloc( len ); } $\C{// default constructor}$ 2009 2004 void ^?{}( VLA & vla ) with ( vla ) { free( data ); } $\C{// destructor}$
Note:
See TracChangeset
for help on using the changeset viewer.