|
ParaSail is designed to be easily understandable and usable by programmers familiar with languages like Java, C#, Modula-3, Eiffel, etc., while providing implicit parallelism and full compile-time checking of all user-written annotations as well as all language rules (such as no use of uninitialized or null data, numeric overflow, array out-of-bounds, race conditions, etc). ParaSail is also designed to be simpler than many current languages in its basic module/type/object model. As part of that it eliminates re-assignable pointers, explicit storage allocation, explicit storage reclamation, garbage collection (it uses region-based storage management), run-time checking (it does it all at compile time), and run-time exceptions. Finally, there is no special syntax reserved for built-in types -- any appropriate type can support indexing (e.g. A[I]), slicing (e.g. A[1..5]), operators (+, -, <, >, +=, *=, ...), literals (e.g. X += 25), intervals (X..Y), aggregates (Map |= ["key1" => Value1, "key2" => Value2]), iterators (for each [Key=>Value] of Map concurrent loop ...), etc. |