Monday, October 15, 2007

关于论文里遗漏的一点基本概念性的东西.



今天是提交论文的deadline,先祝那些今天才交的同学们good luck.

今天吃早饭的时候突然想到了数据表示语言和程序设计语言的差别,想起了Prof.Mosses在程序设计语言概念这门课上提到的一点东西. 这点东西我应该在论文里交代清楚的,但是我没有,今天在blog里说一下,就算是补偿吧.

话说那天我和根键博文因为作业上的一点小问题去请教 Prof. Mosse.那个问题是html和xml算那一种程序设计语言(结构式的,面向对象的,逻辑的还是functional的).现在想起来这个问题有些可笑,因为html和xml根本就不算程序设计语言,它们是用来表示数据的语言.

OK,回到我的论文上,我的论文题目是 基于状态图和SCXML文档的Java程序自动生成 (Auto-generation of Java programs based on statechart and SCXML documents). 基本上就是以状态图(记录在SCXML文档里)为蓝本自动生成一个描述有限状态机的java程序. 这里面需要做一个转换,就是将SCXML语言描述的有限自动机转换成由Java语言描述的有限自动机,这两个有限自动机应该是完全等价的.

下面的概念性的东西就是我论文里缺失的:

程序设计语言是用来描述过程的,就是告诉计算机"what to do and how to do",xml语言之类的数据描述语言是描述数据的,就是告诉计算机"waht is this". 但是程序设计语言的描述能力是比较强的,它相当于2型语言(乔姆斯基的层次体系Chomsky's hierarchy),它可以用来描述数据,数据结构这门学问就是讲如何用计算机程序设计语言来描述数据的. 而xml相当于2型语言以下的语言,是涵盖在2型语言里的,就是说, 用java描述xml描述的数据完全没有问题.

That's it.

No comments: