Cambridge Computer Science  
  • View basket
  • Help
Home > Computer Science > Computer Science 2006 > Applied Logic and Programming Languages

Your next step

Cambridge Alerts

Customer services

Computer Science 2006 - Applied Logic and Programming Languages

How to Prove It Add to basket

How to Prove It
A Structured Approach

Daniel J. Velleman

Geared to preparing students to make the transition from solving problems to proving theorems, this text teachs them the techniques needed to read and write proofs. The book begins with the basic concepts of logic and set theory, to familiarize students with the language of mathematics and how it is interpreted. These concepts are used as the basis for a step-by-step breakdown of the most important techniques used in constructing proofs. To help students construct their own proofs, this new edition contains over 200 new exercises, selected solutions, and an introduction to Proof Designer software. No background beyond standard high school mathematics is assumed.

Learn more...
Specifying Software Add to basket

Specifying Software
A Hands-On Introduction

R. D. Tennent

This innovative volume provides a hands-on introduction to techniques for specifying the behavior of software components. A text for a second-year undergraduate course in Computer Science and Computer Engineering programs, it is also suitable for self-study. This book will help students to improve their 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 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. The presentation is based on numerous examples and case studies appropriate to the level of programming expertise of the intended readership.

Learn more...
UML by Example Add to basket

UML by Example

Ghinwa Jalloul

Ghinwa Jalloul's step-by-step introduction to object-oriented software development is suitable for teacher training as well as for practicing software engineers. Jalloul presents seven complete case studies and several smaller examples documented in UML, derived from small software projects developed for, and delivered to, real users. They are preceded by an overview of the object-oriented modeling artifacts in UML, on which the remainder of the book relies. The case studies provide a medium for experimental use and act as templates that can be tailored by readers to fit specific needs and circumstances.

Learn more...
Java Outside In Add to basket

Java Outside In

Ethan D. Bolker, Bill Campbell

This book and CD set treats learning a programming language much like learning a spoken language: programming is best learned by immersion. Through building interesting programs and addressing real design issues much earlier than other texts, this book moves beyond the placement of semicolons and other syntactic details and is able to discuss the architecture of serious programs: how delegation and inheritance allow objects to cooperate to do useful work. Throughout the text, the authors deal with programs that implement applications realistic enough to be convincing.

Learn more...
Memory as a Programming Concept in C and C++ Add to basket

Memory as a Programming Concept in C and C++

Frantisek Franek

Assuming readers have a basic familiarity with C or C++, Frantisek Franek describes the techniques, methods and tools available to develop effective memory usage. The overwhelming majority of "bugs" and crashes in computer programming stem from problems of memory access, allocation, or deallocation. Such memory related errors are notoriously difficult to resolve. Moreover, the role that memory plays in C and C++ programming is a subject often overlooked in courses and in books. Most professional programmers learn about it entirely through actual experience of the problems it causes.

Learn more...
Object-Oriented Programming via Fortran 90/95 Add to basket

Object-Oriented Programming via Fortran 90/95

Ed Akin

Writing technical applications in a modern object-oriented approach, using Fortran 90 or 95, can be problematic. This book teaches how to employ the principles of object-oriented programming to produce clear, highly efficient executable codes (rather than focusing on the traditional procedural abilities of Fortran). This text is an excellent harbinger to all the features of the finalized, fully object-oriented Fortran 200X. In addition to covering the OOP methodologies, the basic foundation of the language and solid programming skills are reviewed, making the book valuable also as a good migration tool for experienced Fortran programmers that want to smoothly pick up the OOP paradigm. The author highlights common themes by using comparisons with Matlab® and C++ and uses numerous cross-referenced examples to convey all concepts quickly and clearly. Complete code for the examples is included on the accompanying CD.

Learn more...
Logic, Induction and Sets Add to basket

Logic, Induction and Sets

Thomas Forster

Philosophical considerations, which are often ignored or treated casually, are given careful consideration in this introduction. Thomas Forster places the notion of inductively defined sets (recursive datatypes) at the center of his exposition resulting in an original analysis of well established topics. The presentation illustrates difficult points and includes many exercises. Little previous knowledge of logic is required and only a knowledge of standard undergraduate mathematics is assumed.

