Changeset 19b2133


Ignore:
Timestamp:
Apr 16, 2017, 9:14:41 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
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:
02d241f
Parents:
10e0fcd
Message:

fix citations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/generic_types/generic_types.tex

    r10e0fcd r19b2133  
    10601060While 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.
    10611061
    1062 \citep{obj-c-book} is an industrially successful extension to C.
     1062\citet{obj-c-book} is an industrially successful extension to C.
    10631063However, Objective-C is a radical departure from C, using an object-oriented model with message-passing.
    1064 Objective-C did not support type-checked generics until recently~\citep{xcode7}, historically using less-efficient and more error-prone runtime checking of object types.
    1065 The~\citep{GObject} framework also adds object-oriented programming with runtime type-checking and reference-counting garbage-collection to C;
     1064Objective-C did not support type-checked generics until recently~\citet{xcode7}, historically using less-efficient and more error-prone runtime checking of object types.
     1065The~\citet{GObject} framework also adds object-oriented programming with runtime type-checking and reference-counting garbage-collection to C;
    10661066these features are more intrusive additions than those provided by \CFA, in addition to the runtime overhead of reference-counting.
    1067 \citep{Vala} compiles to GObject-based C, and so adds the burden of learning a separate language syntax to the aforementioned demerits of GObject as a modernization path for the existing C code-bases.
     1067\citet{Vala} compiles to GObject-based C, and so adds the burden of learning a separate language syntax to the aforementioned demerits of GObject as a modernization path for the existing C code-bases.
    10681068Java~\citep{Java8} included generic types in Java~5;
    10691069Java's generic types are type-checked at compilation and type-erased at runtime, similar to \CFA's.
     
    10711071Java is also a garbage-collected, object-oriented language, with the associated resource usage and C-interoperability burdens.
    10721072
    1073 D~\citep{D}, Go~\citep{Go}, and~\citep{Rust} are modern, compiled languages with abstraction features similar to \CFA traits, \emph{interfaces} in D and Go and \emph{traits} in Rust.
     1073D~\citep{D}, Go, and~\citet{Rust} are modern, compiled languages with abstraction features similar to \CFA traits, \emph{interfaces} in D and Go and \emph{traits} in Rust.
    10741074However, each language represents a significant departure from C in terms of language model, and none has the same level of compatibility with C as \CFA.
    10751075D and Go are garbage-collected languages, imposing the associated runtime overhead.
Note: See TracChangeset for help on using the changeset viewer.