Specifying Software. An Hands-On Introduction

Par : Robert-D Tennent
Formats :
  • Nombre de pages300
  • PrésentationBroché
  • Poids0.49 kg
  • Dimensions15,5 cm × 23,5 cm × 2,1 cm
  • ISBN0-521-00401-2
  • EAN9780521004015
  • Date de parution09/08/2002
  • ÉditeurCambridge University Press

Résumé

This innovative volume provides a hands-on introduction to techniques for specifying the behavior of software components. Featured topics include techniques for using programmer-friendly assertional notations to specify, develop, and verify small but nontrivial algorithms and data representations and for using state diagrams, grammars, and regular expressions to specify and develop recognizers for formal languages. The presentation is based on numerous examples and case studies. It is appropriate for second- and third-year computer science and computer engineering students familiar with basic concepts of discrete mathematics and logic. Using this book will help readers improve their programming skips and develop a solid foundation for subsequent courses in advanced algorithms and data structures, software design, formal methods, compilers, programming languages, and theory.
R. D. Tennent is Professor of Computing and Information Science at Queen's University in Kingston, Canada, where he has been teaching since 1971. He has also held visiting positions at the University of Grenoble, Oxford University, and the University of Edinburgh. He has published three other books - Principles of Programming Languages (1981), Semantics of Programming Languages (1991), and Algol-like Languages (1997, co-edited with Peter O'Hearn) as well as more than 25 articles in scientific journals. His research interests encompass the design, description, and effective implementation and use of programming languages including: denotational semantics; applications of formal semantics to language design; formal systems for specifying, developing, and verifying programs; advanced type systems and their description; integration of functional and procedural programming; and programming methodology.