CS143 斯坦福大学编译原理-000 Introduction

组成

课程组成

  • Lexical analysis(词法分析),001 Lexical Analysis
  • Parsing(解析,语法分析)
  • Semantic analysis(语义分析)
  • Optimization(优化)
  • Code Generate(代码生成)

龙书组成

  • Lexical Analyzer(词法分析器)
  • Syntax Analyzer(语法分析器)
  • Semantic Analyzer(语义分析器)
  • Intermediate Code Generation(中间代码生成)
  • Code Optimizer(代码优化器)
  • Code Generator(代码生成器)

经济

语言示例

每种语言都有它擅长的领域。 科学计算,选择FORTRAN - 浮点 - 数组 - 并行计算 业务应用,使用SQL - 持久化 - 生成报告 - 数据分析 系统编程,选择C/C++ - 资源控制 - 实时性

新编程语言

出现的时机: - 广泛使用的变化缓慢 - 入门简单 - 弥补其他语言无法很好解决的领域

最好的编程语言

没有最好的设计语言,只有解决某领域问题最合适的语言。

COOL

Classroom Object Oriented Language(课堂面向对象语言)。

简介

目标

  • 短时间设计一个COOL编译器
  • 编写COOL程序 完成一个完整的编译器,最终可以在MIPS架构处理器上运行程序。可能会使用的工具:
  • qemu
  • spim(Linux系统上使用的MIPS模拟器)
  • pcspim(Windows系统上使用的MIPS模拟器)

任务

分别完成以下步骤: - 编写COOL程序 - 词法分析 - 解析(语法分析) - 语义分析 - 代码生成 - 代码优化

语法

基本结构

  • cl为文件扩展名
  • 类后面紧跟一对大括号
  • 声明使用英文;结尾
  • Main.main为主函数,不能包含参数
  • 函数参数后使用:定义返回值
  • 返回值由最后一句结果决定

关键词

后面补充

类型

后面补充

标准库

后面补充