17.6.2003Ada-Europe’2003 Ada as a Language Ehud Lamm The Open University of Israel.

Slides:



Advertisements
Similar presentations
Data Structures.
Advertisements

Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
C++ Programming Languages
Transition from C to C++ …and a Review of Basic Problem Solving.
Georgia Institute of Technology Workshop for CS-AP Teachers Chapter 3 Advanced Object-Oriented Concepts.
1 CSC 421: Algorithm Design & Analysis Spring 2013 See online syllabus: (also on BlueLine2) Course.
Introductory Computer Science Courses Past experiences & thoughts Haakon Ringberg, Thomson Research Paris & Princeton University.
ADA Langage Report Ligia Nitu. Introduction Ada is the most extensive and expensive computer language ever developed. Ada is the most extensive and expensive.
Software Engineering and Design Principles Chapter 1.
Liang,Introduction to Java Programming,revised by Dai-kaiyu 1 Chapter 10 Object-Oriented Modeling.
CS 330 Programming Languages 10 / 16 / 2008 Instructor: Michael Eckmann.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
1 CS 312 – Lecture 28 Continuations –Probably the most confusing thing you’ve seen all semester… Course summary –Life after CS 312.
Abstract data types & object-oriented paradigm. Abstraction Abstraction: a view of an entity that includes only the attributes of significance in a particular.
Lecture 9 Concepts of Programming Languages
Adding Contracts to Ada Ehud Lamm Adding Design By Contract to Ada.
Abstract Data Types and Encapsulation Concepts
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
CSCI-383 Object-Oriented Programming & Design Lecture 15.
Programming Language Concepts
1 Genericity Parameterizing by Type. 2 Generic Class One that is parameterized by type  Works when feature semantics is common to a set of types On object.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
Introduction To System Analysis and design
The Power of Abstraction Barbara Liskov May 2013 MIT CSAIL.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
CSCI-383 Object-Oriented Programming & Design Lecture 1.
Introductory Software Engineering with a Focus on Dependency Management Christine Hofmeister.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Porting Implementation of Packet Utilization Standard from ADA to JAVA Annelie Hultman (TEC-EME) Donata Pedrazzani (TEC-EMS) ESA/ESTEC 2004 JPUS de-briefing.
Programming Language C++ Xulong Peng CSC415 Programming Languages.
Stephenson College DP 96 1 Object-Orientation by Derek Peacock.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2010 See online syllabus (also available through BlueLine): Course goals:
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
Ada How was Ada conceived. The language, not the lady.
Object Oriented Software Development
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
CS2110: SW Development Methods Inheritance in OO and in Java Part 2: Topics: Forms of inheritance Interfaces in Java.
Real Time Programming Language. Intro A programming language represents the nexus of design and structure. But misuse of the programming language can.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Hack for HHVM Converting Facebook Julien Verlaguet Software Engineer.
CS5205Introduction1 CS5205: Foundation in Programming Languages Lecture 0 : Overview Lecturer : Chin Wei Ngan Office : COM2.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
OOPs Object oriented programming. Abstract data types  Representationof type and operations in a single unit  Available for other units to create variables.
ADT data abstraction. Abstraction  representation of concepts by their relevant features only  programming has two major categories of abstraction process.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
SWE 4743 Abstract Data Types Richard Gesick. SWE Abstract Data Types Object-oriented design is based on the theory of abstract data types Domain.
1 CS Programming Languages Class 22 November 14, 2000.
(1) ICS 313: Programming Language Theory Chapter 11: Abstract Data Types (Data Abstraction)
Ada, Scheme, R Emory Wingard. Ada History Department of Defense in search of high level language around Requirements drafted for the language.
A Survey of Object-Oriented Concept Oscar Nierstrasz.
C# Fundamentals An Introduction. Before we begin How to get started writing C# – Quick tour of the dev. Environment – The current C# version is 5.0 –
Cs776 (Prasad)L2HOF1 Higher-Order Functions. cs776 (Prasad)L2HOF2 Higher-Order Functions A function that takes a function as argument and/or returns a.
ISBN Chapter 12 Support for Object-Oriented Programming.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
Outline Object-Oriented Concepts Modeling Components Structured Method Evaluation Procedure Object-Oriented Methods Structured Methods Review of Object.
CSCI 383 Object-Oriented Programming & Design Lecture 15 Martin van Bommel.
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
Programming paradigms
Project Topic 2: Migration to Java 9
CSC 222: Object-Oriented Programming
11.1 The Concept of Abstraction
Introduction to Computer Science for Majors II
Chapter 19: Interfaces and Components
Presentation transcript:

