0. Introduction 👩🏻🏫 - JulTob/Ada GitHub Wiki
🧙🏻♀️ Ada is a programming language.
👩🏻💻 Ada is named after Augusta Ada Byron (often now known as Ada Lovelace), the first programmer in History, and daughter of the poet Lord Byron. As such, is not an acronym, and only the first letter is capitalized.
👩🏻
-
Reliable
- Built-in exception handling.
- Most errors are detected at compile-time and of those remaining many are detected by runtime constraints.
- Run-time checking
-
Scalable
- Designed for the development of very large software systems
-
Statically typed
-
Strongly typed
-
Wide-spectrum level low and abstract levels
- Comprehensive as a high-level language
- Direct low-level control.
- Abstractable through the package and private type
-
Multi-paradigm
- Structured.
- Procedural
- Imperative.
- Object-oriented.
- Modular.
- Contracts.
- Functional
- Agile
-
Modern
- The Compiler and tools keep up with the latest technologies.
-
Extended from Pascal and many other languages.
- ALGOL-like
-
Stable
- Standardized
- Portable
-
Particularly strong in areas such as
-
The very large.
- The development of very large programs by multiple, loosely connected teams.
- Features to help manage a large number of program components, and to help ensure those components are used consistently.
-
Real-time applications
-
Low-level hardware access
-
Critical programs.
- High Integrity.
- Safety-critical software
- Correctness, robustness, security, and reliability are priorities.
- Simplifies maintenance.
- Has an emphasis on program readability over ease of writing.
- The language has features designed to make programming safer and less error prone.
- Some of these features involve extra run-time checking and thus entail a performance penalty. However, Ada’s design is such that the performance penalty is minimal.
- This minimal checking runs better than in other languages, and is optimized by the compiler.
- It is better than the alternative: A failure that keeps the program running in an unexpected state.
- Some of these features involve extra run-time checking and thus entail a performance penalty. However, Ada’s design is such that the performance penalty is minimal.
-
Good choice for open source development.
-
Long-lived programs that spend most of their time in the maintenance phase of the software life cycle.
-
Promotes the readability of programs.
- Case Insensitive
-
True
is interpreted just asTRUE
ortRUe
. - Meaning is semantically asigned, not syntactically.
- That's what semantics is
-
- You may find Ada code to be rather verbose and tedious to write. However, that extra work pays off later by making the code clearer and easier to read when bugs must be fixed or enhancements written.
- Case Insensitive
-
The development of embedded systems
- Low-level hardware control
- Multiple concurrent tasks
- Real-time requirements are common.
- Still retaining as much safety as feasible.
-
-
Provides ample support for Real-time multiprocessor systems.
- Time predictability
- Inter-task communication
- By Protected objects
- Protected entries.
- Support for explicit concurrency and parallel processing.
- Tasks
- Synchronous message passing
- Protected objects
- Non-determinism.