[ TOOLS USA'96 | Tutorials | Conferences | STOT | Practical Information | Registration ]

[ Reuse | Internet, Distribution, Concurrency | Analysis & Design | O-O Methods | Applications & Techniques ]

TOOLS USA '96

Tutorial Program

Applications and Techniques Track


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.


An Introduction to Python

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.


Spartan C++

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]