Ada is a programming language developed for USDoD (United States Department of Defense). The name was named after Ada Lovelace (or Augusta Ada King, Countess of Lovelace, 1815-1852), who is often credited as being the first computer programmer (without a real computer). Ada Lovelace had a famous father, Lord Byron, who also gave her the talent of mathematics. USDoD also used internal name (MIL-STD-1815) to commemorate her birth.
Ada is a validated secure programming language, originally targeted at embedded and real time systems like avionics, weapon systems and spacecraft. It is extended from Pascal and other languages. Notable features of Ada include: strong typing, modularity mechanisms (packages), run-time checking, parallel processing (tasks), exception handling, memory management and generics. Ada 95 added support for object-oriented programming, including dynamic dispatch.
The most popular programming languages used in commercial electronics systems are assembly, BASIC, C/C++ and Java. In the serious projects for electronics systems, C/C++ is the preferred language. However, C/C++ is not as safe as Ada, since it has not run-time checking to prevent access to unallocated memory, buffer overflow, off-by-one (boundary condition), array access and other detectable bugs. These run-time checking features are highly valuable in embedded systems. Because C compilers give emphasis on compile-time checking, most poor designed C code can not avoid these run-time faults, so people define a lot of extra inspection rules and require extra tools, operation system or even hardware to protect systems programming in C language.
As the first sight of my personal experience, Ada code looks like Pascal with more safety. It is interesting to know that Ada also has unique definitions in keywords (it prefer English words rather than symbols), comments and statement terminator. Although its coding standard seems a little strict, it is worthy in developing a reliable system. Check out its sample code as following:
-- Hello World of Ada
procedure Hello is
You can have an overview of Ada's features from Wikipedia, where introduces background of Ada language and its basic programming requirements.
Progresses in Open Source Communities
Today, Ada has been extended with many APIs, databases, GUI, libraries, utilities, Web/XML and miscellaneous packages. It also works in Linux, Mac and Windows platforms, as well as virtual machines like Java and .NET . GNAT (free, high-quality, complete compiler for Ada95, which was started in NYU) has been integrated into GCC, so you can download and try to develop a small code with Ada today. You may visit adapower.com to download the sample code and tutorials, you may be impressed by its existing samples used in many applications.
AuroraUX is an operation system distribution based on the OpenSolaris source base. Its goal is to create a high reliability core OS using Ada programming language. You can find many Ada code in its user land as well as operation system. AuroraUX supports Ada as well as Cyclone, C and C++. Cyclone has been developed to avoid buffer overflows and other vulnerabilities of C. Falcon is chosen as the scripting language in AuroraUX due to its numeric and scientific background.
Ada, from Wikipedia
GNAT (GNU Ada) from GCC, Ada95
AdaCore - The GNAT Pro Company
AuroraUX Project, Core Operation System for High Integrity Scientific Computing, OpenSolaris plus Ada, supports x86, SPARC and PowerPC
Ada Power, tools and resources site for Ada