We use cookies to distinguish you from other users and to provide you with a better experience on our websites. Close this message to accept cookies or find out how to manage your cookie settings.
To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
This textbook is designed as a first book on concurrent programming for computer science undergraduates, and provides a comprehensive introduction to the problems of concurrency. Concurrency is of vital importance in many areas of computer science, particularly in operating systems. It is also increasingly being taught in undergraduate courses. The book builds on the student's familiarity with sequential programming in a high level language, which will make it very accessible to computer science students. The book is concerned mainly with the high level aspects of concurrency, which will be equally applicable to traditional time sliced or more recent truly parallel systems.
This textbook is an introduction to denotational semantics and its applications to programming languages. Dr Allison emphasizes a practical approach and the student is encouraged to write and test denotational definitions. The first section is devoted to the mathematical foundations of the subject and sufficient detail is given to illustrate the fundamental problems. The remainder of the book covers the use of denotational semantics to describe sequential programming languages such as Algol, Pascal and C. Throughout, numerous exercises, usually in Pascal, will help the student practise writing definitions and carry out simple applications. The book culminates in discussing an executable semantics of the logic-programming language Prolog. Being an introduction, advanced undergraduates in computer science and graduates new to the subject will find this a readily accessible account of one of the central topics of computer science.
This textbook is an introduction to the design and writing of computer programs. It leads the reader through all the stages of program construction from the original specifications through to the final program. The formal verification of intermediate versions of the program is studied in considerable detail. The authors show how, given the formal specification of a program, data structure and program structure diagrams are drawn and then converted into a procedural program in a program design language (PDL). They demonstrate the conversion of PDL into a variety of real programming languages including Pascal, FORTRAN, COBOL, and Assembler. The book also includes chapters on abstract data types, analysing existing programs, and a small case study. First-year undergraduates in computer science and graduates taking courses in computing will find this a comprehensive introduction to program construction.
This book is devoted to recursion in programming, the technique by which the solution to a problem is expressed partly in terms of the solution to a simpler version of the same problem. Ultimately the solution to the simplest version must be given explicitly. In functional programming, recursion has received its full due since it is quite often the only repetitive construct. However, the programming language used here is Pascal and the examples have been chosen accordingly. It makes an interesting contrast with the use of recursion in functional and logic programming. The early chapters consider simple linear recursion using examples such as finding the highest common factor of a pair of numbers, and processing linked lists. Subsequent chapters move up through binary recursion, with examples which include the Towers of Hanoi problem and symbolic differentiation, to general recursion. The book contains well over 100 examples.
Category theory has become increasingly important and popular in computer science, and many universities now have introductions to category theory as part of their courses for undergraduate computer scientists. The author is a respected category theorist and has based this textbook on a course given over the last few years at the University of Sydney. The theory is developed in a straightforward way, and is enriched with many examples from computer science. Thus this book meets the needs of undergradute computer scientists, and yet retains a level of mathematical correctness that will broaden its appeal to include students of mathematics new to category theory.
Recommend this
Email your librarian or administrator to recommend adding this to your organisation's collection.