Skip to content

Latest commit

 

History

History
99 lines (79 loc) · 2.57 KB

TOC.md

File metadata and controls

99 lines (79 loc) · 2.57 KB

Contents

Preface

  • 1 Introduction

  • 2 Language and Syntax

  • 3 Regular Languages

  • 4 Analysis of Context-free Languages

    • 4.1 The method of recursive descent
    • 4.2 Table-driven top-down parsing
    • 4.3 Bottom-up parsing
    • 4.4 Exercises
  • 5 Attributed Grammars and Semantics

    • 5.1 Type rules
    • 5.2 Evaluation rules
    • 5.3 Translation rules
    • 5.4 Exercises
  • 6 The Programming Language Oberon-0

  • 7 A Parser for Oberon-0

    • 7.1 The scanner
    • 7.2 The parser
    • 7.3 Coping with syntactic errors
    • 7.4 Exercises
  • 8 Consideration of Context Specified by Declarations

    • 8.1 Declarations
    • 8.2 Entries for data types
    • 8.3 Data representation at run-time
    • 8.4 Exercises
  • 9 A RISC Architecture as Target

    • 9.1 Registers and resources
    • 9.2 Register instructions
    • 9.3 Memory instructions
    • 9.4 Branch instructions
    • 9.5 An emulator
  • 10 Expressions and Assignments

    • 10.1 Straight code generation according to the stack principle
    • 10.2 Delayed code generation
    • 10.3 Indexed variables and record fields
    • 10.4 Exercises
  • 11 Conditional and Repeated Statements and Boolean Expressions

    • 11.1 Comparisons and jumps
    • 11.2 Conditional and repeated statements
    • 11.3 Boolean operations
    • 11.4 Assignments to Boolean variables
    • 11.5 Exercises
  • 12 Procedures and the Concept of Locality

    • 12.1 Run-time organization of the store
    • 12.2 Addressing of variables
    • 12.3 Parameters
    • 12.4 Procedure declarations and calls
    • 12.5 Standard procedures
    • 12.6 Function procedures
    • 12.7 Exercises
  • 13 Elementary Data Types

    • 13.1 The types REAL and LONGREAL
    • 13.2 Compatibility between numeric data types
    • 13.3 The data type SET
    • 13.4 Exercises
  • 14 Open Arrays, Pointers and Procedure Types

    • 14.1 Open arrays
    • 14.2 Dynamic data structures and pointers
    • 14.3 Procedure types
    • 14.5 Exercises
  • 15 Modules and Separate Compilation

    • 15.1 The principle of information hiding
    • 15.2 Separate compilation
    • 15.3 Implementation of symbol files
    • 15.4 Addressing external objects
    • 15.5 Checking configuration consistency
    • 15.6 Exercises
  • 16 Code Optimizations and the Frontend/backend Structure

    • 16.1 General considerations
    • 16.2 Simple optimizations
    • 16.3 Avoiding repeated evaluations
    • 16.4 Register allocation
    • 16.5 The frontend/backend compiler structure
    • 16.6 Exercises
  • Appendix

  • Syntax of Oberon-0

  • The ASCII character set