Bertrand Meyer, provavelmente o maior guru de sempre do paradigma dos objectos, inventor da programação por contrato e pai da linguagem Eiffel, visita o DI no dia 6 de Junho. É muito importante que todos assistam às suas palestras. Marquem na vossa agenda!
Para terem uma ideia mais clara de quem é este senhor, vejam:
http://www.inf.ethz.ch/personal/meyer/
O programa das suas apresentações no DI é o seguinte:
Attached types and the eradication of void calls
Bertrand Meyer, ETH Zurich and Eiffel Software
Segunda-Feira, 6 de Junho de 2005 11h00m
Over the execution of programs in an object-oriented language hangs the sword of Damocles of a "void call". This talk presents a general solution to eliminate this risk. A void call is a run-time attempt to execute a typical object-oriented call, x.f (args), while x is "void" or "null", meaning that it is not attached to any object. The result will be an exception and usually abnormal execution termination -- a crash.
Rather than waiting until run time to find out, it is desirable to flag any case that can trigger this event statically, as part of the compilation process, in the same way that compilers for a typed O-O language guarantee that if there is an object it will be equipped with the proper `f'. Can we extend the type system in a simple and understandable way to eliminate void calls entirely, without putting undue expressive constraints on the programmer?
The mechanism presented in this talk appears to address the problem in an economical way. The solution turns out to have several other applications as well. One is to the eradication of "catcalls", another risk of crash, which follows from the application of a covariant argument typing policy. The other is to a problem of concurrent object-oriented programming: how to guarantee object locking in a simple way, but also minimally, so that object reservation occurs when and only when absolutely required.
The mechanism also provides improvements over existing solutions to two other problems of object-oriented development: forcing a type on an object (type-safe casts); and lazy evaluation of object fields ("once per object").
The mechanism adds only one symbol (the question mark) to the language and replaces a construct, Assignment Attempt, by a simpler one, Object Test. Most of the effect is achieved through new validity rules on existing constructs. The mechanism is part of the draft ECMA standard for Eiffel. Various examples will be presented, as well as a discussion of benefits and limitations.
Touch of class: modern programming education through objects, contracts and components
Bertrand Meyer, ETH Zurich and Eiffel Software
Segunda-Feira, 6 de Junho de 2005 15H00M
Teaching introductory programming in a form that will give future Information Technology professionals a head start raises many challenges: focusing on long-term skills rather than fashionable toys of the moment, introducing a degree of rigor without losing the practical touch, keeping abreast of the most exciting new technologies, devising appropriate exercises that can't be solved by just googling the results, providing a first introduction to professional software engineering, tackling big enough examples to give students an idea of real software development.
The introductory programming courses at ETH Zurich were redesigned two years ago with these concerns in mind, using an approach that is fully object-oriented right from the start and fundamentally relies on the concepts of Design by Contract. Another crucial principle is reliance on software reuse: we provide the students, right from the beginning, with a large graphical and multimedia library which they are invited to reuse initially as pure clients, through abstract interfaced and contracts; they can then discover the details little by little, "outside-in", and in the end extend it themselves, through a process also called the Inverted Curriculum. A textbook in progress, Touch of Class, supports the approach. The library is in the public domain.
The progress of the students is carefully monitored through systematic analysis of weekly exercises and questionnaires, so that we are able to evaluate objectively how the course succeeds.
We believe that our experience provides a blueprint of how best to educate Information Technology professionals for the challenges that await them in the coming decades. A number of universities have already adopted the approach. We will describe our techniques and the result of this experience over the past two years, presenting the benefits achieved and the problems that remain.