Not very long ago, the uninhibited use of mathematics in the development of software was regarded as something for academics alone. Today, there is moreand more interest from industry in formal methods based on mathematics. This interest has come from the success of a number of experiments on real industrial applications. Thus, there is not only a belief, but also evidence, that the study of computer programs as mathematical objects leads to more efficient methods for constructing them. The papers in this volume were presented at the Second International Conference on the Mathematics of Program Construction, held at St. Catherine's College, Oxford, June 29 - July 3, 1992. The conference was organized by the Oxford University Programming Research Group, and continued the theme set by the first - the use of crisp, clear mathematics in the discovery and design of algorithms. The second conference gives evidence of the ever-widening impact of precise mathematical methods in program development. There are papers applying mathematics not only to sequential programs but also to parallel and on-current applications, real-time and reactive systems, and to designs realised directly in hardware. The volume includes 5 invited papers and 19 contributed papers.
Author(s): Rod Burstall (auth.), R. S. Bird, C. C. Morgan, J. C. P. Woodcock (eds.)
Series: Lecture Notes in Computer Science 669
Edition: 1
Publisher: Springer-Verlag Berlin Heidelberg
Year: 1993
Language: English
Pages: 380
Tags: Programming Techniques; Software Engineering; Algorithm Analysis and Problem Complexity; Logics and Meanings of Programs; Mathematical Logic and Formal Languages; Combinatorics
Extended calculus of constructions as a specification language....Pages 1-1
On the economy of doing Mathematics....Pages 2-10
Pretty-printing: An exercise in functional programming....Pages 11-13
True concurrency: Theory and practice....Pages 14-17
Programming for behaviour....Pages 18-31
Calculating a path algorithm....Pages 32-44
Solving optimisation problems with catamorphisms....Pages 45-66
A time-interval calculus....Pages 67-79
Conservative fixpoint functions on a graph....Pages 80-99
An algebraic construction of predicate transformers....Pages 100-121
Upwards and downwards accumulations on trees....Pages 122-138
Distributing a class of sequential programs....Pages 139-162
(Relational) programming laws in the boom hierarchy of types....Pages 163-190
A logarithmic implementation of flexible arrays....Pages 191-207
Designing arithmetic circuits by refinement in Ruby....Pages 208-232
An operational semantics for the guarded command language....Pages 233-249
Shorter paths to graph algorithms....Pages 250-268
Logical specifications for functional programs....Pages 269-290
Inorder traversal of a binary heap and its inversion in optimal time and space....Pages 291-301
A calculus for predicative programming....Pages 302-322
Derivation of a parallel matching algorithm....Pages 323-343
Modular reasoning in an object-oriented refinement calculus....Pages 344-367
An alternative derivation of a binary heap construction function....Pages 368-374
A derivation of Huffman's algorithm....Pages 375-378