Changeset 036895e


Ignore:
Timestamp:
Apr 17, 2017, 10:39:55 PM (4 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
0a84919
Parents:
2ca35b1
Message:

last changes

Location:
doc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • doc/bibliography/cfa.bib

    r2ca35b1 r036895e  
    36503650    contributer = {pabuhr@plg},
    36513651    author      = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha and Alex Buckley},
    3652     title       = {{Java} Language Specification},
     3652    title       = {{Java} Language Spec.},
    36533653    organization= {Oracle},
    36543654    publisher   = {Oracle},
  • doc/generic_types/evaluation/timing.gp

    r2ca35b1 r036895e  
    11# set terminal pdfcairo linewidth 3 size 6,3
    22# set output "timing.pdf"
    3 set terminal pslatex size 6.25,2.25 color solid
     3set terminal pslatex size 6.25,2.125 color solid
    44set output "timing.tex"
    55
  • doc/generic_types/generic_types.tex

    r2ca35b1 r036895e  
    10231023\section{Related Work}
    10241024
    1025 % \subsection{Polymorphism}
     1025
     1026\subsection{Polymorphism}
    10261027
    10271028\CC is the most similar language to \CFA;
     
    10411042In \CFA terms, all Cyclone polymorphism must be dtype-static.
    10421043While 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.
    10441045
    10451046\citet{obj-c-book} is an industrially successful extension to C.
    10461047However, 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 \citep{xcode7}, historically using less-efficient runtime checking of object types.
     1048Objective-C did not support type-checked generics until recently \citet{xcode7}, historically using less-efficient runtime checking of object types.
    10481049The~\citet{GObject} framework also adds object-oriented programming with runtime type-checking and reference-counting garbage-collection to C;
    10491050these features are more intrusive additions than those provided by \CFA, in addition to the runtime overhead of reference-counting.
    10501051\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.
     1052Java~\citep{Java8} included generic types in Java~5, which are type-checked at compilation and type-erased at runtime, similar to \CFA's.
    10521053However, in Java, each object carries its own table of method pointers, while \CFA passes the method pointers separately to maintain a C-compatible layout.
    10531054Java is also a garbage-collected, object-oriented language, with the associated resource usage and C-interoperability burdens.
     
    10631064\CFA, with its more modest safety features, allows direct ports of C code while maintaining the idiomatic style of the original source.
    10641065
    1065 % \subsection{Tuples/Variadics}
     1066
     1067\subsection{Tuples/Variadics}
    10661068
    10671069Many 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.