量子程序设计语言NDQJava2处理系统分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
量子程序设计语言NDQJava2处理系统分析
摘要:ndqjava2是在ndqjava系统的基础上发展而来的,而计算机硬件的革新,也使得量子效应开始影响到电子元件,量子计算也会在不久的未来终将超越传统计算成为一种新型模式。
对于量子程序的设计,应用到ndqjava2这种设计语言,这个系统是对ndqjava 的创新,在原本的基础上增加了条件语句、循环语句、子程序、异常处理模块等量子成分,完善了ndqjava系统,使得语法分析更加准确。
关键词:ndqjava2;创新;程序设计;量子成分
中图分类号:tp311.52
量子程序设计语言ndqjava2处理系统,是借助于ndqjava的经典系统,加以相应的量子成分,在ndqjava2的处理系统中,是使用的层层递进的树形结构,把语法树来翻译成java代码,更加有利的实现语法的分析。
1认识ndqjava2语言
ndqjava2是在ndqjava的基础之上,增加了具有量子成分的条件语句、循环语句、子程序等进化而来,形成的是一种混合式的、结构化的量子程序设计语言。
但是由于技术的限制,还没有真正的量子计算的问世,要进行ndqjava2设计语言,就要在传统计算机上进行模拟,由于ndqjava2和ndqjava一样,都是以java为基础的,所有要采取从编译到解释的过程。
在设计中,也遵循着ndqjava的原则:实用、简明、严谨、快速。
量子成分的条件语句,与java语言的运用相类似,主要是为了解决在ndqjava在书写时没有固定的条件控制语句,时常需要在传统部分与量子部分之间进行切换作业,影响了程序效果。
在ndqjava2的条件语句中,每一个作为变量的量子都能独立的使用一个使能量子,更加清晰合理。
量子成分的循环语句,在ndqjava2中会先进行判断,判断语句的真伪,如果证明为真,就进行量子程序表达式的循环,但如果证明为伪,就会终止循环。
量子成分的子程序,解决了程序书写时的重复问题。
子程序应用于ndqjava2主要是分为定义、调用这两个部分,能有效减少语言的重复情况,在出现重复的计算时,就可以把相互重复的部分代码变为一个子程序,使程序结构变得更加清晰。
量子成分的异常处理,量子的程序设计语言,与传统的设计语言有一个很大的不同点,就是量子的变量性质。
在量子的语言结构中,引起异常变化的因素非常多,比如:if语句的使用,在条件满足的情况下进行,但在条件不满足的情况下就不能进行,就会引起异常情况,异常处理的模块就是专门应对这样的情况。
2ndqjava2系统功能
ndqjava2以其创新的设计,对ndqjava进行系统的优化,也是在java语言的基础上,进行从编译到解释的过程。
主要是在词法分析、程序汇编与解释、代码转换这几个领域作用突出。
2.1ndqjava2的词法分析功能
词法分析功能,是ndqjava2的第一大功能,主要是为了对ndqjava2源程序的单词进行识别,并形成单词的序列。
由于现在完备的量子技术还没有真正实现,所以在ndqjava2中就包括传统和量子两个部分,本着对已有资源充分利用的原则,把传统经典的部分与量子的部分进行区别处理。
在传统经典的部分中,使用的是java处理,量子部分出现的语法都默认为量子成分,自行设计。
两部分别的要创建不同的文件夹进行保存,在运行时要进行判断为哪种部分,如果为量子部分,就利用量子成分的循环语句,进行文件的处理,处理后建立起语法树。
如果经判断,为经典的部分,就由java运行。
ndqjava2系统中,语言的关键字和分解符都有独特的码与之一一对应,这就把源程序中所出现的单词,转化为单词序列,而标示符用量过大,无法实现一一对应,为了使用方便,就统一为一种码。
并进行程序设计,需要使用以的下形式:
开始→ndqjava2源程序→预处理子系统(对多余信息进行删除)→扫描程序(对单词进行实际识别)→单词序列→结束。
2.2ndqjava2的程序汇编与解释功能
为了实现ndqjava2在传统计算机上书写量子的程序,就要设计假设的基本的指令集和汇编的指令集,并使用java来编写相应的汇编程序、解释程序。
ndqjava2中,程序汇编功能是采用的分段汇编,将每一段汇编指令各自进行汇编,再集合起来,形成一个完整的汇编指令,在获取
汇编指令以后需要使用command函数把指令输入到量子的汇编系统中,量子的汇编字符串就是command函数得参数。
汇编字符串被空格分隔为多个子串,指令字符串上的第一个子串,就是操作码。
根据获得的操作码,查找对应的操作数,生成指令。
不同的指令所需要的操作数也各不相同,最后就需要把操作码与操作数进行合并,作为机器的指令向外输出。
程序的解释功能,就是对于机器的指令进行逐条的翻译过程,并执行计算。
在程序的解释功能中,经过量子的汇编程序处理过的机器指令存入系统中,以指令地址分类,分为单地址和双地址,单地址的最高操作码位数为0,双地址的最高操作码位数为1。
以此来获得准确的操作码。
分析得到的操作码,调整与之相匹配的量子操作方法,根据操作数的两种分类:寄存器编码型和数值型,进行操作数据处理,汇集为参数输入函数处理。
2.3ndqjava2的代码转换功能
ndqjava2在进行代码转换的时候,首先要遵循相应的原则,主要是三方面:第一要确保转化的正确性,第二是机构程序要清晰、易读,第三就是要利用自身的java系统,提高效率。
在进行代码转换时,采取树形的逐层转换,先转换低层次的代码,再由低层次的代码来转换高层次的代码,这就很大程度上保证了完整性和正确性。
代码之间要层级明确,建立起一个明确的结构,每一个量子成分的代码都要有一个单独的函数,各个函数之间不能在功能上产生交叉和重复。
函数之间可以进行上下级的调用,但不能
在同级之间进行调用。
在整个ndqjava2系统中,是采用建立语法树,转化为以java语言编写的指令程序,在运用中,要分析整个语法树,对每一个量子模块都进行识别,调用代码的模块转换为函数,进行处理以达到生成的java代码要包含汇编的指令。
经过本文的论述,主要是探讨了整个ndqjava2的技术理念:即在ndqjava的基础上,进行的发展和创新。
以及技术的系统功能,可以预见的是量子程序设计语言ndqjava2处理系统已经是未来发展的主流,随着科技的进步,必将能真正的投入应用之中。
参考文献:
[1]刘玲,徐家福.量子程序设计语言ndqjava-2[j].软件学
报,2011(2).
[2]徐家福,宋方敏,钱士钧,戴静安,张云洁.量子程序设计语言ndqjava[j].软件学报,2008(11).
[3]焦阳,吴楠,宋方敏.ndqjava语言处理系统量子汇编及解释程序[j].南京大学学报(自然科学版),2008(5).。