Ada Design Goals
Ada has three primary design goals. These goals are supported by a number of
languages features. Many of the features support more than one goal.
The goals, along with supporting features, follow.
- Supporting reliability and maintainability
- Strong typing
- Abstraction: Packages with separate specification and
implementation
- Parameter modes
- Function parameter mode restrictions
- Subtypes and new types
- Pointer rules:
- Automatic initialization of pointers to null
- Pointer type can't outlive a pointer declaration
- Comments
- Not case sensitive
- Minimize single keystroke errors (examples ...)
- Concern for programmer: Language is small and consistent
- Readable more important than writable
- Define before use
- Simple rules for operator precedence and associativity
- End if, end loop, end record, end procedure
- = and :=
- Operator overloading
- Keyword and default parameters
- And, and then, or, or else
- If, elsif, end if
- Array slices
- Case statement: when others required, break not required
- Efficiency (execution speed)
- Strong typing
- Value semantics
- OOP: polymorphism and class-wide types are not the default;
they must be explicitly chosen