Learn more...
Object-Oriented Programming with Visual Basic.NET Add to basket

Object-Oriented Programming with Visual Basic.NET

Michael McMillan

After an introduction to abstract data types and their initial implementation using structures, Michael McMillan analyzes standard OOP topics, including class design, inheritance, access modifiers and scoping issues, abstract classes, design and implementation of interfaces and design patterns, and refactoring in VB.NET. More advanced OOP topics are covered as well (reflection, object persistence, and serialization.) Finally, he demonstrates OOP techniques for standard Windows applications; for database applications using ADO.NET; for Web-based applications using ASP.NET; and for Windows service applications.

Learn more...
The Object Primer Add to basket

The Object Primer
Agile Model-Driven Development with UML 2.0

Scott W. Ambler

Scott Ambler, award-winning author of Building Object Applications that Work, Process Patterns, and More Process Patterns, has revised his acclaimed first book, The Object Primer. Long prized by both students and professionals as the best introduction to object-oriented technology, this book is now completely up-to-date, with all modeling notation rewritten in the just-released UML 2.0. All chapters have been revised to take advantage of Agile Modeling (AM), which is presented in the new chapter 2 along with other important new modeling techniques. Review questions at the end of each chapter allow readers to test their newly acquired knowledge. In addition, Ambler takes time to reflect on the lessons learned over the past few years by discussing the proven benefits and drawbacks of the technology. This is the perfect book for any software development professional or student seeking an introduction to the concepts and terminology of object technology.

Learn more...
Logic in Computer Science Add to basket

Logic in Computer Science
Modelling and Reasoning about Systems

Michael Huth, Mark Ryan

The second edition of this successful textbook continues to provide a clear introduction to formal reasoning relevant to the needs of modern computer science and sufficiently exacting for practical applications. Improvements have been made throughout with many new and expanded text sections. The coverage of model-checking has been substantially updated and additional exercises are included. Internet support includes worked solutions for teacher exercises and model solutions to some student exercises.

Learn more...
The Pi-Calculus Add to basket

The Pi-Calculus
A Theory of Mobile Processes

Davide Sangiorgi, David Walker

Mobile systems, whose components communicate and change their structure, now pervade the informational world and the wider world of which it is a part. The science of mobile systems is as yet immature, however. This book presents the pi-calculus, a theory of mobile systems. The pi-calculus provides a conceptual framework for understanding mobility, and mathematical tools for expressing systems and reasoning about their behaviours. The book serves both as a reference for the theory and as an extended demonstration of how to use pi-calculus to describe systems and analyse their properties. It covers the basic theory of pi-calculus, typed pi-calculi, higher-order processes, the relationship between pi-calculus and lambda-calculus, and applications of pi-calculus to object-oriented design and programming. The book is written at the graduate level, assuming no prior acquaintance with the subject, and is intended for computer scientists interested in mobile systems.

Learn more...
Data Structures and Algorithms Using Visual Basic.NET Add to basket

Data Structures and Algorithms Using Visual Basic.NET

Michael McMillan

Including a tutorial on how to use data structures and algorithms and a reference for implementation using VB.NET and the .NET Framework Class Library, this is the first Visual Basic.NET book to provide a comprehensive discussion of the major data structures and algorithms. Michael McMillan presents arrays and arraylists, linked lists, hash tables, dictionaries, trees, graphs, sorting and searching as well as more advanced algorithms, such as probabilistic algorithms and dynamic programming in an object-oriented fashion. Finally, the professional or student VB.NET programmer has a dedicated reference instead of having to translate material on C++ or Java.

Learn more...
Linear Logic in Computer Science Add to basket

Linear Logic in Computer Science

Edited by Thomas Ehrhard, Jean-Yves Girard, Paul Ruet, Philip Scott

Linear Logic is a branch of proof theory which provides refined tools for the study of the computational aspects of proofs. These tools include a duality-based categorical semantics, an intrinsic graphical representation of proofs, the introduction of well-behaved non-commutative logical connectives, and the concepts of polarity and focalisation. These various aspects are illustrated here through introductory tutorials as well as more specialised contributions, with a particular emphasis on applications to computer science: denotational semantics, lambda-calculus, logic programming and concurrency theory. The volume is rounded-off by two invited contributions on new topics rooted in recent developments of linear logic. The book derives from a summer school that was the climax of the EU Training and Mobility of Researchers project 'Linear Logic in Computer Science'. It is an excellent introduction to some of the most active research topics in the area.

