Delta-C
How does Warp differ from C?
- Array arguments are not the same as pointer arguments. When an array is passed as an argument, its length is passed as well, not just its location.
- Strings are an abstract, immutable data type, and a rich set of operators (comparable to Perl) exists to process them. Strings may contain nulls, and multibyte (Unicode) characters.
- There is no main() function; every file (module?) may have executable code at the "top level", which runs when the file/module is first invoked.
- Associative arrays are provided as a fundamental data structure. Index types and value types are pre-declared. (An associative array with an integer index is thus a natural way of declaring a sparse array.)
- Data structures support single inheritance and polymorphism. They do not support encapsulation, dynamic binding, or multiple inheritance.
- As in C, integers have a truth value, but that value is set by the lowest-order bit; all even numbers are false, all odd numbers are true. Because the truth value of an integer is determined by the state of a single bit, there is no C-style distinction between logical and bitwise boolean operations.
