Difference between revisions of "Conceptual C"

From Adobe Open Source Wiki
Jump to: navigation, search
 
(Goals)
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
 
== Goals ==
 
== Goals ==
 +
* Small (same scale as C) and basically C like
 +
* Match actual machine model, better (more modern) than C
 +
* "Higher level" features such as inheritance and RTTI come from libraries. As with C++ you shouldn't pay for what you don't use but we should do better than C++.
 +
* Exceptions may be the exception to the above rule.
 +
* Memory model which supports threading and thread primitives.
 +
* Thread primitives support the following models:
 +
** Pipes (thread safe Queue messaging system)
 +
** parallel algorithms (parallel reduce, for_each, etc. - see Intel Thread Building Blocks)
 +
** simple atomic increment/decrement for shared structures (ref counting for immutable objects and copy-on-write)
 +
* Full compile time introspection (runtime introspection as a library).
 +
* Support the C linkage model
 +
* "Semantic Spaces"
 +
* Library versioning (part of semantic spaces?)
 +
* Value semantics
 +
* Some level of concept support
 +
* Indexed types (Not quite sure how to build this)
 +
* Functions (with state) are first class
 +
* Simple EBNF based grammar
 +
 
== Non-Goals ==
 
== Non-Goals ==
 
== Grammar ==
 
== Grammar ==
 
== Reference ==
 
== Reference ==

Latest revision as of 00:18, 6 September 2007

Contents

Goals

  • Small (same scale as C) and basically C like
  • Match actual machine model, better (more modern) than C
  • "Higher level" features such as inheritance and RTTI come from libraries. As with C++ you shouldn't pay for what you don't use but we should do better than C++.
  • Exceptions may be the exception to the above rule.
  • Memory model which supports threading and thread primitives.
  • Thread primitives support the following models:
    • Pipes (thread safe Queue messaging system)
    • parallel algorithms (parallel reduce, for_each, etc. - see Intel Thread Building Blocks)
    • simple atomic increment/decrement for shared structures (ref counting for immutable objects and copy-on-write)
  • Full compile time introspection (runtime introspection as a library).
  • Support the C linkage model
  • "Semantic Spaces"
  • Library versioning (part of semantic spaces?)
  • Value semantics
  • Some level of concept support
  • Indexed types (Not quite sure how to build this)
  • Functions (with state) are first class
  • Simple EBNF based grammar

Non-Goals

Grammar

Reference