【摘 要】
:
编译器的定义就是一段程序,它能读一些用抽象(几乎是数学的)记号表述的用户程序并将其翻译成更晦涩难懂的但能在计算机上直接运行的机器码。一个严重的问题是许多编译好的程序
论文部分内容阅读
编译器的定义就是一段程序,它能读一些用抽象(几乎是数学的)记号表述的用户程序并将其翻译成更晦涩难懂的但能在计算机上直接运行的机器码。一个严重的问题是许多编译好的程序含有错误,一些错误甚至会导致程序崩溃。检测和消除这些错误就需要艰辛的劳动,即费时耗力的调试过程。
为了减少错误或者写出正确的编译程序,并且尽量避免艰辛的调试过程,计算机科学家在这几十年来做了大量的工作:比如最初的为程序加入断言,到后来的精化程序。
本文就是用软件实现编译器代码生成的一篇论文。它能把OCCAM语言翻译成自定义的类汇编代码。
OCCAM语言是一种简洁的面向过程的语言,它非常类似于流行于世的C、Pascal等语言,而且比C更加简洁明了。更为重要的是,OCCAM语言以其能够处理并行和通信的特性,使其在21世纪仍有重要的研究价值。因此,对OCCAM的编译就显得尤为重要,这也是本文选用OCCAM的原因。
本文的特色就在于综合了前人的证明思路,不但给出了完整的OCCAM语言编译子句,而且用数学定理和模拟的方法证明了编译程序的正确性(无需测试,代码生成是完全正确的)。具体来说,本文采用精化的理论,证明OCCAM语言和类汇编代码之间是有精化关系的,而这种证明过程中的数学定理形式,被直接写成编译程序的子句。因此,编译程序本身的正确性就毋庸质疑。但数学定理的形式与常用的C、JAVA等语言有一定差距,为了不节外生枝,我们采用人工智能的PROLOG语言对OCCAM语言实行编译。对于处理并行和通信的OCCAM部分,直接采用定理的方式是有困难的,因此本文采用仿真的办法,来说明我们最后完成的类汇编代码,执行的操作都在源程序允许的范围之内,来说明编译程序的正确性。本文的独创性也就在这里:第一次将两种方式用在一起来证明编译的正确,并且在文章的后面,给出了完全模拟编译的环境并给出实验结果。
其他文献
随着我国电气化铁路高速、重载的发展,机车负荷引起的电力系统负序、无功、谐波及过电分相问题更为突出。采用同相供电系统取消了电分相,同时对负序、无功和谐波进行治理,是一种
本文首先介绍了预测控制的发展现状与早期研究,接着介绍了现代预测控制以及它的研究动向和发展趋势,接着重点对模型预测控制系统(包括MAC、DMC和GPC系统)进行了详细的分析,最后
多温区回流焊炉是实现表面组装技术不可或缺的环节之一,其内部有一个加热电路,通过融化预先分配在电路板上的焊料实现焊料与主板的牢固纤合,这个过程处理不好对印刷电路板的
1968年,作为模糊集的应用Chang[2]第一次给出模糊拓扑的概念,随后Lowen和Hutton给出了稍有不同的定义.根据A.P.Sostak[7],前面的模糊拓扑只是把集合模糊化了,而开集的模糊化并未
风能具有随机性、突发性以及不确定性;风力发电系统也是一个强耦合非线性的复杂系统,机组数学模型较为复杂,同时易随机组的静态工作点的改变而发生变化,表现出严重的时变、非线性特性。因此在控制系统的设计方面,传统的固定参数PID控制往往难以获得较好的控制性能,常规的PID控制器结构简单、可靠性高,能够满足大部分的控制要求,在实际工程中得到了广泛的应用。但是,常规PID控制器的设计需要知道对象的精确模型,且
近年来,居民饮食结构的变化导致胃食管反流病(Gastro Esophageal Reflux Disease,GERD)的发病率逐年上升。临床医学中,医生通过鼻腔插入患者的食管下括约肌(Lower Esophageal Sphincter,LES)上5cm处一支pH监测电极,与体外数据记录仪相连以监测患者食道pH值,从而确诊GERD。这种pH监测方法不仅会影响患者的生活、给患者的食管壁带来不适,而
伴随着信息化的不断推进,数字城市的建设也在全球展开。城市之间相互联系的时空距离越来越近,城市的功能也开始发生了重大的变化,城市规划进入了一个数字时代,要求我们用最新
学生对词汇量掌握情况会直接的影响到学生对英语的掌握能力,同时也会影响学生学习英语的信心和兴趣。英语和汉语一样,掌握的词汇量限制着学生的英语表达能力,如果词汇量掌握得多
风能是一种清洁的永续能源,风力发电不依赖外部能源,没有燃料价格风险,也没有碳排放等环境成本,此外可利用的风能在全球范围内分布都很广泛。正是因为有这些独特的优势,风力
随着现代通信技术的发展和迅速普及,特别是互联网络的全面深入,使得信息共享应用日益广泛和深入,人们对网络信息技术的依赖程度也越来越大。但是由于网络的开放性和共享性的