- Hardcover: 452 pages
- Publisher: Springer; Corrected edition (December 7, 2004)
- Language: English
- ISBN-10: 3540654100
- ISBN-13: 978-3540654100
- Product Dimensions: 6.1 x 1.1 x 9.2 inches
- Shipping Weight: 1.6 pounds (View shipping rates and policies)
- Average Customer Review: 3.5 out of 5 stars See all reviews (4 customer reviews)
- Amazon Best Sellers Rank: #1,116,510 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your email address or mobile phone number.
Principles of Program Analysis Corrected Edition
Use the Amazon App to scan ISBNs and compare prices.
Frequently Bought Together
Customers Who Bought This Item Also Bought
Browse our Teacher Supplies store, with everything teachers need to educate students and expand their learning.
More About the AuthorsDiscover books, learn about writers, read author blogs, and more.
Top Customer Reviews
I rate it as 4 star as it gives the information on how to approach program analysis from the theoretical side. Also, reading it made my life easy when working with some code on flow analysis. I would say it definitely requires 2 readings for the info to settle inside. The appendix on Partially Ordered Sets is much more comprehendable than in Winskel.
In simple words, if u r good at theoritcal math used with languages and are interested in implementing and understanding various analysis that can be performed on programs then this is book would be a great aid.
1. Statements into a graph, expressions & sub-expressions into nodes
2. Form base set of attributes for nodes
3. Form complete attributes of each node
4. Answer questions about procedures, and other objects of the program.
Compilers use these techniques (or similar ones) to:
1. Remove superfluous computations (dead code propagation, constant propagation)
2. Merge redundant computations
3. To schedule computation and other operations
Analysis tools may employ these techniques to suggest that the program may have implementation mistakes. These tools are slowly improving in the industry, but are decades behind compiler tools. That said, this book is interested in the academic analysis, and is several steps removed from what it takes to produce good tools.
I. Notation used in the book.
The text prefers to use a small number of "abstractions" for a foundation:
* "Lattices" are used for structures
* The process of applying rules, broadly, uses the concept of fixed point
* Working thru constraints is handled by work-lists
I'll go into depth on the notation below, as some of the book is written needlessly academically (poorly) in how it uses terms.
A. Syntax: The language is broken down along syntax into nodes. Implicitly there is only one operation per node. Expressions are decomposed into separate sub-expression for each action
Note: To look at an analysis, the book often defines a small grammar; some massaging is often needed to make the analysis work.Read more ›