This paper shows the outlines of the Slam project, designed for automating the Iterative Rapid Prototyping Process. The Slam project system includes a very expressive object oriented specification language that integrates algebraic specifications and model-based specifications. Class operations are defined by using rules each of them with logical pre- and post-conditions but with a functional flavour. The main novel feature of the system is that contains a development environment that, among other features, is able to generate (reasonable) efficient and readable code in another high level object oriented language (C++, Java, etc.). The generated code includes (part of) the pre- and post-conditions as assertions, that can be automatically checked in the debug mode execution of programs. Slam can be used to generate prototypes that can be used to validate the requirements with the user. The additional advantage is that the prototype is not throw-away because most part of the generated code can be used at it is and the other part can be optimized with the additional help of the declarative debugging of the modified code.
The paper presents some aspects of the debugging subsystem of the ongoing project Slam where the language Curry plays a significant role. The Slam project is an attempt to amalgamate most of the best facilities of declarative languages to the development of imperative programs. The Slam system is composed by (i) an object oriented specification language. (Functional style) Rules are used to define class operations each of them with logical pre and post-conditions. (ii) A development environment that, among other features, is able to generate readable code in a high level object oriented (imperative) language. (iii) The generated code includes (part of) the pre and post-conditions as assertions, that can be automatically checked in the debug mode execution of programs. We concentrate on the latter aspect. Many useful properties can be expressed in the Slam language and these properties are translated into a Curry program that is linked (via an adequate interface) with the generated program. The Curry execution is responsible for checking properties, interacting with the debugging execution of the program.
This paper shows the debugging facilities provided by the SLAM system. The SLAM system includes (i) a specification language that integrates algebraic specifications and model-based specifications using the object oriented model. Class operations are defined by using rules each of them with logical pre and postconditions but with a functional flavour. (ii) A development environment that, among other features, is able to generate readable code in a high level object oriented language. (iii) The generated code includes (part of) the pre and postconditions as assertions, that can be automatically checked in the debug mode execution of programs. We focus on this last aspect. The SLAM language is expressive enough to describe many useful properties and these properties are translated into a Prolog program that is linked (via an adequate interface) with the user program. The debugging execution of the program interacts with the Prolog engine which is responsible for checking properties.
This file was generated by bibtex2html 1.98.