InhaltsverzeichnisArchitecture.New Algorithms for SIMD Alignment.Preprocessing Strategy for Effective Modulo Scheduling on Multi-issue Digital Signal Processors.An Array Allocation Scheme for Energy Reduction in Partitioned Memory Architectures.Garbage Collection and Program Analysis.Using Prefetching to Improve Reference-Counting Garbage Collectors.Accurate Garbage Collection in Uncooperative Environments with Lazy Pointer Stacks.Correcting the Dynamic Call Graph Using Control-Flow Constraints.Obfuscating Java: The Most Pain for the Least Gain.Register Allocation.A Fast Cutting-Plane Algorithm for Optimal Coalescing.Register Allocation and Optimal Spill Code Scheduling in Software Pipelined Loops Using 0-1 Integer Linear Programming Formulation.Extended Linear Scan: An Alternate Foundation for Global Register Allocation.Program Analysis.Program Refactoring, Program Synthesis, and Model-Driven Development.A Practical Escape and Effect Analysis for Building Lightweight Method Summaries.Layout Transformations for Heap Objects Using Static Access Patterns.A New Elimination-Based Data Flow Analysis Framework Using Annotated Decomposition Trees.A Declarative Framework for Analysis and Optimization.
Shriram Krishnamurthi Bücher


This introduction to programming places computer science in the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process. This approach fosters a variety of skills—critical reading, analytical thinking, creative synthesis, and attention to detail—that are important for everyone, not just future computer programmers. The book exposes readers to two fundamentally new ideas. First, it presents program design guidelines that show the reader how to analyze a problem statement; how to formulate concise goals; how to make up examples; how to develop an outline of the solution, based on the analysis; how to finish the program; and how to test. Each step produces a well-defined intermediate product. Second, the book comes with a novel programming environment, the first one explicitly designed for beginners. The environment grows with the readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks. All the book's support materials are available for free on the Web. The Web site includes the environment, teacher guides, exercises for all levels, solutions, and additional projects. A second edition is now available.