编译原理流程图
A. 有关编译原理内容的Flash在哪里能找到
目前能回答的是以下几点
1:代码优化
var i:Number=10
var tempi:Number=0
function testFun(tempi){
if(tempi<i){
tempi++}else{
return false
}
}
//..后面内容省略.
这里的if(tempi<i){
tempi++}else{
return false
}
可以写成tempi<i?tempi++:return false
同样例子也有很多.
2:代码的结构
结构基本是如下格式
初始变量-(数组的建立 变量的建立 全局变量的建立等)
类-(类所连接的元件)
函数过程-(与XML连接,与js连接,或者其它第三方软件,FLASH内部动画控制的一些命令,如LOADING,函数布尔值判断等)
鼠标事件(onPress onRelease....)
函数引用
参考资料:凌火原创
B. 姐,我在做词法分析器的作业,要求是识别INT和REAL,请问识别这两类数据有什么办法吗,编译原理第一周
啊.........
虽然已经有满意答案了....
BUT。
既然都像我定向求助了...
我还是稍稍答一下吧~
P.S.估计。你是看到我关于词法编译器滴博客了.....
如果你下次有问题。
可以直接在文章下面留言。
我看到就会回答滴~
不用特意跑到网络知道哈~
先声明.....
我滴词法分析器是3年前做滴了吧.....
我现在连词法分析器是哈子....
都不记得了.......
专门去看了下网络。和我滴博文...
差点没哭了.....
原来我3年前写博文...
就是纯贴代码...
连个程序流程图都没画........
真是难为那些个完完整整看完滴娃了.......
我自己再从头看都噶累啊....
话说....
有real介个类型咩...........是想说float double嘛.......
啊........
好久不玩C........都忘记了。
——————————以下仅为我滴思路...不一定对。更不会是最优哈~——————————
首先。你可以很容易滴得到一个这样滴字符串。
123.4
123
123e-7
之类滴字符串~
然后你可以专门写个函数。
在函数里面判断是int 还是 float
C不是有自带函数
atoi(string)
atof(string)
之类滴函数嘛~
你直接把得到滴字符串放在里面转换一下。
如果不是数字滴话。
就会得到0.
例如123.4
atoi之后就是123
atof之后就是123.4
然后你再把atoi滴int结果转换为float.
这时候123就是123.0了嘛~
你把介个结果和123.4那个结果做个==比较。
如果相等。就是int。不相等就是float。
当然.............
介个比较是很粗糙很粗糙滴...........
嘛~
只是一个思路赛~
你自己再好好想想其他滴吧~
以上~
C. 编译原理问题
你是长春理工大学的吧?
前几天我们刚写完,一样的.
D. 汉语程序设计语言的编译原理
汉编系统是一个交互式的程序设计环境,最初是为程序员在小型和微型计算机上开发应用程序而设计的。主要应用于科学计算和工业控制,比如仪器、机器人、过程控制、图形和图像处理、人工智能和商业应用。汉编语言的主要优点是软件开发快速、交互式、计算机硬件的高效使用等。
汉编语言与传统语言最大的不同是它的可扩展性。汉编语言的编程过程就是定义新的词,词实际上就是语言的新命令。词可以用一系列以前定义的词来定义,这个过程与教育孩子的过程相似:我们总是用孩子们以前理解的概念来教给孩子们新的概念,而这些词被称为“高级定义”。同样,新的词也可以用汇编代码定义。
可扩展性的结果是我们在开发一个应用的同时,也间接地开发了一个特殊的、针对这一类应用的“面向应用的模块,它可以用于或者经过修改之后被用于相似的应用。
汉编语言的可扩展性并不仅仅是为语言自身增加新的命令,所以不要把定义词与传统高级语言定义函数、过程等同。汉编系统还能对定义词(建词)进行扩展,创建一个可以定义其它词的词,这种词被称为“定义词”。在创建这样一个定义词的时候,程序员能够指定它所创建的词在编译时间、运行时间或者这两种状态下的特殊行为。这个能力允许我们定义特殊的数据类型,并对其行为和结构实施完全的控制。又由于这种词的运行时行为可以用高级语言或者汇编语言来定义,所以由定义词创建的词将具有与其它汉编词一样的性能。系统也允许我们增加一个新的“编译指示符”以实现特殊类型的循环或者其它的控制结构。比如,汉语言定义一个程序变量的词:给,其代码大概如下:
编给(32位数-<变量名>-)编译时
(---32位数)运行时
建词可用地址4字节空出写
动作读
。
定义变量时
5给变量一
则5被自动写入变量一的实体域中
运行“变量一”时
变量一
则变量一实体域中的数字5被自动读取,放到数摞上 汉编词可以使用以前定义的词或者汇编代码来定义,它们与其它语言的子程序相似,也与其它语言的命令等效。汉编系统允许我们在键盘上打入一条指令的词名,这个词将被立即执行。然而,如果我们把功能的词名放到定义中,将编译成对于这个词的引用。
高级词是由其它词的集合来定义的,我们可以把这个过程想象成是其它语言的宏。新的词被加入到它们可以使用的存储器中,其定义被加入到词典中。在一个汉编词的命名规则中,只有很少的几个字符不能作为词名使用。
当遇到一个词的时候,汉编系统就通过词典搜索希望找到这个词的定义,如果找到这个词定义的功能,或者被立即执行,或者作为引用而被编译到新的定义中。然而,如果在词典中没有找到这个词,系统就试着把它转换成一个数。如果转换成功,就把它放在数摞上。如果不能转换成数字,就显示这个未定义的词名并打印出一个错误的信息来报告这个词是系统所不知道的。
汉编词的执行流程大概可以用一个词来模拟如下:
编查词测试
{词名串--}
255个字节空给词名串
词名串255填0
词名串字串传送
词名串(查词)
0=
就
计字节
串>数
就
♀
否则
字串未定义词名串字串+传送
词名串计字节
回车印字串
全复位
然后
否则
执行
然后
。★
字串看数摞查词测试数摞已空!★
字串123456查词测试★.
看数摞[1]123456★.
显123456★
字串看方法查词测试
看方法未定义
汉编系统编译流程如右图(流程图来源:汉编新浪博客)所示。
汉编语言坚持“结构化程序设计”原理:
·词必须在引用之前被定义;
·逻辑流限制只有顺序、条件和循环,有专门的词用于实现常用的程序控制结构;
·程序员使用许多小的、独立的模块(词)来实现最大的可测试性和可靠性;
这种方法有两个明显的优点
·新的词总是用以前定义和测试过的词来构造,所以调试更容易。模块可以单独执行以测试它的功能;
·固有的模块性使汉编语言成为一个“设计性语言”,允许自顶向下的设计同时保持自底向上的测试。一个词可以在不同的程序中使用,但是它的功能只需要定义一次;
这些都保证了汉编软件能够快速和有效地被开发,同时,如果管理得当,也可以作为自身文档的基础。
汉编语言的5个主要元素决定了它的特点:
·一个词典;
·两个数摞,一个是参数摞,另一个是用于嵌套的返回摞;
·键盘(输入流)解释器;
·一个编译器;
·虚拟存储; 词典是汉编定义词的数据和代码存储空间,也为编译建立了词的索引。词典中的词包括汉编程序代码词、常数定义词、变量定义词、不定量定义词,面向对象部分还有模板、对象、对象事件、消息。
汉编代码存储在词典中。词典占据了系统存储器的很大部分,它由一个串线链接的可变长度的项目组成,每个项目定义了一个词。每个定义的内容根据词的类型(数据项、常数、操作序列等)而有所不同,词典是可扩展的。
词是由“定义词”加入词典的,最常用的定义词是“编。”当“编”执行的时候,马上就把后面的词名扫描,建立一个词典项,然后进入“编译”模式。有许多不同的编译方法,最常用的是“串线编码”,这种方法把定义编译成一系列以前定义词的地址引用。词的定义由“。”(句号)结束。下面就是一个词的定义:
编平方(--)♂*显。
当一个词名项被编译到词典中的时候(称为定义的首部),它包含一个指向词典中前一个首部的指针。新词的词名加入词典(这里就是平方),接着一个指向词名为“(编)”子程序调用的指针编译到词典中作为定义的第一部分,这个指针指向一段在解释定义体时需要执行的代码。当然,这里所说的不是唯一的编译技术,但它的应用最为普遍,这种技术称为间接串线编码,因为定义中的第一个项目是一段代码的引用,这段代码知道如何解释定义的其它部分。
定义的其它部分称为这个定义的体。在编译模式下,系统将依次寻找每个词的首部。每个首部地址依次放到定义体中,这样就产生了一个地址列表。最后在到达“。”时,词名为“。”的子程序地址被编译进词典。“。”子程序用来将控制返回到调用词,就像一个子程序返回一样。
E. 谁给我划一个俄罗斯方块源代码的流程图
http://download.csdn.net/source/159481 到这里看看吧 不知道能不能下载
软件说明:
/* *游戏说明:此为我边学边做的,但有很多的BUG,参照了我从网上下载的游戏方块设计 * 一、游戏的BUG * 1、提示分数那地方,玩过游戏后,长了分数后,再玩时,后面的数据没清掉 * 2、重级BUG:当在游戏过程中,切换了一个旁边的后,再切换回来后, * 刚才的方块不显了,而且游戏区的数据也不见了。 * 3、我在刚开始做时,没有要窗口上的关闭,现在想要,但不知道怎么加。 * 4、如果用鼠标点了菜单后,再回到游戏区,数据方块又不见了。 * * 二、此游戏没有版权,可以乱改,反正我也是在学习,谢谢那些无私的网友们,不过 * 请你们下次提交上来的源程序有个说明好不好,看得我头都大了,流程图也没得, * 设计说明也没有,完全看源代码,很费力的!谢谢对新人的支持。 * * 三、如果那位高手愿意,请收我为徒弟吧,我学过c/c++、数据结构、编译原理、操作系统等( * 计算机专业的),但对于VC这个大东西来说,,好像一点用也没有,现在在边学边做,门不好入呀! * * 四、请高手们帮帮我,请给分析一下问题在哪,谢谢,我对VC还不是很清楚,在文件目录下 * 有设计时的流程图。设计说明我没有写,我是针对每一个流程图模块来设计和编码的。 * * 五、在游戏中,我加了很多注释,以方便理解,主要的代码都在CChileView.h、CChileView.CPP中 * 我想的是,如果新人也想看看的话,可能理解起来快点。不过有点乱,编码中有些冗余。没来 * 得及改。如果你改好了,请给我一份,我想学学。谢谢! *
F. 编译原理 词法分析程序的设计与实现实验题
说他像苍蝇,是骂苍蝇呢还是骂他呢?
G. 编译原理: 画出识别如下单词的状态转换图: Char int float
(四)练习该实验的目的和思路: 程序开始变得复杂起来,可能是大家以前编过的程序中最复杂的,但相对于 以后的程序来说还是简单的。因此要认真把握这个过渡期的练习。程序规模 大概为 200 行及以上。通过练习,掌握对字符进行灵活处理的方法。 (五)为了能设计好程序,注意以下事情: 1.模块设计:将程序分成合理的多个模块(函数/类) ,每个模块(类)做具 体的同一事情。 2.写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。 3.编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。 4.程序设计语言不限,建议使用面向对象技术及可视化编程语言,如 C++, VC,JAVA,VJ++等。
四、上交:
1.程序源代码及可执行文件(当堂检查/通过网络提交) ; 2.已经测试通过的测试数据 3 组(全部存在一个文本文件中,以“第一组输 入/输出/第二组输入/输出/第三组输入/输出”的顺序存放) ; 3.实验报告按照提供的模板填写: (1) 功能描述:该程序具有什么功能? (2) 算法描述:所采用的数据结构,基本实现算法及某些特殊过程的实 现算法(如在处理某个问题时,你所采取的好的处理方法等)注意 此处不要简单的将源程序抄上来。 (源程序将打印出来作为附录) (3) 程序结构描述:函数调用格式、参数含义、返回值描述、函数功能; 另外可以附加函数之间的调用关系图、 程序总体执行流程图及类的 层次图。 (4) 实验总结:你在编程过程中花时多少?多少时间在纸上设计?多少 时间上机输入和调试?多少时间在思考问题?遇到了哪些难题?你 是怎么克服的?你对你的程序的评价?你的收获有哪些? (5) 写出上机调试时发现的问题,以及解决的过程; (6) 附上源程序(打印的)
H. 易语言的编译原理和中间代码是什么
基本特点
易语言是一个自主开发,适合国情,不同层次不同专业的人员易学易用的汉语编程语言。易语言降低了广大电脑用户编程的门槛,尤其是根本不懂英文或者英文了解很少的用户,可以通过使用本语言极其快速地进入Windows程序编写的大门。易语言汉语编程环境是一个支持基于汉语字、词编程的、全可视化的、跨主流操作系统平台的编程工具环境;拥有简、繁汉语以及英语、日语等多语种版本;能与常用的编程语言互相调用;具有充分利用API,COM、DLL、OCX组件,各种主流数据库,各种实用程序等多种资源的接口和支撑工具。易语言有自主开发的高质量编译器,中文源代码被直接编译为CPU指令,运行效率高,安全可信性高;拥有自己的数据库系统,且支持访问现有所有数据库;内置专用输入法,支持中文语句快速录入,完全解决了中文输入慢的问题;易语言除了支持界面设计的可视化,还支持程序流程的即时可视化;除了语句的中文化之外,易语言中还专门提供了适合中国国情的命令,如中文格式日期和时间处理、汉字发音处理、全半角字符处理、人民币金额的处理等;易语言综合采用了结构化、面向对象、组件、构架、集成化等多种先进技术,并在运行效率、性能价格比、全可视化支持、适应本地化需要、面向对象以及提供Windows,Linux上的运行平台等具有特色;现有各种支持库多达40多个,用户可以使用她来满足几乎所有的Windows编程需求,多媒体功能支持强大,完善的网络、端口通讯和互联网功能支持,网上与论坛上的学习资源众多。在易语言及其编译器的设计与实现、可视化汉语编程的构建、提供多种语言版本等方面具有创新。目前易语言已取得国家级鉴定,鉴定会专家一致认为:易语言在技术上居于国内领先地位,达到了当前同类产品的国际先进水平。
支持库
易语言支持库类似于普通的程序的DLL文件。
这个支持库是易语言专用的,别的程序调用不了的,扩展名有fnr、fne、npk三种。
fnr、fne都是制作好的DLL文件,例如系统核心支持库、应用接口支持库。该类支持库一般由用户使用C++或Delphi制作,具体可以看易语言支持库开发手册。
npk属于易语言COM包装支持库,该支持库是引用COM包装库生成的,例如WebBrowser、Windows媒体播放器。该扩展名格式支持库可用记事本、写字板打开。该支持库可以由用户制作,制作方法:在易语言上点击工具--“类型库或OCX组件→支持库”命令。
模块
大型软件项目的实施一般是分工协作开发,为了支持这一点,易语言提供了模块化开发支持。易语言中的模块称为易模块。通过使用易模块,用户可以将常用的代码封装起来重复使用到其它程序,或提供给第三方使用,或用作开发大型软件项目中的某个部分,然后在软件项目的封装阶段将所有这些模块组织编译成为一个完整程序,易模块的扩展名为.ec。同时易语言支持大量非官方扩展模块,用户可自行编译模块,易语言5.11静态编译版本发布!很多易语言本身不存在的功能,私人开发的模块基本会有,更多私人开发出具有特色功能出来,模块的使用使得易语言突显“易”字,大大增加了易语言的用户人群。