一种可跨语言重用的编程语言制造技术

技术编号:8215475 阅读:389 留言:0更新日期:2013-01-17 12:43
一种可跨语言重用的编程语言。本发明专利技术公布了一种使用尽可能简捷且具备自然语言语义的一组特定的术语和语法规则来编写和开发软件应用程序的方法。通过抽象某个特定功能的软件的多种语言开发中相同思想实现部分的表示方法以及多种编程语系的交集语义的描述,从而实现了跨平台、跨编译、可转换、可嵌入的统一开发。通过本发明专利技术公开的编译工具能将本语言编写的同一套代码编译成不同平台下的不同形态的应用;平台特性由相应的编译工具实现。通过本发明专利技术公布的转换工具,可将本语言编写的代码转换成其他语言(C++、Java、C#、Pascal、Obj-C等),也可以转换为被ARM嵌入式芯片直接执行的代码。通过本发明专利技术公布的标准开发库,可将本语言直接嵌入到其他语言中进行混合编程。通过本发明专利技术公布的IDE和模拟器,可实现跨平台调试和模拟运行。

【技术实现步骤摘要】

本专利技术涉及一种用于软件应用程序开发的编程语言,具体涉及到用于开发软件应用程序的一组术语、语法规则 、标准开发库、(跨语言)开发工具(包括IDE、模拟器、转换工具和编译工具)。
技术介绍
计算机编程语言有几千种,虽然都有各自的优点和特性;但它们编写的代码都存在两个问题跨语言重用性差和跨平台重用性差。第一个问题,跨语言重用性差是指在某些算法(如单源最短路径、贪婪算法等)和某类应用(如3D游戏)的编程中,各语言处理流程几乎大同小异;比如3D游戏一般的程序流程是“算法建模_>渲染_>算法建模_>渲染_>……”如此循环而成。这种情况下,如果想实现多语言开发,虽然算法相同却无法重用以前用别的语言写好的算法,便会产生重复开发成本,并可能代价极高。作为第一个问题的技术背景,虽然人们发展的UML(Unified Modeling Language,统一建模语言或标准建模语言)和F1DL (Program Design Language,设计性程序语言),被认为能够实现跨语言的建模和重用,然而这些语言都处于软件开发的设计阶段,均不被认为是软件的代码。第二个问题,许多应用需要跨多个平台,而有些平台(如iOS、WindowsPhone等)不支持Java、有些平台(如iOS、Android)则不至支持C++,无法实现用统一的语言开发多个终端的应用,而跨平台移植又可能产生昂贵的成本。作为第二个问题的技术背景,历史上出现了近百种脚本语言(如Lua、Python、Ruby等)能够实现跨平台的直接代码重用。但脚本语言都是解释性和寄生性的,不能独立开发完备的软件,并且运行效率低、语法冗长(相比本语言)、易出错,难以实现用户级的线程库和复杂递归应用,不可转换成其他语言,也不可直接编译成软件产品。相比本专利技术来说,这些语言还存在语法扩散、过度使用符号标示、精度表示繁琐、缺乏标准函数库、开发效率低、执行慢等缺点。
技术实现思路
为了解决上述技术问题,本专利技术公开了一种编程语言,为方便说明,以下将其简称为TML (Thought Markup Language);将本专利技术的编程语言的标准开发库简称为TMLib(Thought Markup Language Library)0TML内建数据结构、动态类型和动态绑定。TML 标不符(关键词)只有 9 个for、return、break、if、else、err、continue、trace、NULL,不超过C语系(含C++、JAVA)、PASCAL语系、BASIC语系的交集,不包含语言特性、API和环境语句,确保能够转换为其他语言。TML变量不用声明,在首次使用时,由编译器自动识别,数据类型识别规则是首先根据调用需求判定,其次根据其值判定,最后判定为NULL。TML数组使用中括号[]表示,为提高重用性,不支持异构数组。TML函数不用声明(无需function、sub、def之类的修饰词),定义时不用写修饰符直接写函数名。TML函数无需定义函数类型,根据返回值自动判定函数类型。TML函数必须使用return (可无返回值)结束,调用时使用小括号O,见实施例I。TML同一函数可有多种类型的返回值。TML函数体使用空行区分。TML语句使用换行分割,语句末尾不加分号。TML使用缩排区分代码段(block) TML类不用声明,编译器使用文件名自动命名,文件名就是类名,扩展名为小写的tml,以实现自动识别编译。TML子类文件名为“父类名.子类名.tml ”。 TML多重继承文件名为“父类I.父类2.……父类η.子类名.tml”,子类中没有的attributes,按照从左到右(先查找父类I,然后查找父类2……最后查找父类η)的顺序在基类中查找。 TML的入口函数为Main,不写在代码中,必须写在项目文件中。TML项目文件必须放在project目录下,扩展名为tml,文件名按照平台和用途命名。整个项目的目录必须按照图2的格式构建。TML类构造时自动调用init函数,init可缺省,可加参数。TML支持解释性调试和编译性执行的双重运行模式。TML调试语句使用trace实现,trace只在调试时输出数据,编译时被忽略。TML编译规则是首先转成高效的C语言编译为二进制指令(二进制格式由平台定义,与代码无关),如果遇到不支持的平台,则进行字节型编译。同理,也可以让最终用户自由指定本地编译,并构建一个程序版本。TML浮点可使用e表示。TML虚数使用j表示。TML字符串用双引号””表示。TML注释与使用//和/*….*/。 TML转译字符使用反斜杠(\)表示。TML区分大小写,类名(文件名)和函数名首字母必须大写,变量名必须小写。TML没有inlcude或import语句,因为文件名和类名的统一使这些语句变的多余。若要包含外部文件也无需写在代码中,写在项目属性中即可,由编译器自动识别包含关系。避免重复包含,降低了代码依赖性。TMLib提供开发中常用的数据结构(包括异构数组、哈希表、字典等)、函数(包括绝对值、四舍五入、地板除、随机数、三角函数、正则等)和⑶I。TMLib提供嵌入到其他语言的扩展接口,也就是说其他语言通过引用TMLib将TML作为extern模式链接到同一代码中实现混合编程和源代码直接重用,见实施例2。TMLib提供一套可跨平台重用的⑶I,与现有技术的区别点在于通过单窗口虚拟多窗口多任务技术,实现最低资源消耗,控件不单独绘制,整屏一起绘制,绘制时通过多线程,多面绘制,高效率渲染。控件响应也要通过多线程来调度。两者用一个线程,绘制的时候不处理响应。因此本⑶I非常适合3D展示或游戏领域的跨平台开发。本专利技术的IDE提供带智能提示的文本编辑器和模拟器。虽然只有Windows单一平台,但由于语言和库的跨平台型,因此在Windows下开发的应用也可以直接运行在iPhone等设备上。IDE对硬件要求低,PII系列即可开发,实际中我们采用PIII 800/256M配置搭建iPhone的开发环境。本专利技术的转换工具通过转换算法,将同一份TML源代码转换为C++、Java、C#、Pascal、Obj-C语言的多套源代码,也可以转换为被ARM嵌入式芯片直接执行的语言,实现跨语言的代码重用。本专利技术的编译工具能够将同一份TML源代码直接编译成Windows、Unix、MacOS X、iOS、Android、Linux、Solaris、FreeBSD等平台的多种应用,完成部分代码处理工作,实现跨平台的代码重用。 有益效果 本专利技术公开了一种简捷优美、可跨平台、重用性强的编程语言;该语言结合本专利技术公开的编译工具提供了一种简捷高效开发跨平台应用的新方法;该语言结合本专利技术公开的转换工具提供了一种跨语言重用代码的新方法;该语言结合本专利技术公开的IDE和模拟器提供了跨平台调试和模拟的新方法;该语言结合本专利技术提供的标准开发库提供了一种可高效复用代码的混合编程方法。本专利技术使作为软件开发中最宝贵资产的源代码具备最大限度的可重用性。本专利技术的编译器能够自动完成一部分代码工作,降低了程序员的工作量。本专利技术公布的语法规则和项目开发规定,使项目工程格式优美、整齐划一,提高了可读性和易维护性。本专利技术的研究始于1992年,在公布之前出现了几本文档来自技高网
...

【技术保护点】
一种用于软件应用程序开发的编程语言,包括用于开发软件应用程序的一组术语、语法规则、标准开发库、(跨语言)开发工具(包括IDE、转换工具和编译工具)。

【技术特征摘要】

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:日照市国软软件有限公司李天盟济南高新区动漫游戏研发中心
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1