Learn more...
The Elements of UML™ 2.0 Style Add to basket

The Elements of UML™ 2.0 Style

Scott W. Ambler

For all developers who create models using the Unified Modeling Language (UML) 2.x The Elements of UML™ 2.0 Style sets the rules for style that will improve your productivity - especially in teams, where understandability and consistency are critical. Coming from renowned UML expert Scott Ambler, the book furnishes a set of rules for modelling in the UML and describes a collection of standards and guidelines for creating effective UML diagrams that will be concise and easy to understand. It provides conventions for: Class diagrams; Timing Diagrams; Use case diagrams; Composite Structure Diagrams; Sequence diagrams; Interaction Overview Diagrams; Activity diagrams; Object diagrams; State machine diagrams; Package diagrams; Communication diagrams; Deployment diagrams and Component diagrams. The Elements of UML™ 2.0 Style sets the rules for style that will improve your productivity.

Learn more...
The Haskell School of Expression Add to basket

The Haskell School of Expression
Learning Functional Programming through Multimedia

Paul Hudak

Functional programming is a style of programming that emphasizes the use of functions (in contrast to object-oriented programming, which emphasizes the use of objects). It has become popular in recent years because of its simplicity, conciseness, and clarity. This book teaches functional programming as a way of thinking and problem solving, using Haskell, the most popular purely functional language. Rather than using the conventional (boring) mathematical examples commonly found in other programming language textbooks, the author uses examples drawn from multimedia applications, including graphics, animation, and computer music, thus rewarding the reader with working programs for inherently more interesting applications. Aimed at both beginning and advanced programmers, this tutorial begins with a gentle introduction to functional programming and moves rapidly on to more advanced topics. Details about progamming in Haskell are presented in boxes throughout the text so they can be easily found and referred to.

Learn more...
Communicating and Mobile Systems Add to basket

Communicating and Mobile Systems
The Pi Calculus

Robin Milner

Communication is a fundamental and integral part of computing, whether between different computers on a network, or between components within a single computer. In this book Robin Milner introduces a new way of modelling communication that reflects its position. He treats computers and their programs as themselves built from communicating parts, rather than adding communication as an extra level of activity. Everything is introduced by means of examples, such as mobile phones, job schedualers, vending machines, data structures, and the objects of object-oriented programming. But the aim of the book is to develop a theory, the pi-calculus, in which these things can be treated rigorously.

Learn more...
Fundamentals of OOP and Data Structures in Java Add to basket

Fundamentals of OOP and Data Structures in Java

Richard Wiener, Lewis J. Pinson

Fundamentals of OOP and Data Structures in Java presents the fundamentals of Object-Oriented Programming (OOP) and Graphical User Interface (GUI) programming with Java as the example language. Wiener and Pinson introduce each of the major data structures with supporting, GUI-based laboratory programs designed to reinforce the basic concepts and principles. These laboratories allow the reader to explore and experiment with the properties of each data structure. All source code for the laboratories is available on the Web. By integrating the principles of OOP and GUI programming, this unique book presents the fundamental issues of data structures within the context of paradigms that are essential to today's professional software developer. The text assumes only an elementary understanding of Java and no experience with OOP.

Learn more...
Lectures in Logic and Set Theory Add to basket

Lectures in Logic and Set Theory
Volume 1

George Tourlakis

This two-volume work bridges the gap between introductory expositions of logic (or set theory) and the research literature. It can be used as a text in an advanced undergraduate or beginning graduate course in mathematics, computer science, or philosophy. The volumes are written in a user-friendly lecture style that makes them equally effective for self-study or class use. Volume I includes formal proof techniques, applications of compactness (including nonstandard analysis), computability and its relation to the completeness phenonmenon, and the first presentation of a complete proof of Godel's 2nd incompleteness since Hilbert and Bernay's Grundlagen.

Learn more...
Lectures in Logic and Set Theory Add to basket

Lectures in Logic and Set Theory
Volume 2

George Tourlakis

