Changeset 036895e
- Timestamp:
- Apr 17, 2017, 10:39:55 PM (8 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, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 0a84919
- Parents:
- 2ca35b1
- Location:
- doc
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/bibliography/cfa.bib
r2ca35b1 r036895e 3650 3650 contributer = {pabuhr@plg}, 3651 3651 author = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha and Alex Buckley}, 3652 title = {{Java} Language Spec ification},3652 title = {{Java} Language Spec.}, 3653 3653 organization= {Oracle}, 3654 3654 publisher = {Oracle}, -
doc/generic_types/evaluation/timing.gp
r2ca35b1 r036895e 1 1 # set terminal pdfcairo linewidth 3 size 6,3 2 2 # set output "timing.pdf" 3 set terminal pslatex size 6.25,2. 25 color solid3 set terminal pslatex size 6.25,2.125 color solid 4 4 set output "timing.tex" 5 5 -
doc/generic_types/generic_types.tex
r2ca35b1 r036895e 1023 1023 \section{Related Work} 1024 1024 1025 % \subsection{Polymorphism} 1025 1026 \subsection{Polymorphism} 1026 1027 1027 1028 \CC is the most similar language to \CFA; … … 1041 1042 In \CFA terms, all Cyclone polymorphism must be dtype-static. 1042 1043 While the Cyclone design provides the efficiency benefits discussed in Section~\ref{sec:generic-apps} for dtype-static polymorphism, it is more restrictive than \CFA's general model. 1043 \citet{Smith98} present Polymorphic C, an ML dialect with polymorphic functions and C-like syntax and pointer types; it lacks many of C's features, however, most notably struct types, and so is not a practical C replacement.1044 \citet{Smith98} present Polymorphic C, an ML dialect with polymorphic functions and C-like syntax and pointer types; it lacks many of C's features, however, most notably structure types, and so is not a practical C replacement. 1044 1045 1045 1046 \citet{obj-c-book} is an industrially successful extension to C. 1046 1047 However, Objective-C is a radical departure from C, using an object-oriented model with message-passing. 1047 Objective-C did not support type-checked generics until recently \cite p{xcode7}, historically using less-efficient runtime checking of object types.1048 Objective-C did not support type-checked generics until recently \citet{xcode7}, historically using less-efficient runtime checking of object types. 1048 1049 The~\citet{GObject} framework also adds object-oriented programming with runtime type-checking and reference-counting garbage-collection to C; 1049 1050 these features are more intrusive additions than those provided by \CFA, in addition to the runtime overhead of reference-counting. 1050 1051 \citet{Vala} compiles to GObject-based C, adding the burden of learning a separate language syntax to the aforementioned demerits of GObject as a modernization path for existing C code-bases. 1051 Java~\citep{Java8} included generic types in Java~5 which are type-checked at compilation and type-erased at runtime, similar to \CFA's.1052 Java~\citep{Java8} included generic types in Java~5, which are type-checked at compilation and type-erased at runtime, similar to \CFA's. 1052 1053 However, in Java, each object carries its own table of method pointers, while \CFA passes the method pointers separately to maintain a C-compatible layout. 1053 1054 Java is also a garbage-collected, object-oriented language, with the associated resource usage and C-interoperability burdens. … … 1063 1064 \CFA, with its more modest safety features, allows direct ports of C code while maintaining the idiomatic style of the original source. 1064 1065 1065 % \subsection{Tuples/Variadics} 1066 1067 \subsection{Tuples/Variadics} 1066 1068 1067 1069 Many programming languages have some form of tuple construct and/or variadic functions, \eg SETL, C, KW-C, \CC, D, Go, Java, ML, and Scala.
Note: See TracChangeset
for help on using the changeset viewer.