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} |
---|