Coder Social home page Coder Social logo

pl0's Introduction

PL/0 语言编译系统 HomePage

(2018年11月15日 更新)

一、INDEX

目录 说明
PL0_Raw 老师所提供的PL0项目(原始代码,实验和课设需在此基础上进行功能扩充)
PL0_Exp 本人的实验报告项目
PL0_Des 本人的课程设计项目
PL0_Cpp 教材附录A中的 PL/0代码(C版本)。(所用编译器是 VS2017)
PL0_Java PL0_Cpp 改写而成的 PL/0代码(Java版本)。(所用编译器是 eclipse)
PL0_Qt 本人的 Qt 高仿重制版

二、关于本项目

本项目源于 本人大三下学期 编译原理课程 的课内实验和课程设计。课程用书是 清华大学出版社的《编译原理(第3版)》。

尽管当下已是8102年,微软刚刚完成对GitHub的收购,但这门课的 实验和课设 还依旧沿用着“祖传代码”,虽然比起教材后面的源码要好一点(真的只是一点,多了个GUI界面),但Borland C++Builder 6 这个编译器实在是太旧了,作为曾经 T1级别的编译器,在现在这个智能编译器满天飞的时代高下立见,附图为Borland C++Builder 6界面。在Windows 10 版本更新到 1803的今天,由于Borland C++Builder 6的兼容性问题,本人只能专门安装一个 Windows 7的虚拟机 去完成这个 实验和课设。并使用Qt去重写了它,考虑到答辩的原因,还是要在老师的原代码上进行操作,唉~

不过吐槽归吐槽,PL/0 语言编译系统 的源码**才是最重要的,就算用Qt重写,也不过是换了个壳而已,核心的东西依然没变,所以还是要把精力放在源码上。

欢迎各位交流学习,谢谢~

三、Borland C++Builder 6 与 Qt Creator 4.5.0

四、实验环境和工具

1、源语言:PL/0语言,PL/0语言是PASCAL语言的子集,它的编译程序是一个编译解析执行系统,后缀名为.PL0;
2、目标语言:生成文件后缀为*.COD的目标代码 
3、实现平台:Borland C++ Builder 6 
4、运行平台:Windows 7 64位 

五、课内实验和课程设计内容和要求

1. 课内实验

	对PL/0作以下修改扩充:
	(1)增加单词:保留字 ELSE,FOR,STEP,UNTIL,DO,RETURN 
	             运算符 *=,/=,&,||,!  
	(2)修改单词:不等号# 改为 <>
	(3)增加条件语句的ELSE子句,要求:写出相关文法,语法描述图,语义描述图。
 
2. 课程设计

	基本内容(成绩范围:“中”、“及格”或“不及格”)
	(1)扩充赋值运算:*= 和 /=
	(2)扩充语句(Pascal的FOR语句):
	 FOR <变量>:=<表达式>STEP<表达式UNTIL<表达式>Do<语句>
 
	选做内容(成绩评定范围扩大到:“优”和“良”)
	(1)增加类型:① 字符类型;  ② 实数类型。
	(2)扩充运算:++ 和 --(要求作为表达式实现) 
	(3)扩充函数:① 有返回值和返回语句;② 有参数函数。   
	(4)增加一维数组类型(可增加指令)。   
	(5)其他典型语言设施。         

六、建议参考(目标拿优秀的童鞋)

  1. 百度文库-10级编译原理课程设计报告
  2. 百度文库-PL0编译原理课程设计(3109006080何路生)
  3. answer.cpp

pl0's People

Contributors

gdut-yy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

pl0's Issues

感谢

爱了爱了!!!
感谢学长解我燃眉之急,学弟将把你无私奉献的精神发扬光大

感谢

爱了爱了
感谢学长,解我燃眉之急!!!!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.