Download presentation
Presentation is loading. Please wait.
Published bySpencer Jacobs Modified over 9 years ago
1
17.6.2003Ada-Europe’2003 Ada as a Language Ehud Lamm The Open University of Israel
2
17.6.2003Ada-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?
3
17.6.2003Ada-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
4
17.6.2003Ada-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
5
17.6.2003Ada-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)
6
17.6.2003Ada-Europe’2003 Q1: Log file Log Gen_Log Event’Class Filter’Class Writer’Class Dual Buffering
7
17.6.2003Ada-Europe’2003 Priority Queue Priority is (<>) Priority is priv. with func “<“(..) array of queues sorted linked list Q2: Priority Queue
8
17.6.2003Ada-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(<>)
9
17.6.2003Ada-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..
10
17.6.2003Ada-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.
11
17.6.2003Ada-Europe’2003 Does the choice of programming language really matter?
12
17.6.2003Ada-Europe’2003 No but...
13
17.6.2003Ada-Europe’2003 In theory, there’s no difference between theory and practice; In practice, there is.
14
17.6.2003Ada-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
15
17.6.2003Ada-Europe’2003 Language Community Libraries Reusable code Tools (e.g., VS IDEs, diagramming, DbC, etc.) Tutorials/textbooks etc.
16
17.6.2003Ada-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)
17
17.6.2003Ada-Europe’2003 Problematic features (Java) Conjecture. Let me know what you think. The type system Reference semantics Low level concurrency Generics are coming..
18
17.6.2003Ada-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.
19
17.6.2003Ada-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
20
17.6.2003Ada-Europe’2003 Conclusions Can we and should we try to change the way Ada is perceived in universities? How? –Evangelism –Textbooks –GNAT –etc.
21
17.6.2003Ada-Europe’2003 Thank You Any Questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.