Home
Login / Signup
 di 

Ada, an alternative programming language

  • user warning: Table './devemc/sessions' is marked as crashed and last (automatic?) repair failed query: SELECT COUNT(sid) AS count FROM sessions WHERE timestamp >= 1419241429 AND uid = 0 in /home/devemc/public_html/dev/includes/session.inc on line 157.
  • user warning: Table './devemc/sessions' is marked as crashed and last (automatic?) repair failed query: SELECT COUNT(DISTINCT s.uid) FROM sessions s WHERE s.timestamp >= 1419241429 AND s.uid > 0 in /home/devemc/public_html/dev/modules/user/user.module on line 790.
Ada, an alternative programming language

History

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.

Augusta Ada King

Features

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

--------------------------------------------------------------

with Ada.Text_IO;

 

procedure Hello is

begin

    Ada.Text_IO.Put_Line("Hello, world!");

end Hello;

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.

Everyone doesn't enjoy switching existing programming language to another one. To be frank, I was so tired to switch between so many languages, especially in web application, there are so many languages involved, including PHP, Perl, Shell script, Python, JavaScript, Java, ASP, C, as well as many standards and frameworks. No one will change C to Ada right now, due to its largest code base and hardware capabilities. C language still dominates the embedded and real-time systems. However, I will evaluate the AuroraUX in some UNIX/Linux based embedded systems in case I have the chance.

Reference

Ada, from Wikipedia
http://en.wikipedia.org/wiki/Ada_(programming_language)

Ada Programming
http://en.wikibooks.org/wiki/Ada_Programming

GNAT (GNU Ada) from GCC, Ada95
http://www.gnu.org/software/gnat/

AdaCore - The GNAT Pro Company
http://www.adacore.com/home/

AuroraUX Project, Core Operation System for High Integrity Scientific Computing, OpenSolaris plus Ada, supports x86, SPARC and PowerPC
http://auroraux.blastwave.org/index.php/Main_Page

Ada Power, tools and resources site for Ada
http://www.adapower.com/

Mistake

Sorry for this mistake.

Falcon has no numeric and scientific background, actually I believe the reason why it is selected because it merges several different programming styles into a single framework. It is Fortran that has numeric and scientific background. And Fortran is not a scripting language.

Who's online

There are currently users and guests online.

Recent comments