当前位置: 首页 > wzjs >正文

重庆网站建设招标电商网站平台

重庆网站建设招标,电商网站平台,哪个网站可以领手工回家做,美食地图网站开发本文是记录专业课“程序语言理论与编译技术”的部分笔记。 LECTURE 18(语法制导翻译SDT) 1、上讲讲到的Annotated语法树如下图。但是其保存时会浪费空间,况且有些属性算完了就没用了。 2、因为每条规则都与产生式有关,因此可以一…

本文是记录专业课“程序语言理论与编译技术”的部分笔记。

LECTURE 18(语法制导翻译SDT)

1、上讲讲到的Annotated语法树如下图。但是其保存时会浪费空间,况且有些属性算完了就没用了。


2、因为每条规则都与产生式有关,因此可以一边做语法分析一边做翻译,这就是SDT。这种翻译是静态的、被parser驱动的,我们不称其为algorithm,而是称为scheme。


这里{}内的是某种程序,中部尾部的写法都可以。
3、自下而上的语法制导翻译器。注意,这里的符号栈、状态栈和语义栈是同步的。


可以这么理解:前两列定义语言,第三列根据语言写了一个编译器:


这里的ss是语义栈,右边第一行参看下图。右边前三行都是不同风格的栈写法。


4、两种属性,如下图。自下而上的方法(如ocamlyacc)多半搞不定继承属性。


例:C语言变量声明的类似文法及其语法树如下图。注意这里,id的类型源于L,自底而上的方法无法规约。
第一种方法——“猜”。观察,L的前面一定是T,直接去找源头的T的类型(在栈里)即可。


怎么写semantics actions?如下图:


第二种方法,看如下文法。C.i不在栈中,直接找B.s,但可惜程序里没有真正的符号栈,故而不好找B。此外,也不知道是从那条路来的,C前面是aB还是aBA。若是前者,则B在$0,若是后者,则是$-1。解决方法看下图右表,添加了M用作传递。原理是修改文法,将依赖项固定在某个位置。


5、递归下降法又能计算综合属性,也能计算一部分的继承属性,如下图(将继承属性作为参数直接传递)。这里红色是继承属性,蓝色是综合属性:


6、大型例子:C语言的声明翻译。


注意,这里的R->P D,依赖于P的len,指代包了几层指针。P->*P1这里后面的式子少了个len。具体例子如下:


随后计算类型如下图。先从S开始(integer)抵达L,L将属性分发给R和L,到目前为止都是传递,随后开始计算。
以R为例:R那边P长度为1,R为整型,因此D为指向整型的指针,注意这里还有数组,因此推出id是array(pointer(int))。


接下来写代码,注意,课上的案例为了方便使用纯函数式写法,自己写应当使用mutable。


注意这里的token是单词,symbol代表左右括号(方便)。tp是类型,后两行代表某类型的数组和某类型的指针。设计完两个数据结构和输出后,开始设计:


对于Decl,input拆出tok和xs,是先匹配一下第一个,tok只能是int或char。然后tok交给S分析,再送回,整体交给L分析。


对于L,原本是L->R, L | R,有误,需要提取出公因子,改成图中的式子和L'->, L | 空。可以看到这里的倒数第三行处理的,L;倒数第二行则处理的空串,但这里不应该用_,而是应该用Follow集。


对于指针,看右上第七行,这实现了指针的多层包裹。对于数组,如下图:


最后包装,将字符串转成token的链表,再对链表进行变换(用map):


注意,以上最终程序其实还有bug,比如输入parse "i(*a)[]$",会认为是*->integer而没有考虑数组。因为全部按左边跑,看不到[],无法预先把array加进去,发现[]时已经打印完了。修改提示:做一个返回,在返回的时候再打印。

http://www.dtcms.com/wzjs/127365.html

相关文章:

  • 用cms做网站的缺点化妆品营销推广方案
  • 政府网站建设问题网络营销是什么?
  • 怎么做新浪网站网络营销工具平台
  • 做网站文字居中代码免费下载百度seo
  • wordpress搭建服务器郑州网站推广优化公司
  • 长春专业做网站的公司有哪些企业查询系统官网天眼查
  • 福州最好的网站建设服务商杭州seo网络推广
  • wordpress 网站关键词公司网络营销推广
  • 淘宝领卷网站什么做网址注册
  • wordpress上传图片错误网站seo推广平台
  • asp动态网站制作流程聚合广告联盟
  • 长沙竞价网站建设报价十大禁止安装应用入口
  • 商城网站主要功能可以免费网络推广网站
  • 云南热搜科技做网站不给源码网络营销的核心
  • 如何做网站后台的维护免费做网站怎么做网站吗
  • 长沙企业网站模板2022年时事政治热点汇总
  • 招聘网站开发需要多长时间百度注册入口
  • 企业seo是什么意思seo经理
  • 广州大型网站制作公司东莞seo外包公司
  • 网站建设制作设计珠海杭州网站推广平台
  • 四川遂宁做网站的公司黑龙江今日新闻
  • 网站建设PHP开发是什么意思头条广告入口
  • 如何把自己电脑做网站服务器宁波seo外包优化
  • 给军方做网站套模板行不行网络营销产品策略
  • 网站建设公司会议网站免费b2b网站有哪些
  • 北京高端网站建设公司哪家好新闻摘抄四年级下册
  • 网站怎么做营销策划ui设计培训班哪家好
  • 上海手机响应式网站建设设计独立网站怎么做
  • 深圳易百讯网站建设公司2022年关键词排名
  • 为网站做推广谷歌广告代运营