ADA Langage Report Ligia Nitu. Introduction Ada is the most extensive and expensive computer language ever developed. Ada is the most extensive and expensive.

Slides:



Advertisements
Similar presentations
Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Advertisements

Programming Paradigms and languages
Unit 6 Assignment 2 Chris Boardley.
Names and Bindings.
CS0007: Introduction to Computer Programming Console Output, Variables, Literals, and Introduction to Type.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
The Assembly Language Level
An Introduction to Java Programming and Object- Oriented Application Development Chapter 8 Exceptions and Assertions.
Slides prepared by Rose Williams, Binghamton University ICS201 Exception Handling University of Hail College of Computer Science and Engineering Department.
Introduction to C Programming
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
ALGOL 60 Design by committee of computer scientists: Naur, Backus, Bauer, McCarthy, van Wijngaarden, Landin, etc. Design by committee of computer scientists:
Working with JavaScript. 2 Objectives Introducing JavaScript Inserting JavaScript into a Web Page File Writing Output to the Web Page Working with Variables.
Embedded Systems Development Selecting a language for a real-time embedded system.
Chapter 2: Algorithm Discovery and Design
Reasons to study concepts of PL
XP 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties Tutorial 10.
C++ for Engineers and Scientists Third Edition
Chapter 2: Algorithm Discovery and Design
Chapter 2: Algorithm Discovery and Design
BPC.1 Basic Programming Concepts
CS102 Introduction to Computer Programming
Language Evaluation Criteria
Chapter 6Java: an Introduction to Computer Science & Programming - Walter Savitch 1 l Array Basics l Arrays in Classes and Methods l Programming with Arrays.
MT311 Java Programming and Programming Languages Li Tak Sing ( 李德成 )
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Exception Handling Introduction to Exception Handling Exception Handling in PLs –Ada –C++ –Java Sebesta Chapter 14.
Chapter 8 More Object Concepts
EE4E. C++ Programming Lecture 1 From C to C++. Contents Introduction Introduction Variables Variables Pointers and references Pointers and references.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition.
Invitation to Computer Science, Java Version, Second Edition.
Programming Lifecycle
1 Chapter 4: Selection Structures. In this chapter, you will learn about: – Selection criteria – The if-else statement – Nested if statements – The switch.
Introduction to Exception Handling and Defensive Programming.
An Object-Oriented Approach to Programming Logic and Design Fourth Edition Chapter 6 Using Methods.
Exception Handling Unit-6. Introduction An exception is a problem that arises during the execution of a program. An exception can occur for many different.
CPS120: Introduction to Computer Science Decision Making in Programs.
CPS120: Introduction to Computer Science Functions.
CPS120: Introduction to Computer Science Lecture 14 Functions.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Selection Statements Selection Switch Conditional.
Chapter 7 Selection Dept of Computer Engineering Khon Kaen University.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
School of Computer Science & Information Technology G6DICP - Lecture 6 Errors, bugs and debugging.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter 11  Getting ready to program  Hardware Model  Software Model  Programming Languages  Facts about C++  Program Development Process  The Hello-world.
Ada, Scheme, R Emory Wingard. Ada History Department of Defense in search of high level language around Requirements drafted for the language.
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
CSE 332: C++ Exceptions Motivation for C++ Exceptions Void Number:: operator/= (const double denom) { if (denom == 0.0) { // what to do here? } m_value.
C++ for Engineers and Scientists Second Edition Chapter 4 Selection Structures.
Appendix 1 - Packages Jim Fawcett copyright (c)
Def: A control structure is a control statement and
CS170 – Week 1 Lecture 3: Foundation Ismail abumuhfouz.
BASIC ELEMENTS OF A COMPUTER PROGRAM
Lecture 1: Introduction to JAVA
Testing and Debugging.
Introduction to C Programming Language
Unit# 8: Introduction to Computer Programming
Chapter 12: Computer Programming
Ada – 1983 History’s largest design effort
Unit 6 Assignment 2 Chris Boardley.
Computing in COBOL: The Arithmetic Verbs and Intrinsic Functions
Principles of Programming Languages
Chapter 3: Selection Structures: Making Decisions
Boolean Expressions to Make Comparisons
2. Second Step for Learning C++ Programming • Data Type • Char • Float
Chapter 3: Selection Structures: Making Decisions
Presentation transcript:

ADA Langage Report Ligia Nitu

Introduction Ada is the most extensive and expensive computer language ever developed. Ada is the most extensive and expensive computer language ever developed. It was developed for the Department of Defense, so their computing environment determined its original form – real-time embedded systems. It was developed for the Department of Defense, so their computing environment determined its original form – real-time embedded systems. The first version of the language was released in 1980, after a period of about six years of design processing, requirements documentation, and international reviews. The first version of the language was released in 1980, after a period of about six years of design processing, requirements documentation, and international reviews. First ANSI standardized in 1983, it became ISO standard without any changes in First ANSI standardized in 1983, it became ISO standard without any changes in Ada represents most of the concepts of software engineering and language design from late 1970’s. This complexity made it very difficult to write usable compilers until about four years after the language design was completed. Ada represents most of the concepts of software engineering and language design from late 1970’s. This complexity made it very difficult to write usable compilers until about four years after the language design was completed.

Usage Ada is a general-purpose language, used in a diverse number of applications – missile control, payroll, air control, etc. It is strong typed, modular, portable, reusable and readable. All of these are features that help reduce the cost of software development, and maintenance. Ada is a general-purpose language, used in a diverse number of applications – missile control, payroll, air control, etc. It is strong typed, modular, portable, reusable and readable. All of these are features that help reduce the cost of software development, and maintenance. Ada is designed to support the construction of highly reliable, long-lived software systems. Ada is designed to support the construction of highly reliable, long-lived software systems. Ada 95 added support for object-oriented programming as well as improved support for systems, numerical, and financial programming. Ada 95 added support for object-oriented programming as well as improved support for systems, numerical, and financial programming. Ada 95 Reference Manual (contains the full definition of the language syntax) Ada 95 Reference Manual (contains the full definition of the language syntax)

Compiler requirement example Logically, Ada programs are composed of a set of program units. Logically, Ada programs are composed of a set of program units. Ada compilers compile compilation units. A compilation unit is either a program unit's declaration or body, preceded by a context clause. Ada compilers compile compilation units. A compilation unit is either a program unit's declaration or body, preceded by a context clause. A context clause is a set of with clauses (that state what other program units are needed) and/or use clauses (the program units to search by default). A context clause is a set of with clauses (that state what other program units are needed) and/or use clauses (the program units to search by default). Ada compilers must support lines and identifier lengths of at least 200 (!) characters. Ada compilers must support lines and identifier lengths of at least 200 (!) characters. Here's a simplified BNF syntax for a compilation unit. Here's a simplified BNF syntax for a compilation unit. compilation_unit ::= context_clause library_item context_clause ::= {context_item} context_item ::= with_clause | use_clause with_clause ::= "with" library_unit_name { "," library_unit_name} ";" use_clause ::= "use" library_unit_name { "," library_unit_name} ";" library_item ::= package_declaration | package_body | subprogram_declaration | subprogram_body

Unusual fact about Numeric Literals To make long numbers easier to read, underscores are permitted inside a numeric literal. To make long numbers easier to read, underscores are permitted inside a numeric literal. Example: "1_000_000" is legal. Underscores don't change the value of a number. Underscores don't change the value of a number.

Exception Handling Ada has built in exception handling capabilities which allow the program to handle its own run-time errors to protect against access to unallocated memory, buffer overflow errors, array access errors, and other avoidable bugs. These checks can be disabled in the interest of efficiency, but can often be compiled efficiently. Ada has built in exception handling capabilities which allow the program to handle its own run-time errors to protect against access to unallocated memory, buffer overflow errors, array access errors, and other avoidable bugs. These checks can be disabled in the interest of efficiency, but can often be compiled efficiently. A key difference between Ada and some other languages (such as C and C++) is what happens when an evaluation cannot be completed. If a division by zero is attempted, or an expression result is too large, Ada will normally raise an exception. Exceptions can be handled, but if they’re not, the program will stop its execution with a debugging output to help identify the problem. A key difference between Ada and some other languages (such as C and C++) is what happens when an evaluation cannot be completed. If a division by zero is attempted, or an expression result is too large, Ada will normally raise an exception. Exceptions can be handled, but if they’re not, the program will stop its execution with a debugging output to help identify the problem. Instead of silently giving wrong answers, Ada programs normally will halt when a computation cannot be completed. Instead of silently giving wrong answers, Ada programs normally will halt when a computation cannot be completed.

Ada case statement It functions identical to C's "switch" statement, but unlike C, Ada supports ranges of values and does not require a "break" statement at the end of each sequence (a common C error). It functions identical to C's "switch" statement, but unlike C, Ada supports ranges of values and does not require a "break" statement at the end of each sequence (a common C error).EX: case A is -- Execute something depending on A's value: when 1 => Fly; -- if A=1, execute Fly. when => Put(A); -- if A is 3 through 10, put it to the screen. when 11 | 14 => null; -- if A is 11 or 14, do nothing. when 2 | => Swim; -- if A is 2 or 20 through 30, execute Swim. when others => Complain; -- if A is anything else, execute Complain. when others => Complain; -- if A is anything else, execute Complain. end case;

Notable Features Portable – it can easily be recompiled and ported to other systems. Portable – it can easily be recompiled and ported to other systems. Packages – reusability - Separate compilation. Packages – reusability - Separate compilation. Generic Program Units – possible to write a procedure which does not require a data type to be specified. Generic Program Units – possible to write a procedure which does not require a data type to be specified. Parallel / Concurrent Processing – modularity - Ada supports parallel and concurrent execution of tasks. Parallel / Concurrent Processing – modularity - Ada supports parallel and concurrent execution of tasks. Memory Management – like Java. Memory Management – like Java. System Programming - access to system-dependent properties and precise control over representation of data. System Programming - access to system-dependent properties and precise control over representation of data.

Conclusion The Department of Defense no longer requires the use of Ada language only, so its popularity is decreasing. The Department of Defense no longer requires the use of Ada language only, so its popularity is decreasing. Another factor that influenced its popularity was that before Ada 95 release, there was a wide acceptance of the C++ language for object oriented programming. Another factor that influenced its popularity was that before Ada 95 release, there was a wide acceptance of the C++ language for object oriented programming. Work continues on improving and updating the technical content of the Ada programming language, following the once-a-decade major update schedule. The new version is expected in Work continues on improving and updating the technical content of the Ada programming language, following the once-a-decade major update schedule. The new version is expected in 2007.