SlideShare a Scribd company logo
1 of 44
Download to read offline
Ada Seminar 
An Introduction 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2008 AdrianHoe.com, AdaStar Informatics
The History of Ada 
What? 
Who? 
When? 
Why? 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008 How?
The World Software Crisis 
• US DoD, world largest computer user 
• Complexity - Tri-forces 
• Embedded systems 
• Databases 
• Processing 
• Real-time 
• Scientific 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
• Variety of programming languages and 
variant used: 
• TACPOL, CMS-2Y, CMS-2M, SPL-1, Jovial J3, 
Jovial J73, FORTRAN, COBOL, CORAL 66, 
Pascal, PL/I, PL/M, ALGOL 60, ALGOL 68, Simula, 
Modula, CHILL, Mesa, CSP, PEARL, APL, Linda, 
and etc... 
• Transportability 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
• Complexity - led to 
• escalating costs both development and 
maintenance 
• Reliability - Mission / Safety Critical 
• Other part of the world having same 
experience 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
• Identified software crisis symptoms: 
• Responsiveness 
• Reliability 
• Cost 
• Modifiability 
• Timeliness 
• Transportability 
• Maintainability 
• Efficiency 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Solutions? 
• Single standard is needed 
• General computing 
• Embedded and Real-Time applications 
• Scientific engineering 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Solution! 
• 1975 - HOLWG 
• Straw man 
• Wooden man 
• 1976 - Tin man 
• Iron man 
• 17 proposals, 4 selected 
• Green (CII Honeywell Bull) 
• Red (Intermetrics) 
• Blue (Softech) 
• Yellow (SRI International) 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Solution! 
• 1978 - Steel man 
• Red 
• Green 
• May 2, 1979 - GREEN team won! CII 
Honeywell Bull led by French engineer, Jean 
Ichbiah 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Ada was born! 
• Pascal-like syntax 
• Concurrency 
• Object-based 
• Named after Augusta Ada Byron (1815 - 
1852), Countess of Lovelace, daughter of 
Lord Byron 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Ada, not ADA! 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Ada and Standardization 
• July 1980 - Definitive version proposed to ANSI 
• December 12, 1980 - MIL-STD-1815 
• January 1983 - Awarded ANSI standard - Ada 83 
• 1987 - ISO Standard 8652 
• 1988 - Ada 9X revision 
• 1995 - Ada 95 (Object-Oriented) - ISO/IEC 8652:1995 
• 2000 - Ada 200X revision 
• 2007 - Ada 2005 - ISO/IEC 8652:2007 (E) Ed. 3 - March 9, 
2007 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Ada 2005 New Features 
• Language features 
• Character set - Support new 32-bit character type, Wide_Wide_Character 
in source code, e.g. identifiers and comments 
• π : constant := Pi; 
• Interface 
• Abstract interfaces to provide multiple inheritance 
• Protected and task interfaces 
• Union 
• Unchecked unions using variant records with no run-time discriminant 
• Annex B.3.3 Pragma Unchecked_Union 
• With 
• Limited With Clauses 
• Access to private units in private part 
• Access types 
• Not null access 
• Anonymous access 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Ada 2005 New Features 
•Language library 
•Containers 
•Scan Filesystem Directories and Environment Variables 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008 •Directory Operations 
•Environment variables 
•Numerics 
•Add Greek pi (π) to Ada.Numerics 
•Vector and matrix operations 
•Non-Preemptive Dispatching 
•Dynamic priorities for protected objects 
•Dynamic ceiling priorities
Ada 2005 New Features 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008 • Real-Time and High Integrity Systems 
• Timing events 
• Execution-Time Clocks 
• Group execution-time budgets 
• Task termination procedure 
• Further functions returning Time_Span values 
• Ravenscar profile 
• Ravenscar profile for high-integrity systems 
• New pragma and additional restriction identifiers for real-time systems 
• Annex H 
• Partition Elaboration Policy for High-Integrity Systems 
• New scheduling policies 
• Priority Specific Dispatching including Round Robin 
• Support for Deadlines and Earliest Deadlines First Scheduling 
• Non-Preemptive Dispatching 
• Dynamic priorities for protected objects 
• Dynamic ceiling priorities
Why Ada? 
When failure is not an 
option! 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Ada Characteristics 
• Expressive - Primitive objects and operations and 
must be extensible 
• Reliability - Strong typing, enumerated data, capture 
errors during compilation 
• Language implementation of tasking 
• Language extension by annexes 
• Portability, readability and maintainability 
• Built on top of software engineering philosophy 
• Validated 
• Time-to-market 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Expressive 
• Structured definitions of objects and 
operations using Package 
package Class_Stack is 
type Stack is tagged private; 
procedure reset (the : in out Stack); 
procedure push (the : in out Stack; item : in Integer); 
procedure pop (the : in out Stack; item : out Integer); 
private 
type Stack_Index is new Integer range 0 .. 10; 
type Stack_Array is array (1 .. Stack_Index’Last) of Integer; 
type Stack is tagged record 
Element : Stack_Array; 
Position : Stack_Index := 0; 
end record; 
end Class_Stack; 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Expressive 
• Structured definitions of objects and 
operations using Package 
• Package must be extensible using Genericity 
generic 
type T is private; 
Max_Stack : in Positive := 10; 
package Class_Stack is 
type Stack is tagged private; 
procedure reset (the : in out Stack); 
procedure push (the : in out Stack; item : in T); 
procedure pop (the : in out Stack; item : out T); 
private 
type Stack_Index is new Integer range 0 .. Max_Stack; 
type Stack_Array is array (1 .. Max_Stack) of T; 
type Stack is tagged record 
Element : Stack_Array; 
Position : Stack_Index := 0; 
end record; 
end Class_Stack; 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
generic 
type T is private; 
Max_Stack : in Positive := 10; 
package Class_Stack is 
type Stack is tagged private; 
procedure reset (the : in out Stack); 
procedure push (the : in out Stack; item : in T); 
procedure pop (the : in out Stack; item : out T); 
private 
type Stack_Index is new Integer range 0 .. Max_Stack; 
type Stack_Array is array (1 .. Max_Stack) of T; 
type Stack is tagged record 
Element : Stack_Array; 
Position : Stack_Index := 0; 
end record; 
end Class_Stack; 
with Class_Stack; 
... 
package Integer_Stack is new Class_Stack (Integer); 
... 
package Float_Stack is new Class_Stack (Float, 50); 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Reliability 
• Strong typing 
• Range constraints 
• Enumerated data types 
• Arrays begin at 1 
• Array aggregates 
• A : array (1 .. 6) of Float := (1 .. 5 => 0.0, 6 => 1.0); • Safe variables passing 
• procedure Set (A : in Integer; B : out Integer; C : in out 
Integer); • Capture errors during compilation 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Tasking 
• Language implementation of tasking 
(process) rather than system primitive 
threads 
• Rendezvous instead of semaphores 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Language Extension 
• Annex A - Predefined Language Environment 
• Annex B - Interface to Other Languages 
• Annex C - Systems Programming 
• Annex D - Real-Time Systems 
• Annex E - Distributed Systems 
• Annex F - Information Systems 
• Annex G - Numerics 
• Annex H - High Integrity Systems 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Readability 
• Pascal-like syntax 
• Natural 
• Top-down 
• Clean 
• No cryptic symbols 
• Clear definitions 
• Easy maintenance 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Time-To-Market 
• Definition of Time-To-Market 
• Timely delivery of reliable software vs. 
deliver first, patch later 
• Force programmers/software engineers 
spend more time on design 
• 10% time spent on coding 
• Also allow rapid prototyping 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Software Engineering 
Philosophy 
• Built on top of strong software philosophy 
• Enforce strong disciplines in software engineering 
• On-The-Fly programming is also allowed (rapid 
prototyping) 
• Language for both implementation and design 
• Directly reflects structure of the problem space 
• Efforts of software engineers around the world 
• Not a design of one or two individuals 
• Technology NOT proprietary to one organization 
• Matured 
• MIL-STD 
• Full ANSI and ISO 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Validation 
• Fully validated 
• Validation suite 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Examples ... 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Example 1 - Readability 
Calculate (int *a, *b) 
{ 
int c, d; 
c=*a++; 
d=c*a/*b; 
a=d+(*a)-b; 
} 
procedure Calculate (a : in out Integer; b : in Integer) is 
c, d : Integer; 
begin 
c := a; 
a := a + 1; 
d := c * a / b; 
a := d + a - b; 
end Calculate; 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Example 2 - Reliability 
int Matrix[10]; 
... 
Max = 15; 
... 
do_something_dangerous (int *matrix, int max) 
{ 
for (i=0;i++;i<=Max) 
{ 
safety_value=Matrix[i]; 
... 
} 
} 
Matrix : array (1..10) of Integer; 
... 
Max : Integer := 15; 
... 
for I in 1 .. Max loop 
begin 
Safety_Value := Matrix (I); -- Constraint error raised by compiler 
... 
end; Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Example 3 - Reliability 
enum Color {green=1, red=2} 
... 
color traffic_light = green; 
... 
do_something(); 
... 
if (traffic_light==green) 
start_train(); 
else 
wait(); 
... 
do_someting() 
{ /* Somehow enum color {green, red} somewhere => green=0, red=1 */ 
traffic_light=1; /* Red */ 
type Color is enum (Green, Red); 
... 
Traffic_Light : Color := Red; 
... 
Traffic_Light := 1; -- Compiler gives error 
... 
if Traffic_Light = Green then 
Start_Train; 
else 
Wait; 
end if; 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Example 4 - Tasking 
process_1() {...} 
process_2() {...} 
void do_some_process() 
{ 
Tid1 = Create_Thread (&process_1); 
Tid2 = Create_Thread (&process_2); 
... 
Start_Thread (Tid1); 
Start_Thread (Tid2); 
... 
Kill_Thread (Tid2); 
} 
procedure Do_Some_Process is 
task Process_1; 
task body Process_1 is 
begin 
... 
end Process_1; 
task Process_2; 
task body Process_2 is 
begin 
... 
end Process_2; 
begin 
Do_Whatever_Here; 
end Do_Some_Process; 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Who use Ada? 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Military 
• C4I 
• Battle Theater Management System 
• Mission Planning 
• Weapon Control 
• Missiles 
• Warships 
• Satellites 
• Simulations / War Games 
• more... 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Aerospace Industries 
• NASA 
• Boeing 
• Lockheed Martin 
• British Aerospace 
• Airbus 
• Air Traffic Control 
• GPS 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Transports 
• TGV Bullet Trains 
• Railway Traffic Control (European Train 
Control) 
• Paris Subway 
• Cairo & Calcutta Metros 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Financial 
• NASDAQ, Dow Jones, DAX, etc... 
• Swiss Bank (International Fund Transfer, 
SWIFT) 
• Well Fargo Bank 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Industries 
• Steel Mill (Production Monitoring and 
Control) 
• Furniture (MRP) 
• ERP 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Safety and Testing 
• Nuclear Power Plants 
• Pratt & Whitney 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Medical 
• X-ray, CT scan, MRI 
• Heart pacer 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Others 
• Pollution Monitoring 
• Video Security 
• Radio Telescope 
• Video Editing 
• Fault-Tolerant System 
• Sharp Zaurus-Mac OS X Sync Software 
• Network Cooperative Software Development 
Daemon (CVS) 
• Web Applications 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Countries that use Ada 
• US, Canada, Mexico, Brazil 
• UK, France, Germany, Austria, Poland, Italy, 
Norway, Russia, Spain, Sweden, Switzerland, 
Belgium, Portugal, Finland 
• Japan, China, India, Pakistan, South Korea, 
Taiwan, Hong Kong, Vietnam, Singapore, 
Australia, Malaysia(?) 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
References 
• Steelman - Requirements for High Order Computer Languages, Department 
of Defense (http://www.xgc.com/manuals/steelman/t1.html) 
• Ada - DoD HOLWG, Col WM Whitaker, 1993 (http://archive.adaic.com/pol-hist/ 
history/holwg-93/2.html) 
• A Review of Non-Ada to Ada Conversion (http://www.dacs.dtic.mil/techs/ada/ 
NONADA2ADA1.html) 
• Software Development Reengineering - An Experience Report, Adrian Hoe, 
7th International Conference on Reliable Software Technologies, Ada-Europe 
2002, Vienna, Austria (http://adrianhoe.com) 
Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd 
Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 
2008
Q & A 
Thank you! 
Adrian Hoe 
adrianhoe.com 
adastarinformatics.com

More Related Content

Viewers also liked

ADA programming language
ADA programming languageADA programming language
ADA programming languageAisha Kalsoom
 
Ada 2012
Ada 2012Ada 2012
Ada 2012AdaCore
 
Copyright act
Copyright actCopyright act
Copyright actDhashil
 
GNAT GPL For Mindstorms
GNAT GPL For MindstormsGNAT GPL For Mindstorms
GNAT GPL For MindstormsAdaCore
 
Euclid open network - Project Work at #sds2013
Euclid open network - Project Work at #sds2013Euclid open network - Project Work at #sds2013
Euclid open network - Project Work at #sds2013Guglielmo Apolloni
 
Rails Girls Cluj: Programming in the real world
Rails Girls Cluj: Programming in the real worldRails Girls Cluj: Programming in the real world
Rails Girls Cluj: Programming in the real worldMircea Mare
 
Ada Lovelace Day - 200 anos
Ada Lovelace Day - 200 anosAda Lovelace Day - 200 anos
Ada Lovelace Day - 200 anosTania Andrea
 
Entrevista exclusiva tim berners lee
Entrevista exclusiva tim berners leeEntrevista exclusiva tim berners lee
Entrevista exclusiva tim berners leeAlexandre Grolla
 
GNAT Pro User Day: Ada at Ansaldo STS
GNAT Pro User Day: Ada at Ansaldo STSGNAT Pro User Day: Ada at Ansaldo STS
GNAT Pro User Day: Ada at Ansaldo STSAdaCore
 
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorGNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorAdaCore
 
GNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada FactoryGNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada FactoryAdaCore
 
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyGNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyAdaCore
 
2014 Accessibility and the ADA CES Course
2014 Accessibility and the ADA CES Course2014 Accessibility and the ADA CES Course
2014 Accessibility and the ADA CES CourseMike Santos
 
Euclid and his contribution in development of math
Euclid and his contribution in development of mathEuclid and his contribution in development of math
Euclid and his contribution in development of mathAkshay Kumar
 

Viewers also liked (20)

ADA programming language
ADA programming languageADA programming language
ADA programming language
 
Ada 2012
Ada 2012Ada 2012
Ada 2012
 
Copyright act
Copyright actCopyright act
Copyright act
 
Introduction to Ada
Introduction to AdaIntroduction to Ada
Introduction to Ada
 
Ada distilled 2005 version
Ada distilled 2005 versionAda distilled 2005 version
Ada distilled 2005 version
 
2009 IECC: Residential
2009 IECC: Residential2009 IECC: Residential
2009 IECC: Residential
 
Ada 95 - Programming in the large
Ada 95 - Programming in the largeAda 95 - Programming in the large
Ada 95 - Programming in the large
 
GNAT GPL For Mindstorms
GNAT GPL For MindstormsGNAT GPL For Mindstorms
GNAT GPL For Mindstorms
 
Euclid open network - Project Work at #sds2013
Euclid open network - Project Work at #sds2013Euclid open network - Project Work at #sds2013
Euclid open network - Project Work at #sds2013
 
Oop
OopOop
Oop
 
Rails Girls Cluj: Programming in the real world
Rails Girls Cluj: Programming in the real worldRails Girls Cluj: Programming in the real world
Rails Girls Cluj: Programming in the real world
 
Ada Lovelace Day - 200 anos
Ada Lovelace Day - 200 anosAda Lovelace Day - 200 anos
Ada Lovelace Day - 200 anos
 
Entrevista exclusiva tim berners lee
Entrevista exclusiva tim berners leeEntrevista exclusiva tim berners lee
Entrevista exclusiva tim berners lee
 
GNAT Pro User Day: Ada at Ansaldo STS
GNAT Pro User Day: Ada at Ansaldo STSGNAT Pro User Day: Ada at Ansaldo STS
GNAT Pro User Day: Ada at Ansaldo STS
 
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation GeneratorGNAT Pro User Day: GNATdoc: Automatic Documentation Generator
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
 
GNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada FactoryGNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada Factory
 
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore TechnologyGNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
 
2014 Accessibility and the ADA CES Course
2014 Accessibility and the ADA CES Course2014 Accessibility and the ADA CES Course
2014 Accessibility and the ADA CES Course
 
Accessibility Building Codes: ADA
Accessibility Building Codes: ADAAccessibility Building Codes: ADA
Accessibility Building Codes: ADA
 
Euclid and his contribution in development of math
Euclid and his contribution in development of mathEuclid and his contribution in development of math
Euclid and his contribution in development of math
 

Similar to Ada Seminar — An Introduction to Ada

R programming groundup-basic-section-i
R programming groundup-basic-section-iR programming groundup-basic-section-i
R programming groundup-basic-section-iDr. Awase Khirni Syed
 
Improving data interoperability in Python and R
Improving data interoperability in Python and RImproving data interoperability in Python and R
Improving data interoperability in Python and RWes McKinney
 
Improving Data Interoperability for Python and R
Improving Data Interoperability for Python and RImproving Data Interoperability for Python and R
Improving Data Interoperability for Python and RWork-Bench
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB
 
DITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part IDITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part ISuite Solutions
 
Implementing a Taxonomy in a Content Management Portal
Implementing a Taxonomy in a Content Management PortalImplementing a Taxonomy in a Content Management Portal
Implementing a Taxonomy in a Content Management PortalAccess Innovations, Inc.
 
Phillip M Keegan
Phillip M KeeganPhillip M Keegan
Phillip M KeeganPhil Keegan
 
Phillip M Keegan
Phillip M KeeganPhillip M Keegan
Phillip M KeeganPhil Keegan
 
ch6-Short.ppt eee cse www rrr www qqq rrr ttt
ch6-Short.ppt eee cse www rrr www qqq rrr tttch6-Short.ppt eee cse www rrr www qqq rrr ttt
ch6-Short.ppt eee cse www rrr www qqq rrr tttwinimag331
 
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...Ricard de la Vega
 
Richard Hardy CV English June 2015
Richard Hardy CV English June 2015Richard Hardy CV English June 2015
Richard Hardy CV English June 2015Rick Hardy
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part IAngelo Corsaro
 
Oracle forms les07
Oracle forms  les07Oracle forms  les07
Oracle forms les07Abed Othman
 
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitDITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitSuite Solutions
 

Similar to Ada Seminar — An Introduction to Ada (20)

R programming groundup-basic-section-i
R programming groundup-basic-section-iR programming groundup-basic-section-i
R programming groundup-basic-section-i
 
Tthornton code4lib
Tthornton code4libTthornton code4lib
Tthornton code4lib
 
Improving data interoperability in Python and R
Improving data interoperability in Python and RImproving data interoperability in Python and R
Improving data interoperability in Python and R
 
Improving Data Interoperability for Python and R
Improving Data Interoperability for Python and RImproving Data Interoperability for Python and R
Improving Data Interoperability for Python and R
 
pl12ch6.ppt
pl12ch6.pptpl12ch6.ppt
pl12ch6.ppt
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
 
DITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part IDITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part I
 
Implementing a Taxonomy in a Content Management Portal
Implementing a Taxonomy in a Content Management PortalImplementing a Taxonomy in a Content Management Portal
Implementing a Taxonomy in a Content Management Portal
 
Phillip M Keegan
Phillip M KeeganPhillip M Keegan
Phillip M Keegan
 
Phillip M Keegan
Phillip M KeeganPhillip M Keegan
Phillip M Keegan
 
ch6-Short.ppt eee cse www rrr www qqq rrr ttt
ch6-Short.ppt eee cse www rrr www qqq rrr tttch6-Short.ppt eee cse www rrr www qqq rrr ttt
ch6-Short.ppt eee cse www rrr www qqq rrr ttt
 
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
 
Richard Hardy CV English June 2015
Richard Hardy CV English June 2015Richard Hardy CV English June 2015
Richard Hardy CV English June 2015
 
Emerging key-recovery-service
Emerging key-recovery-serviceEmerging key-recovery-service
Emerging key-recovery-service
 
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
 
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
Technical Challenges and Approaches to Build an Open Ecosystem of Heterogeneo...
 
PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
 
Oracle forms les07
Oracle forms  les07Oracle forms  les07
Oracle forms les07
 
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitDITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
 

Recently uploaded

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 

Recently uploaded (20)

Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 

Ada Seminar — An Introduction to Ada

  • 1. Ada Seminar An Introduction Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2008 AdrianHoe.com, AdaStar Informatics
  • 2. The History of Ada What? Who? When? Why? Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008 How?
  • 3. The World Software Crisis • US DoD, world largest computer user • Complexity - Tri-forces • Embedded systems • Databases • Processing • Real-time • Scientific Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 4. • Variety of programming languages and variant used: • TACPOL, CMS-2Y, CMS-2M, SPL-1, Jovial J3, Jovial J73, FORTRAN, COBOL, CORAL 66, Pascal, PL/I, PL/M, ALGOL 60, ALGOL 68, Simula, Modula, CHILL, Mesa, CSP, PEARL, APL, Linda, and etc... • Transportability Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 5. • Complexity - led to • escalating costs both development and maintenance • Reliability - Mission / Safety Critical • Other part of the world having same experience Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 6. • Identified software crisis symptoms: • Responsiveness • Reliability • Cost • Modifiability • Timeliness • Transportability • Maintainability • Efficiency Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 7. Solutions? • Single standard is needed • General computing • Embedded and Real-Time applications • Scientific engineering Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 8. Solution! • 1975 - HOLWG • Straw man • Wooden man • 1976 - Tin man • Iron man • 17 proposals, 4 selected • Green (CII Honeywell Bull) • Red (Intermetrics) • Blue (Softech) • Yellow (SRI International) Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 9. Solution! • 1978 - Steel man • Red • Green • May 2, 1979 - GREEN team won! CII Honeywell Bull led by French engineer, Jean Ichbiah Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 10. Ada was born! • Pascal-like syntax • Concurrency • Object-based • Named after Augusta Ada Byron (1815 - 1852), Countess of Lovelace, daughter of Lord Byron Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 11. Ada, not ADA! Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 12. Ada and Standardization • July 1980 - Definitive version proposed to ANSI • December 12, 1980 - MIL-STD-1815 • January 1983 - Awarded ANSI standard - Ada 83 • 1987 - ISO Standard 8652 • 1988 - Ada 9X revision • 1995 - Ada 95 (Object-Oriented) - ISO/IEC 8652:1995 • 2000 - Ada 200X revision • 2007 - Ada 2005 - ISO/IEC 8652:2007 (E) Ed. 3 - March 9, 2007 Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 13. Ada 2005 New Features • Language features • Character set - Support new 32-bit character type, Wide_Wide_Character in source code, e.g. identifiers and comments • π : constant := Pi; • Interface • Abstract interfaces to provide multiple inheritance • Protected and task interfaces • Union • Unchecked unions using variant records with no run-time discriminant • Annex B.3.3 Pragma Unchecked_Union • With • Limited With Clauses • Access to private units in private part • Access types • Not null access • Anonymous access Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 14. Ada 2005 New Features •Language library •Containers •Scan Filesystem Directories and Environment Variables Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008 •Directory Operations •Environment variables •Numerics •Add Greek pi (π) to Ada.Numerics •Vector and matrix operations •Non-Preemptive Dispatching •Dynamic priorities for protected objects •Dynamic ceiling priorities
  • 15. Ada 2005 New Features Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008 • Real-Time and High Integrity Systems • Timing events • Execution-Time Clocks • Group execution-time budgets • Task termination procedure • Further functions returning Time_Span values • Ravenscar profile • Ravenscar profile for high-integrity systems • New pragma and additional restriction identifiers for real-time systems • Annex H • Partition Elaboration Policy for High-Integrity Systems • New scheduling policies • Priority Specific Dispatching including Round Robin • Support for Deadlines and Earliest Deadlines First Scheduling • Non-Preemptive Dispatching • Dynamic priorities for protected objects • Dynamic ceiling priorities
  • 16. Why Ada? When failure is not an option! Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 17. Ada Characteristics • Expressive - Primitive objects and operations and must be extensible • Reliability - Strong typing, enumerated data, capture errors during compilation • Language implementation of tasking • Language extension by annexes • Portability, readability and maintainability • Built on top of software engineering philosophy • Validated • Time-to-market Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 18. Expressive • Structured definitions of objects and operations using Package package Class_Stack is type Stack is tagged private; procedure reset (the : in out Stack); procedure push (the : in out Stack; item : in Integer); procedure pop (the : in out Stack; item : out Integer); private type Stack_Index is new Integer range 0 .. 10; type Stack_Array is array (1 .. Stack_Index’Last) of Integer; type Stack is tagged record Element : Stack_Array; Position : Stack_Index := 0; end record; end Class_Stack; Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 19. Expressive • Structured definitions of objects and operations using Package • Package must be extensible using Genericity generic type T is private; Max_Stack : in Positive := 10; package Class_Stack is type Stack is tagged private; procedure reset (the : in out Stack); procedure push (the : in out Stack; item : in T); procedure pop (the : in out Stack; item : out T); private type Stack_Index is new Integer range 0 .. Max_Stack; type Stack_Array is array (1 .. Max_Stack) of T; type Stack is tagged record Element : Stack_Array; Position : Stack_Index := 0; end record; end Class_Stack; Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 20. generic type T is private; Max_Stack : in Positive := 10; package Class_Stack is type Stack is tagged private; procedure reset (the : in out Stack); procedure push (the : in out Stack; item : in T); procedure pop (the : in out Stack; item : out T); private type Stack_Index is new Integer range 0 .. Max_Stack; type Stack_Array is array (1 .. Max_Stack) of T; type Stack is tagged record Element : Stack_Array; Position : Stack_Index := 0; end record; end Class_Stack; with Class_Stack; ... package Integer_Stack is new Class_Stack (Integer); ... package Float_Stack is new Class_Stack (Float, 50); Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 21. Reliability • Strong typing • Range constraints • Enumerated data types • Arrays begin at 1 • Array aggregates • A : array (1 .. 6) of Float := (1 .. 5 => 0.0, 6 => 1.0); • Safe variables passing • procedure Set (A : in Integer; B : out Integer; C : in out Integer); • Capture errors during compilation Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 22. Tasking • Language implementation of tasking (process) rather than system primitive threads • Rendezvous instead of semaphores Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 23. Language Extension • Annex A - Predefined Language Environment • Annex B - Interface to Other Languages • Annex C - Systems Programming • Annex D - Real-Time Systems • Annex E - Distributed Systems • Annex F - Information Systems • Annex G - Numerics • Annex H - High Integrity Systems Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 24. Readability • Pascal-like syntax • Natural • Top-down • Clean • No cryptic symbols • Clear definitions • Easy maintenance Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 25. Time-To-Market • Definition of Time-To-Market • Timely delivery of reliable software vs. deliver first, patch later • Force programmers/software engineers spend more time on design • 10% time spent on coding • Also allow rapid prototyping Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 26. Software Engineering Philosophy • Built on top of strong software philosophy • Enforce strong disciplines in software engineering • On-The-Fly programming is also allowed (rapid prototyping) • Language for both implementation and design • Directly reflects structure of the problem space • Efforts of software engineers around the world • Not a design of one or two individuals • Technology NOT proprietary to one organization • Matured • MIL-STD • Full ANSI and ISO Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 27. Validation • Fully validated • Validation suite Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 28. Examples ... Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 29. Example 1 - Readability Calculate (int *a, *b) { int c, d; c=*a++; d=c*a/*b; a=d+(*a)-b; } procedure Calculate (a : in out Integer; b : in Integer) is c, d : Integer; begin c := a; a := a + 1; d := c * a / b; a := d + a - b; end Calculate; Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 30. Example 2 - Reliability int Matrix[10]; ... Max = 15; ... do_something_dangerous (int *matrix, int max) { for (i=0;i++;i<=Max) { safety_value=Matrix[i]; ... } } Matrix : array (1..10) of Integer; ... Max : Integer := 15; ... for I in 1 .. Max loop begin Safety_Value := Matrix (I); -- Constraint error raised by compiler ... end; Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 31. Example 3 - Reliability enum Color {green=1, red=2} ... color traffic_light = green; ... do_something(); ... if (traffic_light==green) start_train(); else wait(); ... do_someting() { /* Somehow enum color {green, red} somewhere => green=0, red=1 */ traffic_light=1; /* Red */ type Color is enum (Green, Red); ... Traffic_Light : Color := Red; ... Traffic_Light := 1; -- Compiler gives error ... if Traffic_Light = Green then Start_Train; else Wait; end if; Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 32. Example 4 - Tasking process_1() {...} process_2() {...} void do_some_process() { Tid1 = Create_Thread (&process_1); Tid2 = Create_Thread (&process_2); ... Start_Thread (Tid1); Start_Thread (Tid2); ... Kill_Thread (Tid2); } procedure Do_Some_Process is task Process_1; task body Process_1 is begin ... end Process_1; task Process_2; task body Process_2 is begin ... end Process_2; begin Do_Whatever_Here; end Do_Some_Process; Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 33. Who use Ada? Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 34. Military • C4I • Battle Theater Management System • Mission Planning • Weapon Control • Missiles • Warships • Satellites • Simulations / War Games • more... Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 35. Aerospace Industries • NASA • Boeing • Lockheed Martin • British Aerospace • Airbus • Air Traffic Control • GPS Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 36. Transports • TGV Bullet Trains • Railway Traffic Control (European Train Control) • Paris Subway • Cairo & Calcutta Metros Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 37. Financial • NASDAQ, Dow Jones, DAX, etc... • Swiss Bank (International Fund Transfer, SWIFT) • Well Fargo Bank Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 38. Industries • Steel Mill (Production Monitoring and Control) • Furniture (MRP) • ERP Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 39. Safety and Testing • Nuclear Power Plants • Pratt & Whitney Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 40. Medical • X-ray, CT scan, MRI • Heart pacer Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 41. Others • Pollution Monitoring • Video Security • Radio Telescope • Video Editing • Fault-Tolerant System • Sharp Zaurus-Mac OS X Sync Software • Network Cooperative Software Development Daemon (CVS) • Web Applications Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 42. Countries that use Ada • US, Canada, Mexico, Brazil • UK, France, Germany, Austria, Poland, Italy, Norway, Russia, Spain, Sweden, Switzerland, Belgium, Portugal, Finland • Japan, China, India, Pakistan, South Korea, Taiwan, Hong Kong, Vietnam, Singapore, Australia, Malaysia(?) Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 43. References • Steelman - Requirements for High Order Computer Languages, Department of Defense (http://www.xgc.com/manuals/steelman/t1.html) • Ada - DoD HOLWG, Col WM Whitaker, 1993 (http://archive.adaic.com/pol-hist/ history/holwg-93/2.html) • A Review of Non-Ada to Ada Conversion (http://www.dacs.dtic.mil/techs/ada/ NONADA2ADA1.html) • Software Development Reengineering - An Experience Report, Adrian Hoe, 7th International Conference on Reliable Software Technologies, Ada-Europe 2002, Vienna, Austria (http://adrianhoe.com) Copyright © 1997-2004 Lexical Integration (M) Sdn Bhd Copyright © 2003-2007 AdrianHoe.com, AdaStar Informatics 2008
  • 44. Q & A Thank you! Adrian Hoe adrianhoe.com adastarinformatics.com