Perspectives in Software Engineering
ACM Computing Surveys (CSUR)
Algorithmic Language and Program Development
Algorithmic Language and Program Development
Existential Quantifiers in Abstract Data Types
Proceedings of the 6th Colloquium, on Automata, Languages and Programming
Prospects of New Tools for Software Development
Proceedings of the 3rd Conference of the European Cooperation in Informatics on Trends in Information Processing Systems
Rationale for the design of the Ada programming language
ACM SIGPLAN Notices - Rationale for the deisgn of the Ada programming language
Formal Program Construction by Transformations-Computer-Aided, Intuition-Guided Programming
IEEE Transactions on Software Engineering
Software process a` la algebra: OBJ for OBJ
ICSE '90 Proceedings of the 12th international conference on Software engineering
Exception handling: Formal specification and systematic program construction
ICSE '84 Proceedings of the 7th international conference on Software engineering
A requirement model for the 5th generation
ACM '84 Proceedings of the 1984 annual conference of the ACM on The fifth generation challenge
Hi-index | 0.00 |
Due to modern technology, software will to an increasing extent be frozen into hardware. This is just one example for situations where bugs in the software are absolutely intolerable. Therefore programming must soon become a safe process of program Construction; that is, it has to be organized as a sequence of steps of rational reasoning. Starting from an elaborate formal problem specification using elements of predicate logic, set theory and primitives from some algebras, the application of formal rules leads to algorithmic versions and finally to programs oriented towards the instruction repertoire of particular concrete machines. A genuine program construction process needs strict formalization throughout. All versions including the specifications can conveniently be represented by one programming language comprising the complete spectrum of descriptive, applicative and procedural styles. Such a language includes the concept of nondeterminism, which makes the development process transparent and extremely flexible, and it is to be interpreted by some model of the underlying abstract data types. The use of formally proved transformation rules guarantees this correctness. In addition, the transformational approach is universal in the sense that the collection of rules can be adapted to the application in question: Although initially envisaged and mainly used now for the construction of software for classical sequential stored-program machines, the approach can be extended to other computational models corresponding to the often cited innovative hardware architectures.