Our systems are now restored following recent technical disruption, and we’re working hard to catch up on publishing. We apologise for the inconvenience caused. Find out more

Recommended product

Popular links

Popular links


Specifying Software

Specifying Software

Specifying Software

A Hands-On Introduction
R. D. Tennent, Queen's University, Ontario
February 2002
Paperback
9780521004015
$59.99
USD
Paperback
USD
Hardback

    Provides an innovative hands-on introduction to techniques for specifying the behaviour of software components. It is primarily intended for use as a text book for a course in the 2nd or 3rd year of Computer Science and Computer Engineering programs, but it is also suitable for self-study. Using this book will help the reader improve programming skills and gain a sound foundation and motivation for subsequent courses in advanced algorithms and data structures, software design, formal methods, compilers, programming languages, and theory. The presentation is based on numerous examples and case studies appropriate to the level of programming expertise of the intended readership. The main topics covered are techniques for using programmer-friendly assertional notations to specify, develop, and verify small but non-trivial algorithms and data representations, and the use of state diagrams, grammars, and regular expressions to specify and develop recognizers for formal languages.

    • Theoretical material oriented to practical use
    • Hands-on approach based on small programming examples
    • Minimal prerequisites allow specification to be taught early in the undergraduate curriculum

    Reviews & endorsements

    "I would like to single out both the author's approach and his style of presentation as very positive features of the book. Reading this book is definitely inspiring..." Computing Reviews

    See more reviews

    Product details

    February 2002
    Paperback
    9780521004015
    302 pages
    235 × 156 × 23 mm
    0.48kg
    29 b/w illus. 1 table 215 exercises
    Available

    Table of Contents

    • Introduction
    • Part I. Algorithms:
    • 1. Specifying algorithms
    • 2. Verifying algorithms: basic techniques
    • 3. Verifying algorithms: some examples
    • 4. Additional verification techniques
    • Part II. Data Representations:
    • 5. Data representation: a case study
    • 6. Data representation: additional examples
    • Part III. Language Recognizers:
    • 7. Basic concepts
    • 8. State-transition diagrams
    • 9. Regular languages
    • 10. Context-free languages
    • 11. Parsing
    • 12. A taste of computability theory
    • Appendix A: programming language reference
    • Appendix B: hints for selected exercises
    • Index.