CN104808972A - 一种数据驱动计算机语言设计、实现、方法 - Google Patents
一种数据驱动计算机语言设计、实现、方法 Download PDFInfo
- Publication number
- CN104808972A CN104808972A CN201410035990.2A CN201410035990A CN104808972A CN 104808972 A CN104808972 A CN 104808972A CN 201410035990 A CN201410035990 A CN 201410035990A CN 104808972 A CN104808972 A CN 104808972A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- program
- link
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种计算机语言的设计、实现和方法。主要包括设计、实现和贯穿其中的工程技术方法。其特点是当有新数据产生时就有相应的消费模块用于该数据的处理(变换),当处理进行完成后,数据也将随之消亡。所以程序的执行是由新数据的产生、变换、消亡作为“推动力”的,即数据驱动。因此本发明称为“数据驱动计算机语言”。本发明的突出特点是程序的编写与编辑对键盘鼠标的依赖很小;采用列集概念规范数据接口,灵活的数据及引用关系表达,一致的人机界面和灵活的语义表达。其优点是易于在模块层面上快速编程,实现应用;提高模块的重用率和人机交互的灵活性。
Description
技术领域
本发明涉及一种计算机语言的设计、实现和方法。尤其涉及以下环节和技术,数据的输入(典型地有数模转换和编解码等技术)、数据表示与解释(典型地有数据存储技术)、数据组织与检索(典型地有关联数据描述和查找技术)、分支与流向(典型地有数据流分支控制技术)、算法与数据变换(典型地有各种经典的工程技术算法)、数据的输出与表达(典型地有显示技术)、数据的消亡(典型地有资源回收技术)。除此以外,特别地还有人机交互技术。应用以上概念和相应技术,以及本文将要述及的设计、实现等方法,将描述一种具有一致的人机交互界面的、通用的计算机编程语言。
背景技术
数字计算机进入人们的工作、生活已经有30多年的时间了,人们和计算机的沟通和交互方式也经历的同样长或更长时间的变迁,从最初的机器码(或称为机器语言)、汇编语言到现在普遍使用的高级语言、面向对象程序设计方法。人们的程序设计体验得到了很人的改善和提高。而随着计算机的易用性的极人改善,各式各样的计算机也更多地进入的人们方方面面的生活应用中。生活中计算机应用的多样化催生了玲琅满目的各式各样的软件和应用程序。与此同时也带来了一些问题。第一,每个应用程序功能固定,使用者没有任何机会对某一款应用程序做些许的更适合自己需要的改动;第二,独立的应用程序之间不能顺畅的互相通信和互相操作,因此用户儿乎不能将两个或多个应用程序串联起来,实现应用功能的组合扩展,和丰富、灵活又易于个性化的程序设计;第三,应用程序和程序设计语言之间的差距不是明显地缩小,而是显著的增人。使得人多数各式各样的计算机使用者很难掌握现有的一种程序设计语言,应自身需求实现应用程序并,和自己的计算机进行更多的、更灵活的交互。正是因为有了上述这些问题,导致绝人多数计算机使用者与系统的交互是完全依赖于现有的,功能被预先定义的应用程序,人与计算机的交互形式完全被应用程序所限定,设备可用性、易用性等的进一步提高受到很大限制。阻碍了各式计算机更好地、灵活地展开应用,贴近人们生活,丰富其应用领域,提高其可用性能。
本文所述计算机语言以数据为中心,以数据的产生、变换、消亡作为数据的生命周期,在此期间数据将与指定的程序模块(即变换)结合,产生相应的处理效果的同时极人的拓展了人机交互能力。
发明内容
本发明将主要包括设计、实现和贯穿其中的工程技术方法。数据驱动计算机语言,其特点是当有新数据产生时就有相应的消费模块用于该数据的处理(变换),当处理进行完成后,数据也将随之消亡。所以程序的执行是由新数据的产生作为“推动力”的,即数据驱动。因此本发明称为“数据驱动计算机语言”。
本发明的突出特点是程序的编写与编辑对键盘鼠标的依赖很小;采用列集概念规范数据接口,灵活的数据及引用关系表达,一致的人机界面和灵活的语义表达。其优点是易于在模块层面上快速编程,实现应用;提高模块的重用率和人机交互的灵活性。
设计
作为一种计算机通用语言,须具有数据描述能力、表达式描述能力、顺序描述能力、分支描述能力、循环描述能力、模块定义和引用能力等。因此,下文将就这些功能展开设计。
定义广义表1作为语言的核心和基础
广义表有足够的描述能力描述一种计算机语言。
数据描述
本计算机语言中的数据类型分为基础型、自定义型和复杂型。基础型包括整型、浮点型、布尔型、字符串型等;自定义型是由程序设计者自己定义的,其成员数据是由基础型数据组成的;复杂型数据不是由程序设计者自己定义的,且对该数据内部成员不完全清楚或不是全部对设计者有用,但是知道应该使用什么样的模块或处理单元对其进行处理并产生后续可用的数据。
利用广义表描述基础型数据时,须表示出基础类型名、数据名称、相应作用于该数据的变换模块等信息;描述自定义型数据时,须表示出自定义类型名、各成员定义、自定义数据名称以及相应的作用于该数据的变换模块等信息;描述复杂型数据时,须表示出复杂类型名、复杂数据名称及相应的作用于该数据的变换模块等信息。
表达式描述
表达式包括算术表达式和逻辑表达式等。表达式属于“变换”的一种。表达式的描述与算符的结合性和优先级息息相关。利用广义表可以方便的描述任意的表达式。
顺序执行的描述
顺序执行可以表示为一系列模块的有序序列,所以只要应用广义表表达清楚这一顺序关系即可。
分支描述
分支结构能使程序产生不同的执行路径。须有相应的准入条件,以及准入后需要执行的变换模块的索引等。
循环描述
将顺序执行的变换模块的输出重新作为输入即可。循环的退出则须要用到前面提到的分支结构,应至少包含两个分支,一个分支的索引指向循环;另一个分支的索引指向循环结束及后续处理。准入条件将成为选择哪个分支的依据。
模块定义和引用
对于具有一定功能的程序片段赋予一个唯一的标号或名字,名字或标号可以是这个程序片段功能的概括或抽象。这个程序片段可以通过其名字或标号被重复引用。当数据与变换模块结合时,程序即在运行。变换模块可能会修改数据,因此有些情况下,在引用模块前需要组装一个数据集供其运行时使用,在该模块运行结束后,将运行结果交由当前模块处理,而组装的数据集则随引用模块的结束运行而消亡。
实现
概念定义
模块被引用时使用的输入或输出内容称为数据。数据可以是基础型,也可以是自定义型或复杂型,当是后者时,数据需要按照一定的相对顺序和位置组织起来,这个过程称为列集。反之称为散集。当数据从一个列集转换为另一个不同的列集时称为列集变换。程序在运行时会将数据按照列集定义格式装配成一个包含实际数据的列集,称之为运行时列集。
一段具有一定功能或涵义的程序称之为模块。可以产生原始数据的模块称为源模块(或输入模块);程序正常终止时所在的模块称为终模块(或输出模块);源模块和终模块之间可以有0到多个模块,称为变换模块(或变换)。
A模块是B模块的直接前驱2,B模块是A模块的直接后继3,那么A模块到B模块有一个链接。如果这个链接只传递控制,那么这个链接称为控制链接;如果这个链接只传递数据,那么这个链接称为数据连接;如果这个链接即传递控制又传递数据则称为复合链接;如果这个链接仅在满足一定条件时才有效则称为条件链接;条件链接分为条件控制链接,仅在条件满足时传递控制,和条件复合链接,仅在条件满足时既传递控制又传递数据。控制链接按传递次序组成序列或网络构成控制路径;数据链接按传递次序组成序列或网络构成数据路径。
程序设计过程中,通过确定每个模块的功能及执行的先后顺序,使用相应链接完成整个程序的过程称为模块导引程序设计;当主要使用数据类型确定相应的处理模块进行程序发计时称为数据导引程序设计。
当两个模块引用不同的数据,但这些数据有关联关系时,模块的引用过程需要同步,以保证程序的含义正确。因此当程序得到正确的同步执行时,称之为并发安全的。
程序编辑与人机交互
列集定义界面设计如附图1所示,界面成表格形式。表格最左上角空格中为列集名。在每一列中分别填写数据名、数据类型和初值(不可以为空)。运行时列集中的数据如有“空值”,则表明需要的数据没有产生并送达该运行时列集,需要等待或作进一步处理。
列集变换界面设计如附图2所示,界面成表格形式。表格最左上角空格中为列集变换名。表格第一列是源列集各数据的名称及顺序;表格第一行足变换后的次列集的各数据的名称及顺序。其它行列可以是“1”、“0(或不填写)”、“F”等。“1”表示相应行的数据直接传给相应列;“0”表示不传递数据;“F”表示相应行的数据通过变换F传给相应列。
表达式定义界面设计如附图3所示,界面成表格形式。表格最左上角空格中为表达式名。表格第一列是数据名;表格的第一行是表达式,表达式的每一个变量占一列,运算符占一列:表格的第一行最后一列是表达式的计算结果,最后一列的其它行为空。其余的表格中,对应算符的表格均应为空。剩下的表格可以是“1”、“0(或不填写)”、“F”等。“1”表示相应行的数据直接传给相应变量;“0”表示不传递数据;“F”表示相应行的数据通过变换F传给相应变量。
链接定义界面设计如附图4所示,界面成表格形式。表格最左上角空格中为链接名。表格第一列是前驱模块名;表格第一行是后继模块名。其它空格可以填写“1”、“0(或不填)”、“K”、“D”、“H”、“B”等。其含义分别是,“1”表示对应的行模块的数据和控制直接链接到相应的列模块,是一种平凡的复合链接;“0”表示没有链接;“K”表示对应行列间仅有控制链接;“D”表示对应行列间仅有数据链接;“H”表示对应行列间是一个复合链接;“B”表示满足条件时链接有效。其中“K”、“D”、“H”、“B”所表示的具体内容可以借助其它界面详细定义。当链接一同与其前驱模块、后继模块被命名后,它们的这个整体称之为一个新的模块。可以在程序的其它位置被引用。当同一行中有多个控制标记时,多个控制链接仅表示有多个后继模块将被引用,并不标明引用模块之间的先后顺序。
同一个链接定义界面中控制链接可以出现在多行中,其表明程序具有并发或并行特征。因此需要有并发安全保证机制。可分为两类,静态并发安全保证和动态并发安全保证。静态并发安全保证指程序在编辑、编写时所作的并发安全检查;动态并发安全保证指程序在运行时所作的死锁预防1、死锁避免5和死锁检测与恢复6。静态并发安全保证和动态并发安全保证可以分别使用上文提到的列集和运行时列集等数据结构结合相应策略和算法实现。
对于程序设计者,在程序编辑过程中可以加入一些策略,使两个或多个前驱模块的数据集完全产生后或同时占有这些资源时再将数据集发给后继模块。这一策略可以通过将关联的数据列集合并生成新的数据列集来实现。这个合并后定义的新的数据列集不参与运行时数据传递,但表明数据同步关系。这样可以避免死锁。
约束管理
本专利所描述的数据驱动计算机语言,其编写及编辑过程,如上所述,是基于一个个形式一致,含义各异的表格完成的。而对表格的内容编辑人多是依赖系统中已有的模块,并进行选择和链接等操作,从而形成具有新功能的应用程序。由于模块的数据接口即适用的列集各异,所以在编辑界面中可以根据数据类型或模块特点等因素,仅将可以适配的后继模块或相关表格显示出来,方便编程者编辑程序。
附图说明7
图1本发明所述“列集定义界面”示意图
图2本发明所述“列集变换界面”示意图
图3本发明所述“表达式定义界面”示意图
图4本发明所述“链接定义界面”示意图
具体实施方式
具体实施时借助以下系统已有软便件,系统API、数据库系统API,一种编程语言(一般地C/C++或Java)。通过以下过程建立本发明所述计算机语言。
定义实现基础输入模块这些模块将涵盖系统所能接收的所有数据,并从标准的数据接口产生数据输出,供后继模块使用。
定义实现基础输出模块这些模块将产生形式各异的输出效果。
定义以上基础模块所使用到的列集及与模块的关联关系在随后的应用中便可以使用这些数据,处理、约束相关程序设计。
实现大量的算法模块及灵活的数据接口在各行各业中有大量的成熟的算法存在。在这里将这些算法重新实现为具有标准接口可以被灵活引用的模块。随同程序模块的实现,须将典型用例、文档等一同实现。以便参考使用。
按前述方法实现人机交互编程,并实现程序生成功能。
Claims (10)
1.一种数据驱动计算机语言设计、实现、方法,其特征在于,当有新数据产生时就有相应的消费模块用于该数据的处理(变换),当处理进行完成后,数据也将随之消亡。即程序的执行是由数据的产生、变换、消亡不断驱动的。由一些模块通过链接(分为数据链接、控制链接、条件链接和复合链接等)形成彼此间有一定的执行顺序,具有一定的功能和意义的程序。
2.继权利要求1,其特征还在于,系统中有基础输入模块和基础的输出模块,以及可选数最和类型的变换模块。而编程过程可以归结为一系列的表格内容的确定、展开与细化。程序实现和编辑的线索可以是“模块导引程序设计”方式,也可以是“数据导引程序设计”方式。
3.根据权利要求1,其特征在于模块间表达和传递数据时,数据采用列集的组织方式;当数据组织有不同时,可以通过列集变换实现数据结构的变换。包含运行时数据的列集称为运行时列集,列集和运行时列集可以起到数据同步的作用。
4.根据权利要求2,其特征在于,表达式定义采用扩展的列集变换形式将数据与表达式中的各变量建立对应关系。
5.根据权利要求1,其特征在于,链接将直接前驱模块和直接后继模块联系起来。链接有“空”链接,即无链接;平凡的复合链接,即数据不加变换地通控制一起传递到后继模块;控制链接,即只传递控制到后继模块;数据链接,仅传递数据到后继模块;复合链接,不仅传递控制而且传递数据到后继模块;条件控制链接,仅在条件满足时传递控制;条件复合链接,仅在条件满足时既传递控制又传递数据。复合链接与数据链接,可以进一步的展开、细化、定义,当无进一步操作时,即认为与平凡链接有同等效果。
6.根据权利要求5,其特征在于,当一个或多个链接一同与其前驱模块、后继模块被命名后,它们的这个整体称之为一个新的模块。通过这个名字,该模块可以在其它位置被引用。
7.根据权利要求1、3,其特征在于,一方面,程序运行时可以动态生成新的数据列集供后继模块使用;另一方面,程序运行时可以使列集数据消亡。当一个程序所属的所有数据全都消亡时,程序即结束。
8.根据权利要求1、2,其特征在于,一个程序中可能出现两个或两个以上控制路径并行的情况。这时程序的行为是并行或并发的。
9.根据权利要求8,其特征在于,程序设计时通过定义“合并”的列集,使数据得到同步。除此外,程序在编写、编辑时可以进行静态并发安全验证,在运行时可以进行动态并发安全保证。
10.继权利要求2,其特征还在于程序编写、编辑环境可以利用数据、模块之间的关联关系进行约束管理,方便程序正确编写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410035990.2A CN104808972A (zh) | 2014-01-26 | 2014-01-26 | 一种数据驱动计算机语言设计、实现、方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410035990.2A CN104808972A (zh) | 2014-01-26 | 2014-01-26 | 一种数据驱动计算机语言设计、实现、方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104808972A true CN104808972A (zh) | 2015-07-29 |
Family
ID=53693828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410035990.2A Pending CN104808972A (zh) | 2014-01-26 | 2014-01-26 | 一种数据驱动计算机语言设计、实现、方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104808972A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019148343A1 (zh) * | 2018-01-31 | 2019-08-08 | 拜椰特(上海)软件技术有限公司 | 一种新型计算机编程语言 |
-
2014
- 2014-01-26 CN CN201410035990.2A patent/CN104808972A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019148343A1 (zh) * | 2018-01-31 | 2019-08-08 | 拜椰特(上海)软件技术有限公司 | 一种新型计算机编程语言 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pope et al. | Efficiently scaling transformer inference | |
CN103377035A (zh) | 针对粗颗粒度流应用的流水并行化方法 | |
CN102314349B (zh) | 空间信息功能插件工作流搭建方法 | |
CN106777002B (zh) | 一种基于数据挖掘的医学知识库系统 | |
CN101661582A (zh) | 工作流管理系统及实现工作流定义工具的方法 | |
CN103218706A (zh) | 工作流文件生成方法及设备、生成执行方法及系统 | |
CN101901161A (zh) | 一种面向能耗相关软/硬件划分的层次化控制数据流图建模方法 | |
CN102323772A (zh) | 用数据库运算符的状态机表达 | |
CN106681820A (zh) | 基于消息组合的可扩展大数据计算方法 | |
CN110245108A (zh) | 执行体创建系统和执行体创建方法 | |
CN107875632A (zh) | 实现人工智能行为的方法、系统及人工智能行为编辑器 | |
CN110673844A (zh) | 一种图像处理软件开发方法及系统 | |
CN101872302B (zh) | 一种基于bpel的控制信息流图的建模方法 | |
CN104808972A (zh) | 一种数据驱动计算机语言设计、实现、方法 | |
CN111160535B (zh) | 基于Hadoop的DGCNN模型加速方法 | |
CN102736552A (zh) | 一种应用于plc开发的梯形图转换为语句表的方法 | |
CN105335135A (zh) | 数据处理方法和中心节点 | |
Syriani et al. | Programmed graph rewriting with DEVS | |
CN102393820A (zh) | 一种楼宇监控系统控制逻辑的实现方法 | |
Dubinin et al. | Automatic generation of automation applications based on ontology transformations | |
CN103955368A (zh) | 一种软件模糊自适应支撑系统和开发方法 | |
CN102136975B (zh) | 一种面向大规模网络环境的相似网络构建方法 | |
Fikri et al. | A near metal platform for intensive big data processing using a novel approach: persistent distributed channels | |
Zhang et al. | Overview of the task management system of ternary optical computer | |
CN105094994A (zh) | 一种程序间通信再编程软件设计实现及人机交互方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: Zhang Jiong Document name: Notification that Application Deemed to be Withdrawn |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150729 |