K. Cooper, L. Torczon - Engineering a Compiler (2011 - 2nd edition), страница 3
Описание файла
PDF-файл из архива "K. Cooper, L. Torczon - Engineering a Compiler (2011 - 2nd edition)", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.6.1 Optimizing a Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.6.2 Reducing the Size of LR(1) Tables . . . . . . . . . . . . . . . . . . . . . . . . . .Summary and Perspective .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Chapter Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Exercises . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .838585868992959698108110116118124136141141142143144147148150155156157Contents xiCHAPTER 4 Context-Sensitive Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 1614.14.24.34.44.54.6Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .An Introduction to Type Systems . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .4.2.1 The Purpose of Type Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.2.2 Components of a Type System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .The Attribute-Grammar Framework . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .4.3.1 Evaluation Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.3.2 Circularity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .4.3.3 Extended Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.3.4 Problems with the Attribute-Grammar Approach . . . . . . . . . . .Ad Hoc Syntax-Directed Translation . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .4.4.1 Implementing Ad Hoc Syntax-Directed Translation . . . . . . . .4.4.2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Advanced Topics . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.5.1 Harder Problems in Type Inference . . . . . . . . . . . . . . . . . . . . . . . . . .4.5.2 Changing Associativity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Summary and Perspective .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Chapter Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .161164165170182186187187194198199202211211213215216217CHAPTER 5 Intermediate Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2215.15.25.35.4Introduction . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.1.1 A Taxonomy of Intermediate Representations . . . . . . . . . . . . . .Graphical IRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.2.1 Syntax-Related Trees . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.2.2 Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Linear IRs . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.3.1 Stack-Machine Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.3.2 Three-Address Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .5.3.3 Representing Linear Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.3.4 Building a Control-Flow Graph from a Linear Code . . . . . . . .Mapping Values to Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .5.4.1 Naming Temporary Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.4.2 Static Single-Assignment Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.4.3 Memory Models . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .221223226226230235237237238241243244246250xii Contents5.55.6Symbol Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.5.1 Hash Tables . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.5.2 Building a Symbol Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.5.3 Handling Nested Scopes . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .5.5.4 The Many Uses for Symbol Tables . . . . . . . . . . . . . . . . . . . . . . . . . .5.5.5 Other Uses for Symbol Table Technology . . . . . . . . . . . . . . . . . . .Summary and Perspective . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Chapter Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .253254255256261263264264265CHAPTER 6 The Procedure Abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2696.16.26.36.46.56.66.7Introduction . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Procedure Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Name Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .6.3.1 Name Spaces of Algol-like Languages . . . . . . . . . . . . . . . . . . . . . .6.3.2 Runtime Structures to Support Algol-likeLanguages . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.3.3 Name Spaces of Object-Oriented Languages . . . . . . . . . . . . . . . .6.3.4 Runtime Structures to Support Object-OrientedLanguages . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Communicating Values Between Procedures . . . . . . . . . . . . . . . . . . . . . . .6.4.1 Passing Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.4.2 Returning Values . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.4.3 Establishing Addressability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Standardized Linkages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .Advanced Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.6.1 Explicit Heap Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.6.2 Implicit Deallocation . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Summary and Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Chapter Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .269272276276280285290297297301301308312313317322323324CHAPTER 7 Code Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3317.17.27.3Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Assigning Storage Locations . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.2.1 Placing Runtime Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.2.2 Layout for Data Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .7.2.3 Keeping Values in Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Arithmetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.3.1 Reducing Demand for Registers . . .