Programming by Contract: Advanced Principles and Specifying Abstract Data Types
James C. McKim, Jr., Hartford Graduate Center, USA
Richard Mitchell, University of Brighton, UK
In this tutorial we provide a number of Principles for using PBC to
rigorously document class interfaces in a way that is accessible to technically
oriented software developers. With each Principle we present an example,
a justification, and advice about when it might be appropriate to violate
the Principle (and how to document such violations). Finally, we will present
recent work that shows that many of the classic Abstract Data Types may
be specified using these principles and the mechanisms for supporting PBC
that are available in Eiffel today.
JIM MCKIM has more than twenty years experience teaching mathematics and computer science. He has authored, coauthored and reviewed a number of textbooks and articles in both areas. His research interests include object oriented programming and design in general, and class interface specification in particular.
RICHARD MITCHELL has been teaching, researching and consulting in the computing field since 1978, specializing in software engineering. For the last 5 years, his work has focussed on object technology.
Object Technology for Scientific Programming
Paul Dubois, LLNL
This tutorial shows how to design reusable scientific software components
in object-oriented languages, with an emphasis on the speaker's designs
for the EiffelMath Library. Examples are given from both Eiffel and C++
applications. Mixed-language implementation issues and performance issues
are discussed.
PAUL DUBOIS is a mathematician at Lawrence Livermore National Laboratory. He is responsible for large projects in Fortran and C++ for the Inertial Confinement Fusion Program. He is author of the EiffelMath Library, and editor of the Scientific Programming Department of Computers in Physics.
Paul F. Dubois, LLNL, USA
Python is an object-oriented interpreted language which is small and
easy to learn. It is very easy to extend Python with your own compiled
code or to embed Python into your own application. Python is very portable,
available at no cost, has a large library of user-contributed modules,
and an active international user community. Python is particularly useful
for Web applications and there are extensive library components in this
area. This tutorial will include an introduction to the new array extension
which permits near- compiled-speed numerical computations, and basic pointers
on how to get started if you want to combine Python with your own C, C++,
Fortran, or Eiffel.
PAUL DUBOIS is a mathematician at Lawrence Livermore National Laboratory. He is responsible for large projects in Fortran and C++ for the Inertial Confinement Fusion Program. He is author of the EiffelMath Library, and editor of the Scientific Programming Department of Computers in Physics.
Yossi Gil, Technion-Israel Institute of Technology, Israel
The SPARTAN C++ (Style for fault Prevention and Rigorous Techniques
for Attuning and Normalizing C++) methodology was developed at the Software
Systems Laboratory in cooperation with software industry. It comprises
a set of Spartan C++ coding rules which, without limiting creativity and
expressiveness, allows programmers to concentrate on implementation rather
than on fault search. Debugging using The presentation also gives guidelines
for migration to and adapting implementing SPARTAN C++.
YOSSI GIL is an independent consultant the director of the Software Systems Laboratory at the Faculty of Computer Science at the Technion. He has conducted numerous industrial tutorials and course on UNIX internals, C, C++, OOP, OOD and User Interfaces. His current research focuses on software technology and parallel processing.
[an error occurred while processing this directive]