问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

编译原理的数据结构

发布网友 发布时间:2022-04-22 00:31

我来回答

1个回答

热心网友 时间:2023-07-03 23:52

编译原理一直是计算机学习的必修课.
当然,由编译器的阶段使用的算法与支持这些阶段的数据结构之间的交互是非常强大的。编译器的编写者尽可能有效实施这些方法且不引起复杂性。理想的情况是:与程序大小成线性比例的时间内编译器,换言之就是,在0 ( n )时间内,n是程序大小的度量(通常是字符数)。本节将讲述一些主要的数据结构,它们是其操作部分阶段所需要的,并用来在阶段中交流信息。 临时文件(temporary file):计算机过去一直未能在编译器时将整个程序保留在存储器中。这一问题已经通过使用临时文件来保存翻译时中间步骤的结果或通过“匆忙地”编译(也就是只保留源程序早期部分的足够信息用以处理翻译)解决了。存储器的*现在也只是一个小问题了,现在可以将整个编译单元放在存储器之中,特别是在可以分别编译的语言中时。但是偶尔还是会发现需要在某些运行步骤中生成中间文件。其中典型的是代码生成时需要反填(backpatch)地址。例如,当翻译如下的条件语句时 if x = 0 then ... else ... 在知道else部分代码的位置之前必须由文本跳到else部分:
CMP X,0 JNE NEXT ;;
location of NEXT not yet known < code for then-part > NEXT : < code for else-part >
通常,必须为NEXT的值留出一个空格,一旦知道该值后就会将该空格填上,利用临时文件可以很容易地做到这一点。
如果想利用上面的编译原理开发一套属于自己的编程语言,或者想在一个产品中嵌入编程语言,可以参考zengl开源网开发的zengl编程语言,该编程语言为国人使用C语言开发,里面包含两个部分,一个是编译器,一个是解释执行中间代码的虚拟机。编译器包含了词法扫描,语法分析,中间代码输出等,虚拟机则类似JAVA一样解释执行中间代码。作者将所有的版本都公布出来,好让读者可以由浅入深的做研究,并且为了证明该编程语言的实用性,还结合SDL游戏开发库开发了一款图形界面和命令行界面的21点扑克小游戏 。
zengl编程语言目前适用平台为windows和linux (最开始在Linux下使用gcc开发,后来移植到windows平台)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
亚马逊海外购现身移动端 选品与PC端同步 36个常去的美国海淘网站,支持支付宝和直邮中国 草莓是凉性还是热性水果 草莓会不会吃上火 兰德酷路泽4.0l油耗多少? 兰德酷路泽4000油耗百公里是多少 斤两再下是什么 两钱后面的单位是什么 人体有几大系统,分别是什么作用? 事业单位工人身份有职称怎么退休 枪手丧尸幸存者怎么解锁喷火器 人力资源公司与公司签订的代缴社保合同样板 喜剧电影 编译原理和程序设计语言编译原理这两本书哪个适合... 求搞笑的爱情电影...一定要好看的哦~~~200分 与人力资源公司公司签订了劳务派遣合同,但是实际... 编译原理中代码优化依据什么原则 文化水平较高的进啊~!!の色既是空→空既是色 工人跟人力资源签合同,工资怎么结合人力资源签合同... 编译原理的内容简介 麻烦大家帮忙推荐几部好看的电影拜托各位了 3Q 学习编译原理的重要性 和人力资源签劳动合同真的好么,有什么坏处? 色即是空 是啥意思? 编译原理与汇编语言一样吗? 托人力资源公司找工作有跟实际用工单位签订合同的吗? 色即是空,空即是色,受想行识,亦复如是 如何学好 程序设计语言 编译原理 诚求 “色即是空”是什么意思? 人力资源公司与招聘单位之间的合同是什么合同 汉语程序设计语言的编译原理 近年来感人的日本或韩国电影! 编译原理的相关程序 色即是空好看吗? 急需程序设计语言编译原理(第3版)国防工业出版社 ... 运用心理学理论谈谈游戏与儿童发展的关系 崔成国哪部电影好看 编译原理 课程设计 游戏与儿童成长的关系 2018 假面 韩剧 第四集 那个vip 阿姨 都演过什么韩剧 循环语句的语法分析及语义分析程序设计 根据《学前卫生学》和学前心理学,你觉得游戏与儿童... 编译原理中文法变换的特殊方法有哪些? 浅谈大班自主游戏与幼儿发展的关系 游戏对于儿童发展具有哪些意义? 计算机科学与技术是学什么的 游戏与儿童身体发展有什么关系? 计算机语言是如何实现的 游戏与儿童发展之间的关系是什么? 软件编程在学习了编译原理这门课后有什么好处? 探究幼儿游戏教育与幼儿身心发展的关系