编 译 原 理 上机大作业<函数绘图语言解释器>

一、 实验目的

通过做上机题加深对编译器构造原理和方法的理解,巩固所学知识。
(1) 会用正规式设计简单语言的词法;
(2)会用产生式设计简单语言的语法
(3) 会用递归下降子程序编写编译器或解释器;
(4) 会写上机报告。

为简单的函数绘图语言编写一个解释器。该解释器接受用绘图语言编写的源程序,经过语法和语义分析后,直接将源程序所规定的图形显示在显示屏(或显示窗口)中。

作业的目的是:通过自己动手编写解释器,掌握语言翻译,特别是语言识别的基本方法。

二.函数绘图语言简介

五种语句

循环绘图语句:(FOR-DRAW)

  		for T from 0 to 200 step 1 draw(t,0)   横坐标的轨迹 纵坐标为零
  		for T from 0 to 150 step 1 draw(0,-t)   纵坐标的轨迹 横坐标为零
  		for T from 0 to 120 step 1 draw(t,-t)   函数f(t)=t的轨迹

比例设置:(SCALE)

  			scale is (1,1)设置横坐标和纵坐标的比例

角度旋转:(ROT)

  				ROT is 0  旋转角度为0  即不旋转

坐标平移:(ORIGIN)

  					origin is (100,300)   原点的偏移量

注释:(–或者//)

坐标系:

左上角为原点
x方向从左向右增长
y方向从上到下增长

词法分析器

词法分析器的作用是规定单词形成的规则,并且根据这个规则来识别输入序列,这个过程也被称为词法分析。

四个任务

1.识别记号,并共语法分析器使用
2.处理与平台相关的输入
3.过滤掉源程序中的无用成分 如 注释
4.识别非法输入 并报告错误

记号设计
在这里插入图片描述
区分记号的符号表,我们识别记号就是基于这个表来识别在这里插入图片描述

设计出正规式,用来早NFA,并对NFA进行确定化和最小化,形成DFA
在这里插入图片描述
DFA结构,写代码根据这个DFA来识别记号
在这里插入图片描述

WHITE_SPACE(白空)没有出现在DFA中。处理办法:借鉴老师的做法,在程序中识别到白空(空格 回车 制表符)时直接跳过

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我定亲手擦亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值