论文部分内容阅读
建模语言是对现实环境的模拟,是真实系统的缩影,为解决具体问题提供了一个系统的设计方案。云计算时代已经到来,新的时代有新的要求。服务成为新时代的主旋律,计算机软件领域也应努力跟上,全方位地为用户提供优质的服务。本论文尝试打破传统的设计开发流程,提出从“开发者设计范型”向“用户设计范型”转变的总体设想。设计者设计特定领域建模语言,用户通过特定领域建模语言描述自己的需求,由语言处理器直接调用基础服务,满足用户的各种需求。UML(Unified Modeling Language)统一建模语言,是面向对象领域内的标准建模语言,日益被业内人士所接受和认可,对UML的研究也是相当泛滥。通过对大量建模语言国内外研究的分析发现,目前计算方法领域的研究还是相当欠缺的,因此本论文尝试利用函数式编程语言F#,从计算方法领域着手,采用建模语言的设计理念,进行符号建模语言计算方法的研究。伴随计算机网络技术的发展,教育信息铺天盖地,因此教育信息管理日趋凸显,教育信息管理直接关系教育的绩效问题,关系到国家的发展和未来。并且通过对大量建模语言国内外研究的分析发现,目前计算方法领域的研究还是相当欠缺的,因此本论文尝试利用函数式编程语言F#,从计算方法领域着手,采用建模语言的设计理念,对教育信息管理领域语言计算方法进行研究。本论文提出了“三步走”设计模型:扫描器、解析器和执行器。第一步,扫描器的设计。扫描器是对用户输入的字符串(用户各色的现实需求)进行扫描,通过扫描器程序中的正则表达式进行一一匹配,生成对应Token序列。正则表达式是强大、高效、便捷的文本处理工具,在文本编辑器或其他工具里,它通常被用作来检索或者替换那些符合某种模式的文本内容。如同一门袖珍编程语言的通用模式表示法(general pattern notation),赋予使用者描述和分析文本的能力。几乎任何一种程序设计语言都支持正则表达式,都可以使用正则表达式与所搜索的字符串进行匹配。第二步,解析器的设计。解析器的功能是对输入的标识符序列进行语法检查,并生成语法树。解析器的核心是上下文无关文法的设计,通过上下文无关文法描述的语法生成规则进行解析,生成对应的表达式树。上下文无关文法是一种描述语言数学模型,功能异常强大,几乎所有的程序设计语言都可以利用上下文无关文法进行定义。设计人员为程序设计语言设计编译器和解释器时,首先需要先获取该程序设计语言的文法,进而才能为该程序设计语言量身定做编译器和解释器,否则编写的编译器和解释器不能很好地或者说根本就不能为该语言翻译和使用。第三步,执行器的设计。将经过解析器解析生成的语法树结构,送入执行器,经过执行器的运算,输出计算的最终结果。执行器中用到一个递归函数,将输入的树结构由上往下分解,一直到不能继续分解(end case)为止,然后再将计算结果逐级向上返回合成最终结果。本文首先以算术语言运算为代表,设计出了关于计算方法的“三步走”流程模式,然后运用流程模式对案例关系代数具体研究,设计出解决该类具体问题的方法步骤。对于案例二图形化语言,由于时间的紧迫,目前还没能开发出来,有待今后的进一步研究。最后对研究进行分析讨论,提出目前研究的不足和进一步的研究方向。