Introduction to Ada Solo Project
Robert Rostkowski CS 460 Computer Security Fall 2008
Ada Lovelace (1815-1852)
Math
& Science Genius Childhood steered towards math & science Designed airplane in 1828 Tutored by Augustus DeMorgan in 1840 Translated & appended Charles Babbages Analytical Machine into meticulous notes
Ada Lovelace (1815-1852)
First
Programmer Explained how Analytical Engine could calculate Bernoulli Numbers Wrote (first) program for the never built Analytical Engine
Ada History
US Department of Defense (DoD) Pre-1980 Too Many Programming Languages (450+) Hardware dependent Unsafe modular programming Outdated programming languages By 1977, it was time for a change In 1979, Jean Ichbiah won the DoDs programming language contest, with a Pascal like dialect
Ada & WWII Cryptography Challenge
Joachim
Schweth used Ada to crack the Lorenz S242 Encryptor (16 million million million permutations), in just 46 seconds. Overall, the cryptography challenge took a little less than two hours.
Ada Standards
Ada
83 (1983) ANSI/MIL-STD 1815 A Ada 87 (1987) ISO-8652: 1987 Ada 95 (1995) ISO-8652: 1995 Interfaces with C, C++, FORTRAN, COBOL & Java source code
Ada Standards
The
DoD, ANSI & ISO standards are adhered worldwide. Thus, its easy to write and revise Ada code. More importantly, safety and security are more reliable with a global, structured, standardized, hardware & operating system independent programming language. Ada supports OOP too.
Ada Compilers
GNAT,
the GNU/NYU Ada 95
Free Unix flavors Windows 95 & above
Object
Ada
Developed by Aonix X Windows Windows 95 & above
Ada Compilers
Compile-time
errors Run-time errors Unallocated memory Buffer overflow Off by one Fully checks array access handling Verification Exception handling Supports software engineering standards
Ada Program Structure
with
Package_Name; use Package; procedure Program_Name is Variable : Some_Type; begin Statement_1; Statement_2; end
Ada Hello Word Program
with
Ada.Text_IO; use Ada.Text_IO; procedure Hello_World is begin Put (Hello world!) end Hello_World;
Ada Get Name Program
with Ada.Text_IO; use Ada.Text_IO; procedure Get_Name is
Name : String (1..80); Length : Integer; Put (Enter your first name>); Get_Line (Name, Length); New_Line; Put (Hello);
begin
Ada Get Name Program
Put (Name (1..Length)); Put (, we hope that you enjoy learning Ada!); end Get_Name;
Ada Usage
US Department of Defense (DoD) Air Travel
Boeing 777s fly by wire system Boeing 787 Dreamliner Canadian Automated Air Traffic System
1 million lines of Ada code Distributed processing Ada database Object Oriented Design
Global air traffic control iFACTS, new UK air traffic control
Written from ground up
Ada Usage
French
TGV high speed train Other industries Financial Systems Power Generation Healthcare Communication Safety Critical
Ada Usage
Designed
for large critical programs Real Time & Embedded Systems Numerical Financial
Sources
Introducing
Ada
http://www.adahome.com/articles/199801/ar_intro.html
Choose
Ada, The Most Trusted Name in Software
http://www.adaic.org/whyada/choose.html
Ada:
The Enchantress of Numbers
http://www.well.com/~adatoole/bio.html
Sources
Ada
Lovelace (programming language)
http://en.wilkipedia.org/wiki/Ada_Lovelace
http://en.wilkipedia.org/wiki/Ada_ (programming_language)
Ada
Ada
helps win WWII Cyrptography Challenge
http://www.adiac.org/news/crypto.html
Sources
What
is Ada?
http://www.dwheeler.com/lovelace/s1s1.htm
Why
Ada? matters!
http://www.adiac.org/whyada/WhyAda.html http://www.milembedded.com/articles/id/?3277
Ada
Acknowledgements
For
their guidance, special thanks to Dr. Netiva Caftori (NEIU) Dr. Tzilla Elrad (IIT)