Blogs Home


Never too old to learn
  • Lecture12, about Code Generation

    这节课主要描述了俩个主题,一是code generate的简介,介绍了MIPS汇编语言,并自定义了一种简单的编程语言,通过这种简单语言,我们介绍了code generation的stack machine的实现方式。二是Cool语言的Object layout。 [Read More]
    Tags:
  • Assignment PA4

    1 前言 在这个assignment中,我们将实现semantic check。通过AST树来检查程序是否符合Cool语言规范。对于有错误的代码,应该在这个阶段报错;而对于可以正确通过的代码,它必须收集某些信息供code generator使用。senmantic check阶段的输出是一棵annotated AST,通过这个AST,我们最终可以生成汇编代码。 本次Assignment的任务有以下3个 查看所有class并构建继承图。 检查继承图是否构造正确。 对每个类: (a) 遍历AST,在符号表中收集所有可见的declaration。 (b) 检查每个表达式的类型是否正确。 (c) 用类型注释AST。 [Read More]
    Tags:
  • Assignment PA3

    1 前言 这次assignment要求我们实现compiler的parse阶段。首先我们先确定整个代码的框架,然后阅读《A Tour of the Cool Support Code》整个handout,来确定我们所使用的用来构建AST树的接口,最后阅读cool-manual来确定parser rule,根据每一条rule,我们确定其action,并创建其节点,最终我们生成一棵AST树。 [Read More]
    Tags: