Ada%20as%20a%20%20Language - PowerPoint PPT Presentation

About This Presentation
Title:

Ada%20as%20a%20%20Language

Description:

I examined several Java textbooks, and discovered Lisokv's Program Development in Java. ... Evangelism. Textbooks. GNAT. etc. 17.6.2003. Ada-Europe'2003. Thank ... – PowerPoint PPT presentation

Number of Views:109
Avg rating:3.0/5.0
Slides: 22
Provided by: e200600107
Category:
Tags: 20language | 20a | 20as | ada | gnat

less

Transcript and Presenter's Notes

Title: Ada%20as%20a%20%20Language


1
Ada as a Language
Teaching
  • Ehud Lamm
  • The Open University of Israel

2
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
    Lisokvs Program Development in Java.
  • What should be our next step?

3
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

4
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

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

6
Q1 Log file
  • Log ?
  • Gen_Log ?
  • EventClass ?
  • FilterClass
  • WriterClass ?
  • Dual Buffering

7
Q2 Priority Queue
Priority is priv. with func lt(..)
Priority is (ltgt)
array of queues
sorted linked list
8
generic type Struct is lim. priv. type Elem
is priv. with proc Insert with proc
Remove package Any_Struct is end
Struct is new Any_Struct(ltgt)
Package Protect_Struct protected type
Struct . end
9
pack BST --Binary_Search_Tree
func BST.Max..
10
generic type Item is priv. package Sets is
type Set is abs. tagged null rec end
generic with func lt(I1,I2Item) package
Sets.Sorted_List is type Set is new Sets.Set
with priv.
11
Does the choice of programming language really
matter?
12
No
  • but...

13
In theory, theres no difference between theory
and practice In practice, there is.
14
Ideal Language
Ada
Java
  • Rich type system
  • Information hiding
  • Explicit interfaces
  • Value semantics
  • Genericity
  • Inheritance
  • Garbage collection
  • Design by Contract
  • First-class functions
  • Rich libraries, variety of tools

15
Language Community
  • Libraries
  • Reusable code
  • Tools (e.g., VS IDEs, diagramming, DbC, etc.)
  • Tutorials/textbooks
  • etc.

16
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)

17
Problematic features (Java)
  • Conjecture. Let me know what you think.
  • The type system
  • Reference semantics
  • Low level concurrency
  • Generics are coming..

18
The textbooks
  • A language cant survive without good textbook,
    for all levels and needs.
  • Liskovs book is much more suited for an academic
    SE course.

19
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 isnt the problem Good News and Bad
    News
  • Community and Cultural roadblocks

20
Conclusions
  • Can we and should we try to change the way Ada is
    perceived in universities?
  • How?
  • Evangelism
  • Textbooks
  • GNAT
  • etc.

21
Thank You
Any Questions?
Write a Comment
User Comments (0)
About PowerShow.com