Cyclone (programming Language) - Language Features

Language Features

Cyclone attempts to avoid some of the common pitfalls of C, while still maintaining its look and performance. To this end, Cyclone places the following limits on programs:

  • NULL checks are inserted to prevent segmentation faults
  • Pointer arithmetic is limited
  • Pointers must be initialized before use (this is enforced by definite assignment analysis)
  • Dangling pointers are prevented through region analysis and limits on free
  • Only "safe" casts and unions are allowed
  • goto into scopes is disallowed
  • switch labels in different scopes are disallowed
  • Pointer-returning functions must execute return
  • setjmp and longjmp are not supported

To maintain the tool set that C programmers are used to, Cyclone provides the following extensions:

  • Never-NULL pointers do not require NULL checks
  • "Fat" pointers support pointer arithmetic with run-time bounds checking
  • Growable regions support a form of safe manual memory management
  • Garbage collection for heap-allocated values
  • Tagged unions support type-varying arguments
  • Injections help automate the use of tagged unions for programmers
  • Polymorphism replaces some uses of void *
  • varargs are implemented as fat pointers
  • Exceptions replace some uses of setjmp and longjmp

For a better high-level introduction to Cyclone, the reasoning behind Cyclone and the source of these lists, see this paper.

Cyclone looks, in general, much like C, but it should be viewed as a C-like language.

Read more about this topic:  Cyclone (programming Language)

Famous quotes containing the words language and/or features:

    Poetry is the universal language which the heart holds with nature and itself. He who has a contempt for poetry, cannot have much respect for himself, or for anything else.
    William Hazlitt (1778–1830)

    “It looks as if
    Some pallid thing had squashed its features flat
    And its eyes shut with overeagerness
    To see what people found so interesting
    In one another, and had gone to sleep
    Of its own stupid lack of understanding,
    Or broken its white neck of mushroom stuff
    Short off, and died against the windowpane.”
    Robert Frost (1874–1963)