Trusted Components
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Announcements | Description | Schedule | Grading | References | Slides | Contacts | Guest Lectures |
Still available: last year's page.
February 20th, 2004
January 27th, 2004
January 25th, 2004
January 14th, 2004
December 26th, 2003
November 25th, 2003
November 17th, 2003
October 31st, 2003
October 23rd, 2003
October 19th, 2003
October 7th, 2003
Trusted Components
Course code: 37-239
See official
ETH page on this course
The prospect of component-based development is one of the greatest hopes for the advancement of software engineering. But it assumes that the components are of high enough quality. Surprisingly, no real standards exist in this area. This course will explore the techniques available to guarantee that components can be trusted.
Experience with O-O development and, preferably, a component model.
Weekly schedule
Office hours: By appointment, RZ-J6
Semester schedule (tentative)
| Lect. | Date | Contents | Slides | |
|---|---|---|---|---|
| 1 | 22.10.2003 | Introduction, software quality, reuse | Slides 1 | |
| 2 | 27.10.2003 | Component design techniques | ||
| 3 | 29.10.2003 | Library design 1 | ||
| 4 | 03.11.2003 | Library design 2: EiffelBase | ||
| 5 | 05.11.2003 | Guest lecture: Erik Meijer | Abstract | |
| 6 | 10.11.2003 | Design by contract 1 | Slides 2 | |
| 7 | 12.11.2003 | Design by contract 2 | ||
| 8 | 17.11.2003 | Design by contract 3 | ||
| 9 | 19.11.2003 | Guest lecture: Prof. Emil Sekerinski, Exercise discussion | Talk slides | |
| 10 | 24.11.2003 | Design by contract 4 | Slides 2 | |
| 11 | 26.11.2003 | Axiomatic semantics 1 | Axiomatic Semantics Chapter | |
| 12 | 01.12.2003 | Axiomatic semantics 2 | ||
| 13 | 03.12.2003 | Reasoning about pointers and references 1 | JOT Article 1, JOT Article 2 | |
| 14 | 08.12.2003 | Reasoning about pointers and references 2 | ||
| 15 | 10.12.2003 | Introduction into the B language | Slides 3 | |
| 16 | 15.12.2003 | Guest lecture: Jean-Raymond Abrial | Talk slides | |
| 17 | 17.12.2003 | Presentation of the Atelier B Workbench | ||
| Christmas Vacation | ||||
| 18 | 05.01.2004 | Lecture Canceled | ||
| 19 | 07.01.2004 | Proving Algorithms in B | Slides | |
| 20 | 12.01.2004 | Pointer Proofs / Model Based Contracts | Object Calculus, Linked Lists | |
| 21 | 14.01.2004 | Model Based Contracts / Denotational Semantics | ||
| 20 | 19.01.2004 | Denotational Semantics | ||
| 21 | 21.01.2004 | Denotational Semantics | ||
| 22 | 26.01.2004 | Component Models | Slides 4 | |
| 23 | 28.01.2004 | Component Models | ||
| 24 | 02.02.2004 | Summary | ||
| 27 | 04.02.2004 | Exam | ||
Important: No "Testat" is delivered or "mündliche Prüfung" provided for this course. The only way to get a grade is to take the exam and the exercises. This applies regardless of your department or status.
Contact assistant for the course: Bernd Schoeller (http://se.inf.ethz.ch/people/schoeller, Office: RZ-J22)
Erik Meijer: Programming
with Rectangles, Triangles, and Circles
Microsoft Research
Abstract:
We will argue that by properly generalizing the type system and expression syntax, it is possible for any modern object oriented language to provide first class support for manipulating both relational and hierarchical data in a sound and statically typed manner. The type system extensions, however, are not based on XML Schemas. We show that XSDs and the XML data model do not fit well with the class-based nominal type system and object graph representation of our target languages. Instead we propose to extend object-oriented type system with new structural types that model XSD sequences, choices, and all-groups. We demonstrate our language and type system by translating a selection of the XQuery use cases.
About the lecturer:
You might know me as the "Head In The Box" from the wildly popular VBTV show, as "Professor ILDasm" from a series that never went beyond the first pilot episode, but my real job is technical lead in the WebData group at Microsoft. Prior to joining Microsoft I was an associate professor at Utrecht University and adjunct professor at the Oregon Graduate Institute in Portland. I am one of the proud designers of the standard lazy functional programming language Haskell98.
My holy grail is to hide complicated mechanisms behind simple abstractions. Programming languages are an ideal medium to achieve this, and I am continuously looking for widely used APIs and often occurring programming pattern boilerplate to promote into first class language features. Currently my targets are XML and SQL, and asynchronous programming. By providing deep language support for these concepts, it hopefully becomes easier to program distributed three-tier applications.
I maintain a blog at http://blogs.gotdotnet.com/emeijer/.