25.12.2014 Views

ENGINEERING - Cambridge University Press India

ENGINEERING - Cambridge University Press India

ENGINEERING - Cambridge University Press India

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!