编译器课程

  Coursera上面有Stanford的课程“Compilers”,该课程使用“龙书”作为参考书,并有一个编程项目,完成一个完整的编译器。这个编译器支持的语言称为COOL,是一个面向对象的用于教学的语言,支持完整的面向对象特性。COOL项目给出了一些基础源码,学生在这个基础源码上实现词法分析、语法分析、语义分析(类型检查)和代码生成,词法分析适用flex工具,语法分析适用bison工具,生成的代码是MIPS汇编,能在SPIM模拟器上运行。

  https://github.com/tuituji/Cool-Compiler是我完成的项目代码。

时间: 2024-11-17 09:07:05

编译器课程的相关文章

程序员都应学习代码编译器知识

程序员都应学习代码编译器知识   所有优秀的计算机科学学院都提供了编译器课程,但是相对比较少的学校把它作为本科课程的必修部分.这篇文章回答了这个问题:为什么需要学习编译器知识?即使你从没打算过编写编译器. 我写这篇文章的其中一个原因是,尽管我在读本科时很喜欢编译器课程,但是我几乎看不到它的实际作用.大多数资料看起来要么简单易懂,要么很深奥(事实上,我找到的大部分编译器资料都是很枯燥的.)无论怎样,我用了几年时间总结了为什么这类课程会如此有用的实际原因.原因如下. 分析器和解析器无处不在 严谨的p

学了编译原理能否用 Java 写一个编译器或解释器?

16 个回答 默认排序? RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和解释器.其实用什么语言来实现编译器并不是最重要的部分(虽然Java也不是实现编译器最方便的语言),最初用啥语言都可以. 我在大学的时候,我们的软件工程和计算机科学的编译原理课的作业好像都是可以用Java来写的.反正我印象中我给这两门课写的作业都是用的Java. ===================

《代码大全2》读后感czz

经老师推荐,买了一本<代码大全2>,花了近3个月的时间看完了,看完后觉得还有很多值得回味的地方,而且每部分之后作者还推荐了不少经典书籍.所以,作个读书心得.全书的主题是软件构建,关于软件构建问题的方方面面均有涉及,共分7个部分,从软件构建前期准备,到语言层的一些问题,再到代码完善,系统考虑以及软件工艺等等.以下分别进行简单说明. 第一部分是打好基础,本部分主要是软件构建前期的工作,以及对一些基本概念的介绍,具体包括如何选择编程语言和构建实践方法,如何理解软件开发的过程.软件开发本质上说就是工程

编程入门指南

前言 如今编程成为了一个越来越重要的「技能」:作为设计师,懂一些编程可能会帮你更好地理解自己的工作内容:作为创业者,技术创始人的身份则会让你的很多工作显得更容易.而作为刚想入门的新手,面对眼前海量的信息,或许根本不知道从哪里开始:入门轻松度过初级材料的学习后,发现学习越来越困难,陡峭的学习曲线又让你望而却步:你知道如何在页面上打印输出一些文本行,但是你不知道何时该进行一个真正的有用的项目:你不清楚自己还有哪些不知道的东西,你甚至搞不清下一步该学什么. 这篇文章的内容对此不仅会有一些方向性的建议,

compiler

http://www.lingcc.com/2012/05/16/12048/ a list of compiler books — 汗牛充栋的编译器参考资料 Posted on 2012年5月16日 by Lingcc | 14 Replies 前不久,有位<编译点滴>网友询问编译器方向的参考资料.其实之前讨论过一些编译器相关的在线资料–<有写编译器的冲动?这些资料很重要>.这篇博文就来总结总结编译技术相关的各类图书资料,供各位参考.这个书列是结合本人所了解的内容整理出来的,限于

(转)对博士学位说永别 by 王珢

对博士学位说永别 by 王垠 经过深思熟虑之后,我决定再次“抛弃”我的博士学位.这是我第三次决定离开博士学位,也应该是最后一次了.这应该不是什么惊人的消息,因为我虽然读博士10年了,可是我的目标从来就不是博士学位.我在寻找更重要的东西,而且那个东西已经被我找到了.所以我的“博士生涯”其实完成了它的使命,基本上可以圆满结束了. 如果你从我之前的博文判定我现在生活在我所向往的环境中,那么你就误会了.虽然我学到了我想要的东西,但是却发现学术界不再是我向往的地方.相反,它阻碍了我的前进,让我很不开心.很

王垠:对博士学位说永别

本文作者:王垠,四川大学97级本科毕业,保送到清华大学计算机系直博.期间曾在清华大学计算机系软件所就读,主要进行集成电路布线算法的研究.在此期间,他因<完全用GNU/Linux工作>一文和对TeX的推广等“非研究成果的业余东西”而出名. 在只剩一年就要博士毕业的时候,他申请退学,并将1万7千余字的“退学申请书”(题为清华梦的粉碎)公布在网上,引起舆论界一时对教育体制.理想主义等的热议. 下面是王垠的博客全文: 经过深思熟虑之后,我决定再次“抛弃”我的博士学位.这是我第三次决定离开博士学位,也应

编程学习指南

我个人十分喜欢的编程学习指南,也将作为自己的编程学习和技能提升的重要参考. 本文作者是@萧井陌,基于个人收藏的缘故,在格式上略有改动. 前言 如今编程成为了一个越来越重要的技能:作为设计师,懂一些编程可能会帮你更好地理解自己工作内容:作为创业者,技术创始人的身份则会让你的很多工作显得更容易.而作为刚想入门的新手,面对眼前海量的信息,或许根本不知道从哪里开始:入门轻松度过初级材料的学习后,发现学习越来越困难,陡峭的学习曲线又让你望而却步:你知道如何在页面上打印输出一些文本行,但是你不知道何时该进行

代码大全读后感(2)

本书的第三部分是变量(我总是搞不懂),这是全书描述的最细微的单元.主要包括如果对变量命名,变量与数据的绑定时间,基本的数据类型以及一些不常见的数据类型,比如指针.全局变量等等.变量命名是有多种方法的,用哪种无所谓,关键是要统一.变量与数据的绑定时间,这个问题我以前没有系统考虑过.书中的观点是绑定时间越滞后,则系统越灵活.这个我赞同.硬编码到程序中的,是直接赋予数值的常量,除非修改源码,否则不变:编译时刻确定的,是一些静态变量:运行时间确定的,就难说了,可能是从I/O获得,也可能是从内存获得.其它