ENGINEERING - Cambridge University Press India
ENGINEERING - Cambridge University Press India
ENGINEERING - Cambridge University Press India
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Logic in Computer<br />
Science<br />
Modelling and Reasoning<br />
About Systems<br />
2nd Edition<br />
Michael Huth<br />
Imperial College of<br />
Science, Technology and<br />
Medicine, London<br />
& Mark Ryan<br />
<strong>University</strong> of Birmingham<br />
Recent years have seen the development of<br />
powerful tools for verifying hardware and software<br />
systems, as companies worldwide realise the<br />
need for improved means of validating their<br />
products. There is increasing demand for training<br />
in basic methods in formal reasoning so that<br />
students can gain proficiency in logic-based<br />
verification methods. The second edition of this<br />
successful textbook addresses both those<br />
requirements, by continuing to provide a clear<br />
introduction to formal reasoning which is both<br />
relevant to the needs of modern computer science<br />
and rigorous enough for practical application.<br />
Improvements to the first edition have been made<br />
throughout, with extra and expanded sections on<br />
SAT solvers, existential/ universal second-order<br />
logic, micro-models, programming by contract and<br />
total correctness. The coverage of model-checking<br />
has been substantially updated. Further exercises<br />
have been added. Internet support for the book<br />
includes worked solutions for all exercises for<br />
teachers, and model solutions to some exercises<br />
for students.<br />
Contents: Foreword; 1. Propositional logic;<br />
2. Predicate logic; 3. Verification by model<br />
checking; 4. Program verification; 5. Modal logics<br />
and agents; 6. Binary decision diagrams;<br />
Bibliography; Index.<br />
Digital Systems<br />
Engineering<br />
William J. Dally<br />
Stanford <strong>University</strong>,<br />
California<br />
& John W. Poulton<br />
<strong>University</strong> of North<br />
Carolina, Chapel Hill<br />
What makes some computers slow Why do<br />
some digital systems operate reliably , for years<br />
while others fail mysteriously every few hours<br />
How can some systems dissipate kilowatts while<br />
others operate off batteries These questions of<br />
speed, reliability, and power are all determined by<br />
the system-level electrical design of a digital<br />
system.<br />
Digital Systems Engineering presents a<br />
comprehensive treatment of these topics. It<br />
combines a rigorous development of the<br />
fundamental principles in each area with real<br />
world examples of circuits and methods. The book<br />
not only serves as an undergraduate textbook,<br />
filling the gap between circuit design and logic<br />
design, but can also help practising digital<br />
designers keep pace with the speed and power of<br />
modern integrated circuits.<br />
Contents: 1. Introduction to digital systems<br />
engineering; 2. Packaging of digital systems;<br />
3. Modeling and analysis of wires; 4. Circuits;<br />
5. Power distribution; 6. Noise in digital systems;<br />
7. Signalling conventions; 8. Advanced signalling<br />
techniques; 9. Timing conventions;<br />
10. Synchronization; 11. Signalling circuits;<br />
12. Timing circuits; Index.<br />
ISBN: 9780521670449 688pp ` 695.00<br />
ISBN: 9780521670890 440pp ` 595.00<br />
Randomized<br />
Algorithms<br />
Rajeev Motwani<br />
Stanford <strong>University</strong>,<br />
California<br />
& Prabhakar Raghavan<br />
Yahoo Research,<br />
Santa Clara, California<br />
This text by two well-known experts in the field<br />
presents the basic concepts in the design and<br />
analysis of randomized algorithms at a level<br />
accessible to beginning graduate students.<br />
The first part of the book presents basic tools from<br />
probability theory and probabilistic analysis that<br />
are recurrent in algorithmic applications.<br />
Algorithmic examples are given to illustrate the<br />
use of each tool in a concrete setting. In the<br />
second part of the book each of the seven<br />
chapters focuses on one important area of<br />
application of randomized algorithms: data<br />
structures, geometric algorithms, graph<br />
algorithms, giving a comprehensive and<br />
representative selection of the algorithms in these<br />
areas. This first book on the subject should prove<br />
invaluable as a reference for researchers and<br />
professional programmers, as well as for students.<br />
Contents: Part I. Tools and Techniques:<br />
1. Introduction; 2. Game-theoretic techniques;<br />
3. Moments and deviations; 4. Tail inequalities;<br />
5. The probabilistic method; 6. Markov chains and<br />
random walks; 7. Algebraic techniques; Part II.<br />
Applications: 8. Data structures; 9. Geometric<br />
algorithms and linear programming; 10. Graph<br />
algorithms; 11. Approximate counting; 12. Parallel<br />
and distributed algorithms; 13. Online algorithms;<br />
14. Number theory and algebra; Appendix A.<br />
Notational index; Appendix B. Mathematical<br />
background; Appendix C. Basic probability theory.<br />
Modern Compiler<br />
Implementation in<br />
Java<br />
Andrew W. Appel<br />
Princeton <strong>University</strong>,<br />
New Jersey<br />
This textbook describes all phases of a modern<br />
compiler, including current techniques in code<br />
generation and register allocation, for imperative,<br />
functional and object-oriented languages. In a<br />
concise and practical way the author describes the<br />
fundamentals of compilation and then moves on to<br />
advanced topics such as SSA form, loop<br />
scheduling, and optimization for cache-memory<br />
hierarchies. The new edition features a redesigned<br />
compiler project in Java, for a subset of Java itself,<br />
covering both front-end and back-end phases.<br />
Contents: Part I. Fundamentals of Compilation:<br />
1. Introduction; 2. Lexical analysis; 3. Parsing;<br />
4. Abstract syntax; 5. Semantic analysis;<br />
6. Activation records; 7. Translation to<br />
intermediate code; 8. Basic blocks and traces;<br />
9. Instruction selection; 10. Liveness analysis;<br />
11. Register allocation; 12. Putting it all together;<br />
Part II. Advanced Topics: 13. Garbage collection;<br />
14. Object-oriented languages; 15. Functional<br />
programming languages; 16. Polymorphic types;<br />
17. Dataflow analysis; 18. Loop optimizations;<br />
19. Static single-assignment form; 20. Pipelining<br />
and scheduling; 21. The memory hierarchy;<br />
Appendix: Mini-Java reference manual.<br />
ISBN: 9788175960725 548pp ` 445.00<br />
ISBN: 9780521613903 492pp ` 595.00<br />
46