CS 342 Lecture -*- Outline -*- * Analysis of Ada ** Important features modules that support data abstraction (packages) exception handling, concurrency, type system Lot of nice details especially syntactic, numeric types, type checking ** Problems DoD got what it asked for (largely fulfills requirements) Ada is big, complex language incorporating many trade-offs but no unifying vision (no particular method) -no subsets allowed! (enhances portability) -compilers have been very complex, many problems Lack of methodological perspective packages, exceptions, tasks Should be more general. generics ** fundamental flaw of Ada (and other languages so far) not the language design itself, but the paradigm behind it. -Ada's abstraction is a von Neumann computer CPU -- bottleneck -- Memory var := expression -word-at-a-time orientation (somewhat mollified in Ada) want to program at a higher level of abstraction -operational thinking want to manipulate programs formally (algebraically) (programs are symbol manipulation formulas)