关键词:
演化
XML
JAVA
编译器
摘要:
在现实世界中各个物质系统所持有的属性虽然不同,然而在单一物质系统里存在着大量相同属性的实体。例如,在生物系统中,生物都具备着年龄,性别和生命等这样的属性;在天体系统中,天体都具备着质量,运行速度和引力等属性。对于这样的演化系统,由于系统里的实体数目庞大,且实体之间的相互影响是具有偶然性和随机性的,这种看似无规律的复杂运动形态使模拟演化有一定困难。演化系统的研究大多数是从事生物或天文等非计算机专业人员,在计算机编程演化时又需要考虑到并发编程、时间驱动和消息驱动等程序设计的因素,想要通过计算机语言进行模拟仿真或者演变是困难重重的;而计算机专业人员又要储备很多的生物或天文等领域的知识才能编写出完善的演化程序。考虑到同时熟练掌握计算机和其它专业知识的人员并不多见,本论文以面向演化为目的,设计出有针对性的程序设计语言。论文首先分析演化系统在程序设计方面的特性:面向演化包括了消息驱动与时间驱动的编程思想,它需要一个基本的时间调度器控制着单个实体有计划的循环执行,实体间的交互由消息来传递,通过每个实体自身的演化,达到系统的整体演化效果。因为系统里的实体数量众多,程序采用多线程编程达到演化的目的。论文的主要工作有两方面,其一,论文的程序设计以XML语言为源语言,并使用XSD对XML语言进行规范。XML的简洁性、易理解性、易开发性以及跨平台性,使开发人员更易于编程。语言的设计偏向于声明式编程,降低非计算机人员的学习成本,从而更专注于亟待解决的问题。通过XSD对XML语言进行规范,将演化系统的主体分成了两个部分:实体和消息,实体有着自身属性和行为,而实体间的联系由消息来传递。XSD良好的设计规范使得XML语言更明了完备的描述出演化系统的性质。论文第二个方面的工作是:论文设计出健壮的编译器。由于XML作为扩展可标记语言本身不具备可编译性,因此,JAVA语言由于其并发性以及跨平台性作为我们的编译语言。论文描述了JAVA编译器的设计原理,通过对消息池,实体以及线程池的设计,JAVA编译器能够达到结合时间驱动、消息驱动以及并发编程的目的。因此,对于XML的语言编程将不必再考虑程序设计上的问题。