Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/colby_parsons_MMAth/text/CFA_intro.tex

    raae9c17 r9509d67a  
    99\CFA is a layer over C, is transpiled\footnote{Source to source translator.} to C, and is largely considered to be an extension of C.
    1010Beyond C, it adds productivity features, extended libraries, an advanced type-system, and many control-flow/concurrency constructions.
    11 However, \CFA stays true to the C programming style, with most code revolving around @struct@'s and routines, and respects the same rules as C.
     11However, \CFA stays true to the C programming style, with most code revolving around @struct@s and routines, and respects the same rules as C.
    1212\CFA is not object oriented as it has no notion of @this@ (receiver) and no structures with methods, but supports some object oriented ideas including constructors, destructors, and limited nominal inheritance.
    1313While \CFA is rich with interesting features, only the subset pertinent to this work is discussed here.
     
    1717References in \CFA are a layer of syntactic sugar over pointers to reduce the number of syntactic ref/deref operations needed with pointer usage.
    1818Pointers in \CFA differ from C and \CC in their use of @0p@ instead of C's @NULL@ or \CC's @nullptr@.
     19References can contain 0p in \CFA, which is the equivalent of a null reference.
    1920Examples of references are shown in \VRef[Listing]{l:cfa_ref}.
    2021
     
    6465This feature is also implemented in Pascal~\cite{Pascal}.
    6566It can exist as a stand-alone statement or wrap a routine body to expose aggregate fields.
     67If exposed fields share a name, the type system will attempt to disambiguate them based on type.
     68If the type system is unable to disambiguate the fields then the user must qualify those names to avoid a compilation error.
    6669Examples of the @with@ statement are shown in \VRef[Listing]{l:cfa_with}.
    6770
Note: See TracChangeset for help on using the changeset viewer.