Compilers Techniques
Compilers Techniques
少于1000 人选课
更新日期:2025/04/29
开课平台学堂在线
开课高校大连理工大学
开课教师徐秀娟贾棋任志磊江贺周勇
学科专业工学计算机类
开课时间2025/01/26 - 2025/07/24
课程周期26 周
开课状态开课中
每周学时-
课程简介

Through the study of this course, students can master basic theoretical knowledge of grammar and language, lexical analysis, syntax analysis, semantic analysis, optimization and generation of object code, and lay a good foundation for the future compilers learning and compilers design development.

There are mainly 8 chapters, and the main contents of each chapter are as follows.

01 Introduction: This chapter briefly introduces the components of the compilers and various applications of compilers techniques.

02 Lexical analysis: This chapter introduces the concepts of regular form and finite automata and the automatic generation method of lexical analyzer.

03 Syntax analysis: This chapter introduces the basic concept of context-free grammar, and introduces the predictive top-down parsing (LL(1)) and bottom-up parsing (SLR, LR(1), LALR).

04 Syntax-Directed Translation: This chapter introduces two ways to connect semantic rules and production: syntax-directed definition and syntax-directed translation.

05 Organization and Management of Run-Time Storage Space: This chapter introduces the relationship between static program body and run-time activities before code generation, as well as the binding relationship between static names and runtime data objects.

06 Intermediate Code Generation: This chapter introduces how the basic structure of programming languages can be translated into machine independent intermediate representations based on syntax-directed definitions.

07 Code Generation:

This chapter introduces the problems to be solved by code generator, and understands the whole process of code generation through a simple code generation algorithm.

08 Design and Implementation of a Simple Compiler:

This chapter describes how to implement a simple Python-based compiler.


课程大纲
1 Overview of Compilers Techniques
Overview of Compilers Techniques
2 Design and Implementation of a Simple Compiler
2.1 Demonstration of Compiler Framework based on Python
2.2 Basic
2.3 SimpleJava
3 Lexical Analysis
3.1  Lexical Tokens, Strings and Language
3.2  Regular form
3.3  Finite automata
3.4  DFA construction, Subset construction, Simpleset DFA
3.5 Lex
4 Syntax Analysis
4.1 Context-free Grammars
4.2 Writing a Grammar
4.3 Languages and Grammars
4.4 Top-Down Parsing
4.5 Bottom-up Parsing
4.6 LR Parsing
5 Syntax-Directed Translation
5.1 Syntax-Directed Definitions
5.2 Bottom-Up Calculation of S Attribute
5.3 L-Attributed Definitions
5.4 Bottom-Up Parsing of L-Attributed Translation
6 Organization and Management of Run-Time Storage Space
6.1 Overview
6.2 Global Stack Storage
6.3 Calling Sequences
6.4 Non Local Names
7 Intermediate Code Generation
7.1 Overview of Intermediate Code Generation
7.2 Declaration Statements
8 Code Generation
8.1 Issues in the Design of Code Generator
8.2 Target Machine
8.3 Basic Blocks and Flow Graphs
8.4 A Simple Code Generator
Final Exam