Ada-Europe’2003 Ada as a Language Ehud Lamm The Open University of Israel

Ada-Europe’2003 Context Current course: Software Engineering with Ada (Booch). Good, but perhaps not good enough. Ada perceived as hindrance. I examined several Java textbooks, and discovered Lisokv’s Program Development in Java. What should be our next step?

Ada-Europe’2003 Why & How Undergraduate SE course (CS students) Classic Software Design –Traditional approach (imperative, OOP) “Essentials of Software Engineering” –Modularity, Reliability, Readability, Flexibility, Software Life Cycle –University education

Ada-Europe’2003 Why & How Practical course Challenging design problems –Programming Should be Fun –Not just “getting it to work” –Students evaluate and re-evaluate their designs. Make the language invisible

Ada-Europe’2003 Interface/Implementation Adequacy Operation Categories Exceptions Pre/Post Conditions Invariants Course Outline Data Abstraction –ADT/ADO Generic Units Inheritance Basic Tasking Flexibility Parameterization Separate Compilation Combining abstractions Runtime Polymorphism Heterogenic collections Classwide/Dispatching IS-A (LSP) Composition (HAS-A)

Ada-Europe’2003 Q1: Log file Log  Gen_Log  Event’Class  Filter’Class Writer’Class  Dual Buffering

Ada-Europe’2003 Priority Queue Priority is (<>) Priority is priv. with func “<“(..) array of queues sorted linked list Q2: Priority Queue

Ada-Europe’2003 generic type Struct is lim. priv. type Elem is priv. with proc Insert with proc Remove … package Any_Struct is end; Package Protect_Struct protected type Struct …. end; Struct is new Any_Struct(<>)

Ada-Europe’2003 with pack Any_Iter(<>) function Max(S) … begin Start(S); while More_Elements(S) loop …. Next(S); end loop; End; pack BST --Binary_Search_Tree func BST.Max..

Ada-Europe’2003 generic type Item is priv. package Sets is type Set is abs. tagged null rec … end; generic with func “<“(I1,I2:Item); package Sets.Sorted_List is type Set is new Sets.Set with priv.

Ada-Europe’2003 Does the choice of programming language really matter?

Ada-Europe’2003 No but...

Ada-Europe’2003 In theory, there’s no difference between theory and practice; In practice, there is.

Ada-Europe’2003 ‘Ideal’ Language Rich type system Information hiding –Explicit interfaces –Value semantics Genericity Inheritance Garbage collection Design by Contract First-class functions Rich libraries, variety of tools AdaJava

Ada-Europe’2003 Language Community Libraries Reusable code Tools (e.g., VS IDEs, diagramming, DbC, etc.) Tutorials/textbooks etc.

Ada-Europe’2003 Problematic features (Ada) (in my experience) Many kinds of Interfaces Access to subprograms (accessibility) Controlled (vs. other approaches to destructors/constructors) Controlled & Generics Controlling child visibility Verbosity (exercises take too much time)

Ada-Europe’2003 Problematic features (Java) Conjecture. Let me know what you think. The type system Reference semantics Low level concurrency Generics are coming..

Ada-Europe’2003 The textbooks A language can’t survive without good textbook, for all levels and needs. Liskov’s book is much more suited for an academic SE course.

Ada-Europe’2003 Conclusions Ada is still a strong candidate for a teaching language for SE Most of the technical problems can be solved rather easily. Better error messages should help with the remaining issues. The language isn’t the problem: Good News and Bad News Community and Cultural roadblocks

Ada-Europe’2003 Conclusions Can we and should we try to change the way Ada is perceived in universities? How? –Evangelism –Textbooks –GNAT –etc.

Ada-Europe’2003 Thank You Any Questions?