Volume II, on formal (ZFC) set theory, incorporates a self-contained "chapter 0" on proof techniques so that it is based on formal logic, in the style of Bourbaki. The emphasis on basic techniques provides a solid foundation in set theory and a thorough context for the presentation of advanced topics (such as absoluteness, relative consistency results, two expositions of Godel's construstive universe, numerous ways of viewing recursion and Cohen forcing).

Learn more...
Add to basket

The Elements of Java™ Style

Allan Vermeulen, Scott W. Ambler, Greg Bumgardner, Eldon Metz, Trevor Misfeldt, Jim Shur

The Elements of Java Style, written by renowned author Scott Ambler, Alan Vermeulen, and a team of programmers from Rogue Wave Software, is directed at anyone who writes Java code. Many books explain the syntax and basic use of Java; however, this essential guide explains not only what you can do with the syntax, but what you ought to do. Just as Strunk and White's The Elements of Style provides rules of usage for the English language, this text furnishes a set of rules for Java practitioners. While illustrating these rules with parallel examples of correct and incorrect usage, the authors offer a collection of standards, conventions, and guidelines for writing solid Java code that will be easy to understand, maintain, and enhance. Java developers and programmers who read this book will write better Java code, and become more productive as well. Indeed, anyone who writes Java code or plans to learn how to write Java code should have this book next to his/her computer.

Learn more...
Concepts in Programming Languages Add to basket

Concepts in Programming Languages

John C. Mitchell

Concepts in Programming Languages elucidates the central concepts used in modern programming languages, such as functions, types, memory management, and control. The book is unique in its comprehensive presentation and comparison of major object-oriented programming languages. Separate chapters examine the history of objects, Simula and Smalltalk, and the prominent languages C++ and Java. The author presents foundational topics, such as lambda calculus and denotational semantics, in an easy-to-read, informal style, focusing on the main insights provided by these theories. Advanced topics include concurrency, concurrent object-oriented programming, program components, and inter-language interoperability. A chapter on logic programming illustrates the importance of specialized programming methods for certain kinds of problems.

Learn more...
The Description Logic Handbook Add to basket

The Description Logic Handbook
Theory, Implementation and Applications

Edited by Franz Baader, Diego Calvanese, Deborah McGuinness, Daniele Nardi, Peter Patel-Schneider

Description Logics are knowledge representation languages that have been studied extensively in artificial intelligence over the last two decades. This Handbook covers all aspects of research in this field; including theory, implementation, and applications. Its appeal is broad, ranging from more theoretically-oriented readers, to those with more practically-oriented interests who need a sound and modern understanding of knowledge representation systems based on Description Logics. The chapters by some of the most prominent researchers in the field first introduce the basic technical material before addressing the current state of the subject. This unique reference can also be used for self-study or in conjunction with knowledge representation and artificial intelligence courses.

Learn more...
Introduction to Lattices and Order Add to basket

Introduction to Lattices and Order

B. A. Davey, H. A. Priestley

Ordered structures have been increasingly recognized in recent years due to an explosion of interest in theoretical computer science and all areas of discrete mathematics. This book covers areas such as ordered sets and lattices. A key feature of ordered sets, one which is emphasized in the text, is that they can be represented pictorially. Lattices are also considered as algebraic structures and hence a purely algebraic study is used to reinforce the ideas of homomorphisms and of ideals encountered in group theory and ring theory. Exposure to elementary abstract algebra and the rotation of set theory are the only prerequisites for this text. For the new edition, much has been rewritten or expanded and new exercises have been added.

Learn more...
The Standard ML Basis Library Add to basket

The Standard ML Basis Library

Edited by Emden R. Gansner, John H. Reppy

SML is an influential programming language that represents many state-of-the-art aspects of language design in a form usable for everyday programming. The language is in use worldwide, with applications ranging from network communication to theorem proving. The definition for SML's standard library, this work concisely describes the types and functions defined in the library and discusses in depth the library's design and use. This manual will be an indispensable reference for students, professional programmers, and language designers.

Learn more...
Alfred Tarski Add to basket

Alfred Tarski
Life and Logic

Anita Burdman Feferman, Solomon Feferman

Jon Lee focuses on key mathematical ideas leading to useful models and algorithms, rather than on data structures and implementation details, in this introductory graduate-level text for students of operations research, mathematics, and computer science. The viewpoint is polyhedral, and Lee also uses matroids as a unifying idea. Topics include linear and integer programming, polytopes, matroids and matroid optimization, shortest paths, and network flows. Problems and exercises are included throughout as well as references for further study.

Learn more...
Knowledge Representation, Reasoning and Declarative Problem Solving Add to basket

Knowledge Representation, Reasoning and Declarative Problem Solving

Chitta Baral

Knowledge management and knowledge-based intelligence are areas of importance in today's economy and society, and their exploitation requires representation via the development of a declarative interface whose input language is based on logic. Chitta Baral demonstrates how to write programs that behave intelligently by giving them the ability to express knowledge and reason about it. He presents a language, AnsProlog*, for both knowledge representation and reasoning, and declarative problem solving. Many of the results have never appeared before in book form but are organized here for those wishing to learn more about the subject, either in courses or through self-study.

Learn more...
Modern Compiler Implementation in Java Add to basket

Modern Compiler Implementation in Java

Andrew W. Appel, With Jens Palsberg

This textbook describes all phases of a compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It includes thorough coverage of current techniques in code generation and register allocation, and the compilation of functional and object-oriented languages. The most accepted and successful techniques are described and illustrated with actual Java^TM® classes. The first part is suitable for a one-semester first course in compiler design. The second part; which includes the compilation of object-oriented and functional languages, garbage collection, loop optimization, SSA form, instruction scheduling, and optimization for cache-memory hierarchies; can be used for a second-semester or graduate course. This new edition includes more discussion of Java and object-oriented programming concepts such as visitor patterns plus a new Mini-Java programming project. A unique feature is the newly redesigned compiler project in Java for a subset of Java itself. The project includes both front-end and back-end phases.

Learn more...
Principles of Constraint Programming Add to basket

Principles of Constraint Programming

Krzysztof Apt

Scheduling, vehicle routing and timetabling are all examples of constraint problems, and methods to solve them rely on the idea of constraint propagation and search. This book meets the need for a modern, multidisciplinary introduction to the field that covers foundations and applications. Written by Krzysztof Apt, an authority on the subject, it will be welcomed by graduate students and professionals. With the insertion of constraint techniques into programming environments, new developments have accelerated the solution process. Constraint programming combines ideas from artificial intelligence, programming languages, databases, and operational research.

Learn more...
Haskell 98 Language and Libraries Add to basket

Haskell 98 Language and Libraries
The Revised Report

Edited by Simon Peyton Jones

Haskell is the world's leading lazy functional programming language and is widely used in teaching, research, and applications. The language continues to develop rapidly, but in 1998 the programming community decided to capture a stable snapshot of the language by introducing Haskell 98. This book constitutes the agreed definition of Haskell 98, the language itself as well as its supporting libraries, and should be a standard reference work for anyone involved in research, teaching, or applications. All Haskell compilers support Haskell 98, so professioanls and educators have a stable base for their work.

Learn more...
Rippling: Meta-Level Guidance for Mathematical Reasoning Add to basket

Rippling: Meta-Level Guidance for Mathematical Reasoning

Alan Bundy, David Basin, Dieter Hutter, Andrew Ireland

The automation of mathematical reasoning has been an important topic of research almost since computers were invented. The new technique of rippling, described here for the first time in book form, is designed to be an approach to mathematical reasoning that takes into account ideas of heuristics and searching. Rippling addresses the problem of combinatorial explosion which has proved a huge obstacle in the past, and the book offers a systematic and comprehensive introduction to this and to the wider subject of automated inductive theorem proving.

Learn more...
The Elements of C++ Style Add to basket

The Elements of C++ Style

Trevor Misfeldt, Gregory Bumgardner, Andrew Gray

The Elements of C++ Style is for all C++ practitioners, especially for those working in teams where consistency is critical. Just as Strunk and White's The Elements of Style provides rules of usage for writing in the English language, this text furnishes a set of rules for writing in C++. The authors offer a collection of standards and guidelines for creating solid C++ code that will be easy to understand, enhance and maintain. The book provides conventions for formatting, naming, documentation, programming, and packaging for the latest ANSI standard of C++, and also includes discussion of advanced topics such as templates.

Learn more...