[a53e10a] | 1 | \documentclass[format=acmlarge, anonymous, review]{acmart} |
---|
| 2 | |
---|
| 3 | \citestyle{acmauthoryear} |
---|
| 4 | |
---|
| 5 | \newcommand{\CFA}{C$\mathbf\forall$} |
---|
| 6 | \newcommand{\TODO}{\textbf{TODO}} |
---|
| 7 | |
---|
| 8 | \acmJournal{PACMPL} |
---|
| 9 | |
---|
| 10 | \title{Generic Types with Efficient Dynamic Layout in \CFA{}} |
---|
| 11 | |
---|
| 12 | \author{Aaron Moss} |
---|
| 13 | \affiliation{% |
---|
| 14 | \institution{University of Waterloo} |
---|
| 15 | \department{David R. Cheriton School of Computer Science} |
---|
| 16 | \streetaddress{Davis Centre, University of Waterloo} |
---|
| 17 | \city{Waterloo} |
---|
| 18 | \state{ON} |
---|
| 19 | \postcode{N2L 3G1} |
---|
| 20 | \country{Canada} |
---|
| 21 | } |
---|
| 22 | \email{a3moss@uwaterloo.ca} |
---|
| 23 | |
---|
| 24 | \terms{generic, types} |
---|
| 25 | \keywords{generic types, polymorphic functions, Cforall} |
---|
| 26 | |
---|
| 27 | \begin{CCSXML} |
---|
| 28 | <ccs2012> |
---|
| 29 | <concept> |
---|
| 30 | <concept_id>10011007.10011006.10011008.10011024.10011025</concept_id> |
---|
| 31 | <concept_desc>Software and its engineering~Polymorphism</concept_desc> |
---|
| 32 | <concept_significance>500</concept_significance> |
---|
| 33 | </concept> |
---|
| 34 | <concept> |
---|
| 35 | <concept_id>10011007.10011006.10011008.10011024.10011028</concept_id> |
---|
| 36 | <concept_desc>Software and its engineering~Data types and structures</concept_desc> |
---|
| 37 | <concept_significance>500</concept_significance> |
---|
| 38 | </concept> |
---|
| 39 | <concept> |
---|
| 40 | <concept_id>10011007.10011006.10011041.10011047</concept_id> |
---|
| 41 | <concept_desc>Software and its engineering~Source code generation</concept_desc> |
---|
| 42 | <concept_significance>300</concept_significance> |
---|
| 43 | </concept> |
---|
| 44 | </ccs2012> |
---|
| 45 | \end{CCSXML} |
---|
| 46 | |
---|
| 47 | \ccsdesc[500]{Software and its engineering~Polymorphism} |
---|
| 48 | \ccsdesc[500]{Software and its engineering~Data types and structures} |
---|
| 49 | \ccsdesc[300]{Software and its engineering~Source code generation} |
---|
| 50 | |
---|
| 51 | % \abstract{Abstract goes here.} |
---|
| 52 | \begin{abstract} |
---|
| 53 | \TODO{} Write abstract. |
---|
| 54 | \end{abstract} |
---|
| 55 | |
---|
| 56 | \begin{document} |
---|
| 57 | |
---|
| 58 | \maketitle |
---|
| 59 | |
---|
| 60 | \section{Introduction \& Background} |
---|
| 61 | \CFA{}\footnote{Pronounced ``C-for-all'', and written \CFA{} or Cforall.} is an evolutionary modernization of the C programming language which aims to add modern language features to C while maintaining both source compatibility with C and a familiar mental model for programmers. This paper describes how generic types are designed and implemented in \CFA{}, and how they interact with \CFA{}'s polymorphic functions. |
---|
| 62 | |
---|
| 63 | \CFA{}'s polymorphism was originally formalized by \citet{Ditchfield92}, and first implemented by \citet{Bilson03}. |
---|
| 64 | |
---|
| 65 | \bibliographystyle{ACM-Reference-Format} |
---|
| 66 | \bibliography{generic_types} |
---|
| 67 | |
---|
| 68 | \end{document} |
---|