C∀ is a language design extending ISO C. The purpose of the project is to engineer modern language features into C in an evolutionary rather than revolutionary way. Java is an example of the revolutionary approach of modernizing C/C++, resulting in a new language rather than an extension of its descendents. C++, Fortran 95 and Cobol 9X are examples of the evolutionary approach where modern language features are added and problems fixed within the framework of an existing language.
The goal of this project is to produce a largely backwards compatible version of C containing many modern language features and fixing some of the well known C problems. Without continued development of the language, C will be unable to cope with the needs of modern programming problems and programmers; as a result, it will fade into disuse. Considering the large body of existing C code and programmers, there is a significant impetus to ensure C is transformed into a modern programming language.
This project differs from C++ in 2 ways:
charand making the type of an enumerator the type of its enumeration.) C∀ fixes several existing design problems in C.
Warning: The issues sections document thoughts about ongoing research. It records working ideas and does not necessarily represent a set of complete, well-formed ideas. It also represents the opinions of each member of the Cforall group, not the group as a whole.