- Abstraction level: distance from assembly language features
- Compiler checking: type checks
- Compiler validation: formal testing of compiler vs test case
- Concurrency: semantic support for multi-threaded processing
- Determinism: guarantees of timing, ordering, no priority inv.
- Distribution: support for multi-computer platforms
- Encapsulation: ability to hide implementation detail from user
- Error handling: formal support for detecting & handling errors
|
- Inheritance: composition from previous types and operations
- Low-level operations: bit, byte, address & register operations
- Library consistency: compiler detection of obsolete code units
- Polymorphism: same operation on multiple entities, e.g., data types
- Readability: clarity of written code
- Real-time: type time, scheduling, priorities, synchronization
- Run-time checks: out-of-range, type compatibility checks at dispatch time
- Standardization: formal process of acceptance
|