CN1509433A - 把传统软件应用程序转换为现代面向对象系统的方法和系统 - Google Patents
把传统软件应用程序转换为现代面向对象系统的方法和系统 Download PDFInfo
- Publication number
- CN1509433A CN1509433A CNA028097408A CN02809740A CN1509433A CN 1509433 A CN1509433 A CN 1509433A CN A028097408 A CNA028097408 A CN A028097408A CN 02809740 A CN02809740 A CN 02809740A CN 1509433 A CN1509433 A CN 1509433A
- Authority
- CN
- China
- Prior art keywords
- code
- procedural language
- data
- data structure
- node
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
Abstract
一种用于把具有过程语言代码的过程程序转换为一个面向对象的程序的系统和方法,其中包括:扫描该过程语言代码并且根据所扫描的过程语言代码创建一个映射;把所扫描的过程语言代码存储为中间代码;使用该映射处理该过程语言代码的至少一个片断;使用所处理的片断创建第一数据结构;根据该第一数据结构更改该中间代码;以及根据更改的中间代码创建具有一个对象类的面向对象程序。
Description
对相关申请的交叉引用
本申请要求在2001年5月11日递交的名称为“把传统软件应用程序转换为现代面向对象系统的方法和系统”的美国临时申请No.60/290,203号的优先权,该申请的全部内容通过引用的方式被包含于此。
技术领域
本发明涉及计算机程序的转换。特别地,本发明涉及用于把传统软件应用程序转换为现代面向对象系统的方法和系统。
背景技术
存在有许多技术和方法用于把软件应用程序从一种编程语言转换为另一种编程语言。但是编写软件应用程序的语言仅仅是其构成的一个方面。一种软件应用程序是一个具有许多部分的复杂系统。
该“代码”是用编程语言所编写的软件应用程序的一部分,并且包含在各种情况下该软件应用程序所执行的操作的指令。在早期的计算机中,软件应用程序是使用汇编语言来编写的。一种汇编语言程序被称为汇编程序的一个应用程序转换为由计算机的中央处理单元所执行的机器语言。汇编语言操作是非常低级的,并且使得编写应用程序变得困难。随着计算机技术的发展,其他“更高级”的语言被开发,其允许程序员更加容易地创建执行复杂任务的软件。一种称为编译器的专用软件应用程序被开发,其把较高级语言转换为可以由计算机所执行机器语言。较高级语言使得程序员把代码组织成称为例程或过程的代码块,其可以根据需要被重复执行。
软件应用程序还需要被用于管理信息。因此软件开发工具提供描述数据结构的能力。数据结构提供按照有组织和可识别的方式把数据存储在存储器中,使得数据可以被该代码所作用。该代码包含用于作用在该数据结构上的指令,并且被按照称为例程的片断而分组。在早期的软件开发工具中,该数据结构和例程被分别定义。为了使得任何例程作用于数据,该数据必须被作为参数传送到该例程。编写称为例程并且传送参数的方法通常被称为“过程程序设计(procedural programming)”。一种更加现代的方法是“面向对象”或者OO模型。该OO模型相对于该过程模型具有较大差别。
在OO模型中,数据结构和代码例程可以被分组为被称为“类”的单个独立数据结构。一个类是称为方法的例程的模板定义,并且数据结构属于特定种类的对象。该类定义成员对象的公共属性。由于模块化可重新使用的代码结构,OO程序可以被容易地创建和更改。
OO程序设计还具有许多其他有利特性,例如继承性。继承性使得用户通过指定另一个对象作为其父类(或者“超类”)而创建一个新对象。该新创建的对象立即获取所有父类的功能。但是,用户可以在任何情况下定制新类的行为。
一个“用户界面”是使得个人与软件应用程序交互作用的应用程序的一部分。在许多情况下,该用户界面使用“窗体”来创建。一个窗体指定在一个显示器上显示给用户的“字段”和“点缀(trim)”的外观。字段是用户可以输入数据的各个区域。点缀是例如标签这样的固定信息,其指示用户在不同的字段中输入何种的信息,或者在该应用程序提供一些其他目的。通常这些窗体不使用代码来实现。而是,存在作为一个软件开发环境的一部分的“窗体编辑器”,其使得程序员交互地构造该窗体。该窗体的定义被存储在一个存储库和该开发环境中,并且在该应用程序被执行提供该窗体的显示。
1970年代和1980年代的软件开发工具使用一种“基于字符”的用户界面。一般来说,该用户界面被限制于显示24行,并且每行为80个字符的窗体。这些工具通常使用在一个终端上的第25行来显示与该活动窗体相关的命令。更加现代的工具允许使用图形用户界面(GUI)的窗体。该GUI使得具有更大数目和多种用户控制的更加复杂的窗体得以实现。
该代码和窗体一同创建一个可以执行任务的应用程序。管理用户界面的程序的一部分被称为“显示逻辑”。这包括捕获用户输入和启动程序动作的代码语句,以附加的信息提示用户或者否则对该显示器做出改变。该代码的其他部分被称为“业务逻辑”。该业务逻辑包括工作流程、数据库存取、事务处理和作为用户命令的结果的其他动作。业务逻辑和显示逻辑通常是相互纠缠在一起的。
一种数据库系统(DBMS)是可以存储、更改和从数据库中提取信息的程序的集合。以查询(这是一个格式化的问题)的形式从数据库请求信息。用于构造查询的规则被称为查询语言。不同DBMS支持不同的查询语言,但是这是被称为SQL(结构化查询语言)的一个半标准化的查询语言。
存储在一个数据库中的信息可以用各种格式来显示。大多数DBMS包括一个报告书写程序,其使得数据以报告的形式输出。该报告写入程序也被称为一个报告产生器,这是从一个或多个文件提取信息并且以特定格式显示该信息的数据库管理系统的一部分。报告书写允许选择满足特定条件的记录,并且在行和列中显示所选择的字段。数据可以被格式化为饼分图、柱形图和其他图形。一旦创建一个报告格式,该格式标准可以被保存在一个文件中并且在将来演示时被重新使用。
相关的数据库管理系统(RDBMS)是一种相关窗体。关系数据库可能需要关于数据如何相关或者如何从该数据库中提取的几个假设。结果,可以用许多不同方式来察看相同的数据库。在关系数据库管理系统中,信息被以窗体的形式存储,例如参照排列为行和列的数据的电子窗体。一个关系系统所需的特征是单个数据库可以在几个窗体上展开。
使用一些类型的“构架”来实现一个软件应用程序。该构架描述应用程序的基本结构。构架的一个方面关于所涉及的计算机的数目。单个层级的应用程序是所有应用程序和/或系统在单个计算机上运行的应用程序。这包括任何外部调用,即,制作其他软件应用程序所需的软件。例如,一个软件应用程序可能“调用”一个数据库管理系统,以提取或更新数据。在单个层级的模型中,该软件应用程序和数据库管理系统将运行在单个计算机上。用户接口可以显示在一个“哑终端”上,这是能够仅仅显示一个窗体的设备,使得用户输入信息,并且把该信息返回到“主”计算机。
一个客户机/服务器应用程序或者两个层级的软件应用程序是这样一个应用程序,其中该软件应用程序运行在一个计算机(客户机)上,并且通过网络连接对另一个计算机(服务器)上运行的其他软件应用程序进行外部调用。
一个最近的构架创新是N层级的应用程序。在该N层级的模型中,仅仅部分软件应用程序运行在该客户机工作站上。这通常是一个智能的用户界面(或者是瘦客户机(thin client))。当需要执行特定任务时,该客户机定位包含所需的业务逻辑的一个“应用程序服务器”,并且该工作实际在运行应用程序服务器的计算机上执行。该应用程序服务器可能需要与另一个计算机相联系,例如数据库服务器,以完成该客户机所要求的处理。当该事件链最终涉及无限数目的客户机时,该模型被称为N层级模型。
当今许多组织所面临的一个挑战是它们已经投入大量的金钱和时间来开发使用字符界面的软件应用程序,其本质是程序上的,并且应用于单个层级的模型。这些应用程序通常被称为“传统”应用程序。支持和增强这些应用程序是一个大的挑战,因为开发人员不再学习创建这些程序的技术。另外,当前的互联网和电子商务世界需要采用图形用户界面的系统,它们本质上是面向对象的,并且使用N层级的模型来实现。目前还没有创建使得一个组织把它们现有的传统应用程序转换为使用图形用户界面的现代的面向对象的N层级应用程序。结果,该组织必须经历费时和费钱的过程来使用现代工具完全重新设计和改写该应用程序。
根据本申请的方法和系统解决这些和其他问题。例如,根据本发明的该方法和系统能够把一个传统软件应用程序“转换为”基于GUI的软件应用程序。该由本发明所完成的转换包括转换和增强该系统的各个方面。在单个处理中,传统软件应用程序的基于字符的用户界面可以被转换为GUI,该代码和数据结构被集成、重构和再生为适当形成的对象类,并且对该传统软件应用程序进行增强和添加,使其操作为一个客户机/服务器或者N层级系统。
发明内容
本发明涉及一种用于把具有过程语言代码的过程程序转换为一个面向对象的程序的方法,其中包括扫描该过程语言代码并且根据所扫描的过程语言代码创建一个映射,把所扫描的过程语言代码存储为中间代码,使用该映射处理该过程语言代码的至少一个片断,使用所处理的片断创建第一数据结构,根据该第一数据结构更改该中间代码,并且根据更改的中间代码创建具有一个对象类的面向对象程序。该方法还可以包括当检测到该过程语言代码的预定片断时暂停处理该过程语言代码的步骤,以及根据预定片断更改其他中间代码。该方法还可以包括根据该过程语言创建第二数据结构,并且该第二数据结构可以是具有识别该过程编程语言的语句的属性的一个节点的一个层级树。创建第一数据结构的步骤可以包括根据所处理的片断定位在第二数据结构中的一个节点,遍历第二数据结构中的节点直到根节点,并且把所遍历节点的内容包含在第一数据结构中。
本发明还涉及一种包括用于把具有过程语言代码的过程程序转换为面向对象程序的计算机可执行代码的存储介质,包括用于扫描该过程语言代码和根据所扫描的过程语言代码创建一个映射的代码,用于把所扫描的过程语言代码存储为中间代码的代码,用于使用该映射处理该过程语言代码的至少一个片断的代码,使用所处理的片断创建第一数据结构的代码,用于根据第一数据结构更改该中间代码的代码,以及用于根据该更改的中间代码创建具有一个对象类的面向对象程序的代码。该存储介质还可以包括用于在该过程语言代码的预定片断被检测时暂停处理该过程语言代码的一个片断的代码,以及用于根据预定片断更改其他中间代码的代码。该存储介质还可以包括用于根据该过程语言创建第二数据结构的代码,以及该第二数据结构可以是具有识别该过程编程语言的语句的属性的节点的层级树。用于创建第一数据结构的代码可以包括用于根据所处理的片断定位在该第二数据结构中的一个节点的代码,用于遍历该第二数据结构中的节点直到一个根节点的代码,以及用于把所遍历的节点的内容包含在第一数据结构中的代码。
本发明还涉及一种在传送介质中体现并且包括用于把具有过程语言代码的过程程序转换为一种面向对象程序的计算机可执行指令的计算机数据信号,其中包括用于扫描该过程语言代码和根据所扫描的过程语言代码创建一个映射的数据信号部分,用于把所扫描的过程语言代码存储为中间代码的数据信号部分,用于使用该映射处理该过程语言代码的至少一个片断的数据信号部分,使用所处理的片断创建第一数据结构的数据信号部分,用于根据第一数据结构更改该中间代码的数据信号部分,以及用于根据该更改的中间代码创建具有一个对象类的面向对象程序的数据信号部分。该计算机数据信号还可以包括用于在该过程语言代码的预定片断被检测时暂停处理该过程语言代码的一个片断的数据信号部分,以及用于根据预定片断更改其他中间代码的数据信号部分。该计算机数据信号还可以包括用于根据该过程语言创建第二数据结构的数据信号部分,以及该第二数据结构可以是具有识别该过程编程语言的语句的属性的节点的层级树。用于创建第一数据结构的数据信号部分可以包括用于根据所处理的片断定位在该第二数据结构中的一个节点的数据信号部分,用于遍历该第二数据结构中的节点直到一个根节点的数据信号部分,以及用于把所遍历的节点的内容包含在第一数据结构中的数据信号部分。
本发明还涉及一种用于把具有过程语言代码的过程语言转换为一种面向对象程序的方法,其中包括:扫描该过程语言代码和根据所扫描的过程语言代码创建一个映射,把该映射和所扫描的过程语言代码作为中间数据(metadata)存储在一个存储库中,创建用于每个部件的所转换表示的新目标中间数据容器组,使用过程中间数据表示处理该过程语言代码的至少一个片断,以使用所处理的片断创建第一抽象语法树,根据第一抽象语法树增殖该目标中间数据容器并且根据该第一抽象语法树产生具有一个对象类的原始过程程序的面向对象的中间数据表示。该方法进一步包括用于在该过程语言代码的预定片断被检测时暂停处理该过程语言代码的一个片断的步骤,以及根据预定片断更改另一个抽象语法树的步骤。该方法可以进一步包括根据该过程语言创建第二抽象语法树的步骤,其中第二抽象语法树可以是具有识别该过程编程语言的语句的属性的节点的抽象语法树。创建第一抽象语法树的步骤可以包括根据所处理的片断定位在该第二抽象语法树中的一个节点的步骤,用于遍历该第二抽象语法树中的节点直到一个根节点的步骤,以及把所遍历的节点的内容包含在第一抽象语法树中的步骤。
附图说明
从下文结合附图的详细描述中,可以更好地理解本发明以及其附加的许多优点,其中:
图1示出能够实现本发明的方法和系统的计算机系统的一个例子;
图2示出根据本发明的一个实施例的流程图的例子;
图3示出根据本发明一个实施例的传统语言语句语法树的示意格式;
图4示出根据本发明一个实施例的抽象语法树的一个示意格式;
图5示出根据本发明一个实施例的处理的流程图;以及
图6示出被表达XML文档的一个抽象语法树的示意表示。
具体实施方式
在图中所示的本发明的所述优选实施例中,为了清楚说明的目的使用具体术语。但是,本发明不限于所选择的具体术语,并且应当知道每个具体部件包括可以用类似的方式工作的所有技术上的等效物。
图1示出能够实现本发明的方法和系统的一种计算机系统的例子。本发明的系统和方法可以以在一个计算机系统上运行的软件应用程序的形式来实现,例如,该计算机系统例如大型机、个人计算机(PC)、手持计算机、服务器等等。该软件应用程序可以存储在例如软盘、光盘、硬盘等等这样可以由该计算机系统所存取的一个记录介质上,或者可以远离该计算机系统并且通过到例如局域网或互联网这样的一个网络的硬布线或无线连接而存取。
该计算机系统被总称为系统100,并且可以包括中央处理单元(CPU)102、存储器104,例如随机存取存储器(RAM)、打印机接口106、显示单元108、(LAN)局域网数据传送控制器110、LAN接口112、网络控制器114、内部总线116以及一个或多个输入设备118,例如键盘、鼠标等等。如图所示,该系统100可以通过一个链路122连接到例如硬盘这样的数据存储设备120。
本发明的系统和方法执行一个转换,用于把传统应用程序转换为现代的面向对象的使用图形用户界面的N层级应用程序。这可以包括用于分析该传统应用程序代码、根据该传统代码创建类和它们的方法,以及根据该传统代码创建图形用户界面。在特定情况下,可能不希望转换传统代码的一些片断,其中该处理可以传送该原始代码或者可以替换新的代码。
图2示出根据本发明一个实施例的流程图的例子。在一个实施例中,该转换以采集处理140为开始,其可能涉及发现142、分析144、配置146、GUI设计向导148、扩展向导150、应用程序分析报告152以及准备154和收集该传统软件应用程序所需的所有资源以及准备转换它们所需的步骤。一旦以中间格式存储时,该中间部件可以通过转换处理156和转换1-转换4 158-164,其中该中间部件可以被处理,重新组织和增强。在该转换处理过程中,该传统中间部件被转换为对象中间部件。最后,在再生处理166过程中,在该扩展步骤168中,根据来自该采集处理140的结果构建库,并且在再生步骤170中,该对象中间部件被以特定的面向对象语言应用为实际对象类。
把本发明的转换系统分离为上述的多个处理提供本发明的几个附加特征。第一特征是产生“从任何位置/到任何位置”的转换。这是因为该中间部件可以由该转换系统所定义。例如,为了转换特定的传统软件应用程序,可以提供能够存储该传统部件的采集处理140作为在该库中的中间部件。为了把一个传统语言软件应用程序转换为特定对象语言,还可以提供能够用所需的对象语言从该对象中间部件创建对象类的转换处理156和再生处理166。当希望更改该转换的结果时,第二个特征是附加的新步骤可以被添加到转换系统的处理。
例如,为了定制特定的转换方法,可以在处理中添加“定制”步骤。这些定制步骤可以在执行该转换系统中的其他步骤之一后对任何或所有部件执行改变。这种定制步骤可以被用于添加、删除或更改部件。例如,希望从一个或多个窗体删除一个特定的字段,把一个不同的字段或其他资源(例如一个图标)添加到相应的GUI,然后对相关的对象代码进行更改。由于这种基础结构可能存在许多其他特征。
根据本发明的另一个方法是可以从该传统软件应用程序中的任何步骤或处理和以及任何部件重新开始。例如,如果在任何处理部分过程中出现断电,则该转换系统和方法可以从在出现断电时被处理的步骤和部件重新开始。为了实现该特征,希望所选择的存储库是一个永久的存储设备(例如,数据存储库)。
采集、转换和再生处理的示意例子在下文中更加详细地描述。
采集处理
该采集处理140公开一个转换所需的资源,把它们存储在该存储库中,准备它们以及该转换所需的任何其他中间部件。最好,该采集处理140具有报告在避免完全转换的传统软件应用程序中找到的任何缺陷的功能。这些缺陷通常是丢失的部件,例如源代码或窗体定义。该采集处理140还可以提供用于使操作员输入,其在该采集处理140遇到具有未知转换或者该转换系统还没有被编程以执行处理的传统开发环境的功能时被使用。这向操作员提供在该处理的剩余部分运行之前纠正任何缺陷或者增强该转换系统的机会。
下面的步骤是可以由该采集处理140所执行的步骤的例子。每个所述的步骤可能用于或不用于特定的转换方法。另外,每个转换方法可以具有一组配置值,其更改由该处理所产生的输出。例如,一个特定的配置值可以使得该所获得部件根据特定模式而改名。每个配置值可以具有由操作员所超越的默认设置。
发现
该发现步骤142查询该传统软件开发环境并且开发包含在一个特定应用程序中的部件类别。该发现步骤可以根据在所扫描的计算机上出现的操作系统扫描特定逻辑存储器,例如,物理存储器块和虚拟存储页。所扫描的部件可以包括但不限于源代码、窗体定义、应用程序结构、任何相关的数据库、窗体、框架、过程、记录定义、全局变量、常数、主例程等等的规划。这些部件可以被作为中间部件存储在该存储库中。另外,对于源代码部件,该源代码可能被“标记化”或者被分解为一串基本编程符号。然后,这些部件的副本被作为中间部件存储在一个“存储库”中,这些部件可以被在该存储库重复检索、更改和保存。该存储库可以是一个高速缓冲存储器、文件系统、数据库或者任何其他适当的信息存储设备。
分析
在该分析步骤144中,所有中间部件的信息被分析,并且对每个部件创建一个映射。该映射包含关于每个例程和在一个例程中的部分在该标记流中开始和停止的位置的信息。另外,关于每个部件的规格的可以被用于创建一个应用程序分析报告152。
确认
在确认过程中,产生在该传统应用程序中的所有部件。该交叉引用提供由一个部件所引用的每个部件(模块、数据源、窗体等等)的列表。然后,该存储库被检查,以保证该传统环境的所有部件已经被存储在该存储库。如果,发现任何部件丢失,则该操作员被通知以克服该缺陷。该处理可以用不被引用的部件继续执行,但是引用它们的部件将不被完全转换。
配置
在配置步骤146过程中,来自分析步骤144的信息被用于建立初始配置。该配置被存储在该中间部件中,其描述该传统应用程序本身。该中间部件控制转换处理156。在确认阶段过程中,这些参数中的一些参数可以被更改。
GUI设计向导
该GUI设计向导148向操作员提供通过超越其默认标准而定制所获得的图形用户界面的功能。该向导创建一个定制菜单栏,工具条和按键条定义被应用于所有图形形式,以在所获得的应用程序中提供一致的外观和感觉。
扩展向导
该扩展向导150向操作员提供指导该转换处理156的机会,以创建一个新的基础类库、业务对象库和用于该应用程序的前端库。
应用程序分析报告
最好该应用程序分析报告152是关于整个传统基础结构的复杂报告,并且包括所有资源和详细信息的交叉引用以及关于每个部件的规格。还可以提供上述问题区域的列表。该规格包括:在传统应用程序中的部件的种类和总数、源代码的总行数、构成每个模块的例程数目和定义、由该应用程序所提供的所有命令的编辑等等。
准备
在准备步骤154过程中,用于转换的所有附加目标OO中间部件被在该存储库中创建。如果从该转换处理的以前运行中,该中间部件存在于该存储库中,则它们被破坏并且创建新的中间部件。
转换处理
该转换处理156提供一种机制,通过该机制,现在存储在存储库中的传统中间部件被操纵以创建该对象中间部件。该转换处理156执行一种转换,其中整个传统应用程序可以被在一个多级并行处理中转换。在该转换处理156中,任何特殊的来源语句(在代码的例子中),或者窗体部分,或者该传统软件应用程序的一个部件的任何其他部分可以潜在地触发一个规则,其按照一些方式更改一个或多个部件(或过程)。例如,在一个“框架”(一个框架是需要用户界面并且具有相关窗体的一个过程)的转换过程中,该转换处理156可能发现一个参数。该参数变为被创建以替换该框架的一个对象类的属性。该框架的处理被暂停,该对象类被从存储库中提取,该属性被添加到该对象类,该对象类被返回到该存储库,并且重新开始该来源的处理。类似地,在该框架的窗体定义处理中,如果在该窗体中遇到一个字段,一个属性被按照类似的方式添加到相同的对象类中。在可能根据条件把代码的整个块从一个部件(或过程)移动到另一个部件的处理中,存在许多其他更加复杂的业务处理。
为了促进上述并行处理,应当提供具有管理来自该传统软件应用程序、新应用程序和中间应用程序(或meta-application)的部件的中间表示的功能的暂时存储设备。该中间应用程序是方便的,因为它不是依赖于任何特殊软件开发环境的特定应用。其包含在任何这些环境中所找到的结构。通过操纵“中间部件”,把传统软件应用程序转换为新的应用程序的处理可以被分为三个不同的处理:采集、转换和再生。
下面将描述作为四种转换的转换处理156的实施例。
转换1
转换1引擎158负责分解该传统源代码并且把它组织为一个可以容易操纵的结构化格式。通过使用在分析步骤过程中创建的映射作为一个向导,分解用于该部件的源代码。每个参数和变量声明以及每个来源语句被分解、组织和转换为一个内部格式。这可以通过用一些方式来实现。一种方式是把用于一个部件的传统源代码分解为一个属性树数据结构。一个属性树是为在该树中的任何节点处的不限定数目的标识符或属性的存储而提供的一个层级结构。该分解使用几个步骤来实现。
第一步骤是开发一种采用层级属性树的形式的传统编程语言的语法表示。在转换之前,一个传统编程语言语法(在图3中示出它的一个例子)被创建,其表示传统编程语言的特性。该传统语言所支持的每个不同类型的语句被在该传统语言中识别(例如,FOR-ENDFOR、CALL、PROMPT等等)。通过分组公共类型的语句而把该语句分组为一个层级结构。例如,FOR-ENDFOR和WHILE-ENDWHILE被认为是“循环控制”。对于该属性树创建单个根节点200。在该根节点200处,在对于所有语句共同的树中创建属性。例如,“行数”可以是对于所有语句共同的一个属性。在根节点之下,分类节点202被在表示为上述语句而开发的层级结构的树中创建。在每个分类节点202处,应用对于这些语句共同的属性。例如,“循环计数器”可以是所有循环控制的公共属性。最后,在表示特定语句的适当的分类节点202中创建语句节点204。为对于该语句唯一的节点创建属性。在该方法中,以具有对于该语句唯一的默认值的每个语句节点204处定义至少一个公共属性:语句类型。
在转换1 158过程中,对于每个部件开发被称为抽象语法树的另一种树。一个抽象语法树是被设计为包含完全分解的源代码的层级属性树的专用版本。一个抽象语法树的例子在图4中示出。一个根节点250被创建,并且属性在把该部件识别为一个整体的根节点250处定义。对于存在于该部件中的每个代码块创建例程节点252。如果对再生处理166(在下文中讨论)提供优点,则可以创建保存不同类型的代码块的分类节点(未示出)。每个例程节点252具有被定义的参数,其表示该例程。在该例程节点252之下创建部分节点254、256和258,并且表示该例程的不同部分。随后的三个部分类型一般为:参数节点254、本地变量节点256和语句节点258。
该转换1 158还使用在采集处理140的分析步骤144过程中创建的映射。该映射包含关于每个例程和一个例程中的部分在该标记流中开始和停止的位置的信息。以在用于该代码的参数部分的第一标记为开始,转换1 158处理标记,直到发现一个完整的说明语句。它然后把一个声明节点260添加到该参数部分节点254。在该节点处,定义完全确定义被声明为一个参数的变量的属性。对本地变量和语句部分重复该处理。一旦转换1 158识别该语句类型时,它定位在表示该语句的图3中所示的传统语言语法中的节点。它遍历该树,复制确定该语句的所有属性或者任何分类节点的属性,直到并且包含根节点。这些属性然后在该部件属性树的语句节点中定义。然后转换1 158分析该语句,并且用在该语句中找到的确切数值来代替每个属性的默认值。
另外,转换1 158保持在语句之间的关系。例如,在FOR语句之后和在相应的ENDFOR之前的任何语句将被创建为该FOR语句节点的一个子节点。该嵌套可以继续直到所需的深度。按照这种方式嵌套代码容易在转换的过程中把整个代码块向后移动。一旦该处理被完成,一个完整有组织的传统源代码的版本已经被创建,并且现在可以被作用。被表达为一个XML文档的抽象语法树的示意例子在图6中示出。
转换2
转换2引擎160负责把传统窗体转换为可以在再生过程中用于创建一个图形界面的对象中间部件。这可以用类似于该传统源代码在转换1158中操纵的方式来实现。该处理使用两个参考属性树、一个图形界面窗体模板树以及一个OO类层级树。
该图形界面窗体模板树包含一个空白的图形界面窗体的表示。用于该窗体的根节点包含该窗体的基本特性的描述。该属性树将包含三个根节点。第一根节点将包含描述“窗口”的属性。一个窗口是用于在图形用户界面上显示信息的区域。该第二根节点包含用于该菜单栏的占位符。一个菜单栏是通常置于一个窗口的顶部的特定区域,其使得用户从一系列命令中选择。该第三根节点包含子节点,其描述该窗口自身的内容。为了创建一个更加有效的处理,应当在该属性树中提供用于该窗口内容的默认配置。OO类层级树描述面向目标对象的软件开发环境的类层级结构。该属性树基本上类似于传统语言语法而创建。每个OO模型软件开发环境具有一个“系统”或建造类层级结构。该类层级结构定义构成该开发环境的基本类对象。通过采用描述在该层级结构中的每个类的每个属性的一个属性树而创建该OO类层级树。
参见图5,转换2 160从表示一个传统窗体的库中提取一个中间部件(步骤S350)。创建一个新的属性树,其表示用于该传统窗体的图形界面窗体替换(步骤S352)。这通过首先复制图形界面窗体模板而实现。转换2 160扫描该中间部件(步骤S354),并且如果被扫描的代码不是一个命名的数据项目字段(否,步骤S356),然后,对于在该传统字符窗体(字段、点缀等等)上的每个项目,转换2 160确定哪一个替换对象将置于该图形窗体上(步骤S358)。一旦执行该判断,则该处理可以查找在该OO类层级树中的对象类,以及通过遍历该树直到根节点并且沿途收集属性而收集所有它的属性(步骤S360)。然后,在该抽象语法树的窗体部分中创建一个字段节点,并且所复制的属性被在该节点处定义,由从该传统窗体中读取的数值代替该默认值(步骤S362)。一旦在该传统窗体上的所有项目已经被处理,剩下的是一个图形界面的完整描述。
在该图形界面的创建过程中可以实现两个其他处理。首先,当在该传统窗体上遇到一个被命名的数据项字段时(是,步骤S356),则该窗体的处理被暂停(步骤S364),然后提取用于将取代与该窗体相关的源代码的对象类的中间部件,并且把一个属性添加到与该字段的定义相匹配的对象(步骤S366)。执行该操作是因为在许多传统软件开发环境中,关于窗体的字段是在该窗体的源代码中暗示地声明的变量。在OO模型中,它们变为对象的声明属性。其次,在处理传统窗体之后,该处理扫描在用于该窗体的源代码的转换1 158中创建的抽象语法树。具体来说,该处理在该传统源代码中查找用户命令。如果找到任何用户命令,则可以在基于来自GUI设计向导的输入在该图形用户界面属性树上创建几个GUI控制(按键、工具条图标、或者菜单栏命令)之一。然后,一个或多个“事件”被添加到该抽象语法树,其表示用于该窗体的新代码逻辑。这些添加的“事件”将把新的GUI窗体控制与在与该传统应用程序中的菜单命令相关的逻辑的转换表示的对象类中创建。
转换3
在转换3 162中,用于每个传统源代码部件的抽象语法树被从该库中提取。该相应的对象中间部件也被提取。对于在该抽象语法树中的每个例程节点,在该对象中间部件中创建一个“方法”节点。一个方法是可以作用于该对象的一个对象中的源代码。转换3 162首先取该例程的任何参数,并且把它们声明为该方法的参数。
对本地变量执行相同的操作。该语句然后被处理。对于每个传统语句类型,转换3 162确定如何转换该语句以及把它置于何处。在许多情况中,该引擎可以确定把整个例程或者一个例程的子集移动到一个完全不同的对象。这在该传统软件开发语言的一个特征不容易转换到新的软件开发环境时出现这种情况。
转换3 162的另一个部分是把该传统软件应用程序的过程环境转换为一个对象环境。这具有两个方面。首先,在一个处理环境中,一个部件通过“调用”而激活另一个部件。在OO模型中,不是调用一个过程,而是创建一个对象的实例(或者副本),并且激活它的一个方法。无论何时转换3 162遇到一些传统调用语句时,它暂停处理,提取定义被调用的对象的对象中间部件,并且确认用于该调用的参数。在一些例子中,该对象可能需要调节。然后,在该调用部件中,该调用语句被几个不同的语句所代替。第一语句是对象请示代理软件(ORB)。一个ORB是一个特殊的对象,其工作是根据一个请求管理其他对象的创建。下一个被添加的语句是对“激活”或启动该对象处理的所有转换的部件共同的特殊方法的调用。
从一个过程到一个对象环境的转换的第二方面是过程软件开发工具和OO软件开发工具之间的语法差别。在该语句的处理过程中,每个标记被检查,以察看它是否是引用已经被转换为该类的一个属性的变量。如果为是,则对该来源进行适当的改变,使得适当的变量被引用。
转换4
转换4 164是本实施例中的转换。这涉及清除可能保留但是可能不被与在转换3 162中执行的所有处理并行的解决的各种小问题。
再生处理
该再生处理166是采集处理140的逆转。在再生处理166过程中,在该转换处理156过程中创建的对象中间部件被用于创建置于新的软件开发环境中的实际对象类。另外,新的图形界面窗体和任何其他必要部件被创建并且置于新的软件开发环境中。
扩展
该扩展步骤168构造在采集处理140过程中由扩展向导所指定的新的基础类库、业务对象库和前端部件库。
再生
在再生步骤170中,实际对象类和GUI窗体被从根据所包含的标准从对象中间部件中产生。
在上述思想的指导下,本发明有各种其他变型和更改。因此,应当知道在所附权利要求的范围内,可以用除了在此所述实施例之外的方式来实现本发明。
Claims (16)
1.一种用于把具有过程语言代码的过程程序转换为一个面向对象的程序的方法,其中包括:
扫描该过程语言代码并且根据所扫描的过程语言代码创建一个映射;
把所扫描的过程语言代码存储为中间代码;
使用该映射处理该过程语言代码的至少一个片断;
使用所处理的片断创建第一数据结构;
根据该第一数据结构更改该中间代码;以及
根据更改的中间代码创建具有一个对象类的面向对象程序。
2.根据权利要求1所述的方法,其中进一步包括:
当检测到该过程语言代码的预定片断时暂停处理该过程语言代码的步骤;以及
根据预定片断更改其他中间代码。
3.根据权利要求1所述的方法,其中进一步包括:根据该过程语言创建第二数据结构,其中该第二数据结构是具有识别该过程编程语言的语句的属性的一个节点的一个层级树。
4.根据权利要求3所述的方法,其中进一步包括创建第一数据结构的步骤包括根据所处理的片断定位在第二数据结构中的一个节点,遍历第二数据结构中的节点直到根节点,并且把所遍历节点的内容包含在第一数据结构中。
5.一种包括用于把具有过程语言代码的过程程序转换为面向对象程序的计算机可执行代码的存储介质,包括:
用于扫描该过程语言代码和根据所扫描的过程语言代码创建一个映射的代码;
用于把所扫描的过程语言代码存储为中间代码的代码;
用于使用该映射处理该过程语言代码的至少一个片断的代码;
使用所处理的片断创建第一数据结构的代码;
用于根据第一数据结构更改该中间代码的代码;以及
用于根据该更改的中间代码创建具有一个对象类的面向对象程序的代码。
6.根据权利要求5所述的存储介质,其中进一步包括:
用于在该过程语言代码的预定片断被检测时暂停处理该过程语言代码的一个片断的代码;以及
用于根据预定片断更改其他中间代码的代码。
7.根据权利要求5所述的存储介质,其中进一步包括:用于根据该过程语言创建第二数据结构的代码,其中该第二数据结构是具有识别该过程编程语言的语句的属性的一个节点的层级树。
8.根据权利要求7所述的存储介质,其中进一步包括:用于创建第一数据结构的代码包括用于根据所处理的片断定位在该第二数据结构中的一个节点的代码,用于遍历该第二数据结构中的节点直到一个根节点的代码,以及用于把所遍历的节点的内容包含在第一数据结构中的代码。
9.一种在传送介质中体现并且包括用于把具有过程语言代码的过程程序转换为一种面向对象程序的计算机可执行指令的计算机数据信号,其中包括:
用于扫描该过程语言代码和根据所扫描的过程语言代码创建一个映射的数据信号部分;
用于把所扫描的过程语言代码存储为中间代码的数据信号部分;
用于使用该映射处理该过程语言代码的至少一个片断的数据信号部分;
使用所处理的片断创建第一数据结构的数据信号部分;
用于根据第一数据结构更改该中间代码的数据信号部分;以及
用于根据该更改的中间代码创建具有一个对象类的面向对象程序的数据信号部分。
10.根据权利要求9所述的计算机数据信号,其中进一步包括:
用于在该过程语言代码的预定片断被检测时暂停处理该过程语言代码的一个片断的数据信号部分;以及
用于根据预定片断更改其他中间代码的数据信号部分。
11.根据权利要求9所述的计算机数据信号,其中进一步包括:用于根据该过程语言创建第二数据结构的数据信号,其中该第二数据结构是具有识别该过程编程语言的语句的属性的一个节点的层级树。
12.根据权利要求11所述的计算机数据信号,其中用于创建第一数据结构的数据信号部分包括用于根据所处理的片断定位在该第二数据结构中的一个节点的数据信号部分,用于遍历该第二数据结构中的节点直到一个根节点的数据信号部分,以及用于把所遍历的节点的内容包含在第一数据结构中的数据信号部分。
13.一种用于把具有过程语言代码的过程语言转换为一种面向对象程序的方法,其中包括:
扫描该过程语言代码和根据所扫描的过程语言代码创建一个映射;
把该映射和所扫描的过程语言代码作为中间数据存储在一个存储库中;
创建用于每个部件的所转换表示的新目标中间数据容器组;
使用过程中间数据表示处理该过程语言代码的至少一个片断,以使用所处理的片断创建第一抽象语法树;
根据第一抽象语法树增殖该目标中间数据容器;以及
根据该第一抽象语法树产生具有一个对象类的原始过程程序的面向对象的中间数据表示。
14.根据权利要求13所述的方法,其中进一步包括:
用于在该过程语言代码的预定片断被检测时暂停处理该过程语言代码的一个片断的步骤;以及
根据预定片断更改另一个抽象语法树的步骤。
15.根据权利要求13所述的方法,其中进一步包括根据该过程语言创建第二抽象语法树的步骤,其中第二抽象语法树是具有识别该过程编程语言的语句的属性的节点的抽象语法树。
16.根据权利要求15所述的方法,其中创建第一抽象语法树的步骤包括根据所处理的片断定位在该第二抽象语法树中的一个节点,遍历该第二抽象语法树中的节点直到一个根节点,以及把所遍历的节点的内容包含在第一抽象语法树中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29020301P | 2001-05-11 | 2001-05-11 | |
US60/290,203 | 2001-05-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1509433A true CN1509433A (zh) | 2004-06-30 |
Family
ID=23114953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA028097408A Pending CN1509433A (zh) | 2001-05-11 | 2002-05-10 | 把传统软件应用程序转换为现代面向对象系统的方法和系统 |
Country Status (13)
Country | Link |
---|---|
US (1) | US7467375B2 (zh) |
EP (1) | EP1388054B1 (zh) |
JP (1) | JP2005515518A (zh) |
KR (1) | KR20040004619A (zh) |
CN (1) | CN1509433A (zh) |
AT (1) | ATE476702T1 (zh) |
AU (1) | AU2008201056A1 (zh) |
BR (1) | BR0209497A (zh) |
CA (1) | CA2446162A1 (zh) |
DE (1) | DE60237200D1 (zh) |
IL (1) | IL158696A0 (zh) |
WO (1) | WO2002093367A1 (zh) |
ZA (1) | ZA200308593B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100571167C (zh) * | 2006-02-24 | 2009-12-16 | 国际商业机器公司 | Web服务业务流程的单元测试的方法和设备 |
WO2012083521A1 (zh) * | 2010-12-21 | 2012-06-28 | 北京中天安泰信息科技有限公司 | 规范计算机系统行为的方法 |
CN102768682A (zh) * | 2012-06-28 | 2012-11-07 | 用友软件股份有限公司 | 业务规则处理装置和业务规则处理方法 |
CN101770363B (zh) * | 2005-06-27 | 2014-03-12 | Csc科技(新加坡)私人有限公司 | 将可执行代码转换为不同编程语言的方法及设备 |
CN104662514A (zh) * | 2012-09-25 | 2015-05-27 | 波音公司 | 基于模型关联关系的遗产软件系统的现代化 |
CN110007926A (zh) * | 2019-04-17 | 2019-07-12 | 广东三维家信息科技有限公司 | 语言转换方法及装置 |
CN110149800A (zh) * | 2015-04-07 | 2019-08-20 | 华为技术有限公司 | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 |
CN112166409A (zh) * | 2018-06-06 | 2021-01-01 | 欧姆龙株式会社 | 控制系统、控制系统的控制方法以及控制系统的程序 |
CN112698819A (zh) * | 2019-10-22 | 2021-04-23 | 北京信普飞科科技有限公司 | 面向树化对象编程程序设计方法、装置及存储介质 |
Families Citing this family (198)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US6948135B1 (en) | 2000-06-21 | 2005-09-20 | Microsoft Corporation | Method and systems of providing information to computer users |
US7191394B1 (en) | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7624356B1 (en) | 2000-06-21 | 2009-11-24 | Microsoft Corporation | Task-sensitive methods and systems for displaying command sets |
US6983448B2 (en) * | 2001-07-12 | 2006-01-03 | International Business Machines Corporation | Open framework for the definition of metadata |
US8301657B1 (en) * | 2002-05-09 | 2012-10-30 | Teradata Us, Inc. | Set-level database access for performing row-sequential operations |
US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US7415672B1 (en) | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7296017B2 (en) | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US20080320054A1 (en) * | 2003-04-09 | 2008-12-25 | Cindy Howard | Database and Software Conversion System and Method |
US7240338B1 (en) | 2003-05-29 | 2007-07-03 | Itt Manufacturing Enterprises, Inc. | Computer language translation system and method of converting procedural computer language software to object-oriented computer language software |
US7451392B1 (en) | 2003-06-30 | 2008-11-11 | Microsoft Corporation | Rendering an HTML electronic form by applying XSLT to XML using a solution |
US7406660B1 (en) | 2003-08-01 | 2008-07-29 | Microsoft Corporation | Mapping between structured data and a visual surface |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US7272821B2 (en) * | 2003-08-25 | 2007-09-18 | Tech Mahindra Limited | System and method of universal programming language conversion |
US7318216B2 (en) * | 2003-09-24 | 2008-01-08 | Tablecode Software Corporation | Software application development environment facilitating development of a software application |
US7904819B2 (en) * | 2003-12-03 | 2011-03-08 | International Business Machines Corporation | Self-configuring component for recognizing and transforming host data |
US20050138606A1 (en) * | 2003-12-17 | 2005-06-23 | Sujit Basu | System and method for code migration |
US7640497B1 (en) | 2003-12-22 | 2009-12-29 | Apple Inc. | Transforming a hierarchical data structure according to requirements specified in a transformation template |
US8819072B1 (en) | 2004-02-02 | 2014-08-26 | Microsoft Corporation | Promoting data from structured data files |
CN100337203C (zh) * | 2004-04-05 | 2007-09-12 | 中国科学院计算技术研究所 | 一种遗产代码向现代语言变换过程中的控制流变换方法 |
KR20070015440A (ko) * | 2004-04-26 | 2007-02-02 | 구글 잉크. | 고레벨 프로그래밍 언어들로부터 분산 인터랙티브애플리케이션들을 동적으로 구성하는 방법들 및 시스템들 |
US7496837B1 (en) | 2004-04-29 | 2009-02-24 | Microsoft Corporation | Structural editing with schema awareness |
US7281018B1 (en) | 2004-05-26 | 2007-10-09 | Microsoft Corporation | Form template data source change |
US7774620B1 (en) | 2004-05-27 | 2010-08-10 | Microsoft Corporation | Executing applications at appropriate trust levels |
US7692636B2 (en) | 2004-09-30 | 2010-04-06 | Microsoft Corporation | Systems and methods for handwriting to a screen |
US7636912B2 (en) * | 2004-10-28 | 2009-12-22 | Microsoft Corporation | Custom assembly to extend a wizard |
US8487879B2 (en) | 2004-10-29 | 2013-07-16 | Microsoft Corporation | Systems and methods for interacting with a computer through handwriting to a screen |
US7712022B2 (en) | 2004-11-15 | 2010-05-04 | Microsoft Corporation | Mutually exclusive options in electronic forms |
US7721190B2 (en) | 2004-11-16 | 2010-05-18 | Microsoft Corporation | Methods and systems for server side form processing |
US7904801B2 (en) | 2004-12-15 | 2011-03-08 | Microsoft Corporation | Recursive sections in electronic forms |
US7937651B2 (en) | 2005-01-14 | 2011-05-03 | Microsoft Corporation | Structural editing operations for network forms |
US7725834B2 (en) | 2005-03-04 | 2010-05-25 | Microsoft Corporation | Designer-created aspect for an electronic form template |
US8010515B2 (en) | 2005-04-15 | 2011-08-30 | Microsoft Corporation | Query to an electronic form |
AU2012201466B2 (en) * | 2005-06-27 | 2014-07-03 | Csc Technology Singapore Pte Ltd | Code Transformation |
US8200975B2 (en) | 2005-06-29 | 2012-06-12 | Microsoft Corporation | Digital signatures for network forms |
US7739696B2 (en) * | 2005-09-08 | 2010-06-15 | Honeywell International Inc. | Message translation systems and methods |
US7752651B2 (en) * | 2005-09-26 | 2010-07-06 | Bea Systems Inc. | System and method for propagating security information in a web portal system |
US7730477B2 (en) * | 2005-09-26 | 2010-06-01 | Bea Systems Inc. | System and method for propagation in a web portal system |
US8001459B2 (en) | 2005-12-05 | 2011-08-16 | Microsoft Corporation | Enabling electronic documents for limited-capability computing devices |
KR100771057B1 (ko) * | 2005-12-26 | 2007-10-29 | 주식회사 신지소프트 | 모바일 플랫폼의 중간 언어 변환 장치 및 그 방법 |
US7779343B2 (en) * | 2006-01-30 | 2010-08-17 | Microsoft Corporation | Opening network-enabled electronic documents |
CA2641941C (en) * | 2006-02-10 | 2014-09-09 | Make Technologies, Inc. | Legacy software modernization system |
US8751946B2 (en) * | 2006-04-05 | 2014-06-10 | International Business Machines Corporation | Enhanced display of properties for a program object |
US8812556B2 (en) * | 2006-04-06 | 2014-08-19 | International Business Machines Corporation | Storing modification data for recreating modifications |
US7716653B2 (en) * | 2006-04-06 | 2010-05-11 | International Business Machines Corporation | Configurable importers and resource writers for converting data into another format |
US20070271553A1 (en) * | 2006-05-22 | 2007-11-22 | Micro Focus (Us), Inc. | Method and system for translating assembler code to a target language |
US7792853B2 (en) * | 2006-11-08 | 2010-09-07 | Ragothaman Subbian | Presenting data flow in legacy program |
KR101371619B1 (ko) * | 2007-02-14 | 2014-03-06 | 삼성전자주식회사 | 레거시 시스템을 컴포넌트화하는 장치 및 방법 |
US8930331B2 (en) | 2007-02-21 | 2015-01-06 | Palantir Technologies | Providing unique views of data based on changes or rules |
US20080235658A1 (en) * | 2007-03-21 | 2008-09-25 | Asaf Adi | Code generation for real-time event processing |
US8281287B2 (en) * | 2007-11-12 | 2012-10-02 | Finocchio Mark J | Compact, portable, and efficient representation of a user interface control tree |
US8707257B2 (en) * | 2007-11-28 | 2014-04-22 | Red Hat, Inc. | Automatic object instantiation |
US8504986B2 (en) * | 2008-01-23 | 2013-08-06 | Red Hat, Inc. | Calling functions as methods |
US8516458B2 (en) * | 2008-02-29 | 2013-08-20 | Iti Scotland Limited | System representation and handling techniques |
WO2009132444A1 (en) * | 2008-04-28 | 2009-11-05 | Sitemasher Corporation | Object-oriented system for creating and managing websites and their content |
US9639331B2 (en) | 2008-07-09 | 2017-05-02 | International Business Machines Corporation | Service interface creation and modification for object-oriented services |
US9348499B2 (en) | 2008-09-15 | 2016-05-24 | Palantir Technologies, Inc. | Sharing objects that rely on local resources with outside servers |
US20130227533A1 (en) * | 2008-11-06 | 2013-08-29 | Albert Donald Tonkin | Code transformation |
US8341608B2 (en) * | 2008-11-13 | 2012-12-25 | Visicom Media, Inc. | Cross-browser toolbar and method thereof for facilitating cross-browser interoperability |
US20100153933A1 (en) * | 2008-12-17 | 2010-06-17 | Karsten Bohlmann | Path Navigation In Abstract Syntax Trees |
US8312437B2 (en) * | 2008-12-30 | 2012-11-13 | Microsoft Corporation | Structured search in source code |
US20110231847A1 (en) * | 2009-10-28 | 2011-09-22 | Lategan Christopher F | Management of multiple instances of legacy application tasks |
US8402064B2 (en) * | 2010-02-01 | 2013-03-19 | Oracle International Corporation | Orchestration of business processes using templates |
US10789562B2 (en) * | 2010-03-05 | 2020-09-29 | Oracle International Corporation | Compensation patterns for adjusting long running order management fulfillment processes in an distributed order orchestration system |
US20110218921A1 (en) * | 2010-03-05 | 2011-09-08 | Oracle International Corporation | Notify/inquire fulfillment systems before processing change requests for adjusting long running order management fulfillment processes in a distributed order orchestration system |
US8793262B2 (en) * | 2010-03-05 | 2014-07-29 | Oracle International Corporation | Correlating and mapping original orders with new orders for adjusting long running order management fulfillment processes |
US10395205B2 (en) * | 2010-03-05 | 2019-08-27 | Oracle International Corporation | Cost of change for adjusting long running order management fulfillment processes for a distributed order orchestration system |
US9904898B2 (en) * | 2010-03-05 | 2018-02-27 | Oracle International Corporation | Distributed order orchestration system with rules engine |
US9269075B2 (en) * | 2010-03-05 | 2016-02-23 | Oracle International Corporation | Distributed order orchestration system for adjusting long running order management fulfillment processes with delta attributes |
US20110218923A1 (en) * | 2010-03-05 | 2011-09-08 | Oracle International Corporation | Task layer service patterns for adjusting long running order management fulfillment processes for a distributed order orchestration system |
US10061464B2 (en) * | 2010-03-05 | 2018-08-28 | Oracle International Corporation | Distributed order orchestration system with rollback checkpoints for adjusting long running order management fulfillment processes |
US20110218926A1 (en) * | 2010-03-05 | 2011-09-08 | Oracle International Corporation | Saving order process state for adjusting long running order management fulfillment processes in a distributed order orchestration system |
US20110218925A1 (en) * | 2010-03-05 | 2011-09-08 | Oracle International Corporation | Change management framework in distributed order orchestration system |
US8984009B2 (en) | 2010-04-21 | 2015-03-17 | Salesforce.Com, Inc. | Methods and systems for utilizing bytecode in an on-demand service environment including providing multi-tenant runtime environments and systems |
US9223892B2 (en) | 2010-09-30 | 2015-12-29 | Salesforce.Com, Inc. | Device abstraction for page generation |
US9658901B2 (en) | 2010-11-12 | 2017-05-23 | Oracle International Corporation | Event-based orchestration in distributed order orchestration system |
US8935360B2 (en) | 2010-12-03 | 2015-01-13 | Salesforce.Com, Inc. | Techniques for metadata-driven dynamic content serving |
US9547693B1 (en) | 2011-06-23 | 2017-01-17 | Palantir Technologies Inc. | Periodic database search manager for multiple data sources |
US8799240B2 (en) | 2011-06-23 | 2014-08-05 | Palantir Technologies, Inc. | System and method for investigating large amounts of data |
US9092482B2 (en) | 2013-03-14 | 2015-07-28 | Palantir Technologies, Inc. | Fair scheduling for mixed-query loads |
US8732574B2 (en) | 2011-08-25 | 2014-05-20 | Palantir Technologies, Inc. | System and method for parameterizing documents for automatic workflow generation |
US8504542B2 (en) | 2011-09-02 | 2013-08-06 | Palantir Technologies, Inc. | Multi-row transactions |
US8806433B2 (en) * | 2011-10-27 | 2014-08-12 | Reputation.com | Method and framework for software development |
US10552769B2 (en) | 2012-01-27 | 2020-02-04 | Oracle International Corporation | Status management framework in a distributed order orchestration system |
US8762322B2 (en) | 2012-05-22 | 2014-06-24 | Oracle International Corporation | Distributed order orchestration system with extensible flex field support |
US9672560B2 (en) | 2012-06-28 | 2017-06-06 | Oracle International Corporation | Distributed order orchestration system that transforms sales products to fulfillment products |
US9348677B2 (en) | 2012-10-22 | 2016-05-24 | Palantir Technologies Inc. | System and method for batch evaluation programs |
US8930923B2 (en) | 2012-12-20 | 2015-01-06 | International Business Machines Corporation | Generating debugging extension source code utilizing debugging information |
US9380431B1 (en) | 2013-01-31 | 2016-06-28 | Palantir Technologies, Inc. | Use of teams in a mobile application |
US10037314B2 (en) | 2013-03-14 | 2018-07-31 | Palantir Technologies, Inc. | Mobile reports |
US8937619B2 (en) | 2013-03-15 | 2015-01-20 | Palantir Technologies Inc. | Generating an object time series from data objects |
US8903717B2 (en) | 2013-03-15 | 2014-12-02 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US9965937B2 (en) | 2013-03-15 | 2018-05-08 | Palantir Technologies Inc. | External malware data item clustering and analysis |
US8930897B2 (en) | 2013-03-15 | 2015-01-06 | Palantir Technologies Inc. | Data integration tool |
US8909656B2 (en) | 2013-03-15 | 2014-12-09 | Palantir Technologies Inc. | Filter chains with associated multipath views for exploring large data sets |
US8917274B2 (en) | 2013-03-15 | 2014-12-23 | Palantir Technologies Inc. | Event matrix based on integrated data |
US8855999B1 (en) | 2013-03-15 | 2014-10-07 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US20140282373A1 (en) * | 2013-03-15 | 2014-09-18 | Trinity Millennium Group, Inc. | Automated business rule harvesting with abstract syntax tree transformation |
US8818892B1 (en) | 2013-03-15 | 2014-08-26 | Palantir Technologies, Inc. | Prioritizing data clusters with customizable scoring strategies |
US8868486B2 (en) | 2013-03-15 | 2014-10-21 | Palantir Technologies Inc. | Time-sensitive cube |
US10275778B1 (en) | 2013-03-15 | 2019-04-30 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures |
US8799799B1 (en) | 2013-05-07 | 2014-08-05 | Palantir Technologies Inc. | Interactive geospatial map |
US9335897B2 (en) | 2013-08-08 | 2016-05-10 | Palantir Technologies Inc. | Long click display of a context menu |
US9223773B2 (en) | 2013-08-08 | 2015-12-29 | Palatir Technologies Inc. | Template system for custom document generation |
US8713467B1 (en) | 2013-08-09 | 2014-04-29 | Palantir Technologies, Inc. | Context-sensitive views |
US9785317B2 (en) | 2013-09-24 | 2017-10-10 | Palantir Technologies Inc. | Presentation and analysis of user interaction data |
US8938686B1 (en) | 2013-10-03 | 2015-01-20 | Palantir Technologies Inc. | Systems and methods for analyzing performance of an entity |
US8812960B1 (en) | 2013-10-07 | 2014-08-19 | Palantir Technologies Inc. | Cohort-based presentation of user interaction data |
US8924872B1 (en) | 2013-10-18 | 2014-12-30 | Palantir Technologies Inc. | Overview user interface of emergency call data of a law enforcement agency |
US9116975B2 (en) | 2013-10-18 | 2015-08-25 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores |
US9021384B1 (en) | 2013-11-04 | 2015-04-28 | Palantir Technologies Inc. | Interactive vehicle information map |
US8832594B1 (en) | 2013-11-04 | 2014-09-09 | Palantir Technologies Inc. | Space-optimized display of multi-column tables with selective text truncation based on a combined text width |
US8868537B1 (en) | 2013-11-11 | 2014-10-21 | Palantir Technologies, Inc. | Simple web search |
US9105000B1 (en) | 2013-12-10 | 2015-08-11 | Palantir Technologies Inc. | Aggregating data from a plurality of data sources |
US10025834B2 (en) | 2013-12-16 | 2018-07-17 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US9552615B2 (en) | 2013-12-20 | 2017-01-24 | Palantir Technologies Inc. | Automated database analysis to detect malfeasance |
US10356032B2 (en) | 2013-12-26 | 2019-07-16 | Palantir Technologies Inc. | System and method for detecting confidential information emails |
US8832832B1 (en) | 2014-01-03 | 2014-09-09 | Palantir Technologies Inc. | IP reputation |
US9043696B1 (en) | 2014-01-03 | 2015-05-26 | Palantir Technologies Inc. | Systems and methods for visual definition of data associations |
US9483162B2 (en) | 2014-02-20 | 2016-11-01 | Palantir Technologies Inc. | Relationship visualizations |
US9009827B1 (en) | 2014-02-20 | 2015-04-14 | Palantir Technologies Inc. | Security sharing system |
US9727376B1 (en) | 2014-03-04 | 2017-08-08 | Palantir Technologies, Inc. | Mobile tasks |
US8924429B1 (en) | 2014-03-18 | 2014-12-30 | Palantir Technologies Inc. | Determining and extracting changed data from a data source |
US9836580B2 (en) | 2014-03-21 | 2017-12-05 | Palantir Technologies Inc. | Provider portal |
US9483236B2 (en) * | 2014-04-11 | 2016-11-01 | Fair Isaac Corporation | Efficiently representing complex score models |
US9857958B2 (en) | 2014-04-28 | 2018-01-02 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases |
US9009171B1 (en) | 2014-05-02 | 2015-04-14 | Palantir Technologies Inc. | Systems and methods for active column filtering |
US9535974B1 (en) | 2014-06-30 | 2017-01-03 | Palantir Technologies Inc. | Systems and methods for identifying key phrase clusters within documents |
US9619557B2 (en) | 2014-06-30 | 2017-04-11 | Palantir Technologies, Inc. | Systems and methods for key phrase characterization of documents |
US9785773B2 (en) | 2014-07-03 | 2017-10-10 | Palantir Technologies Inc. | Malware data item analysis |
US9202249B1 (en) | 2014-07-03 | 2015-12-01 | Palantir Technologies Inc. | Data item clustering and analysis |
US9021260B1 (en) | 2014-07-03 | 2015-04-28 | Palantir Technologies Inc. | Malware data item analysis |
US9256664B2 (en) | 2014-07-03 | 2016-02-09 | Palantir Technologies Inc. | System and method for news events detection and visualization |
US10572496B1 (en) | 2014-07-03 | 2020-02-25 | Palantir Technologies Inc. | Distributed workflow system and database with access controls for city resiliency |
US9563421B2 (en) | 2014-08-05 | 2017-02-07 | International Business Machines Corporation | Refining data understanding through impact analysis |
US9454281B2 (en) | 2014-09-03 | 2016-09-27 | Palantir Technologies Inc. | System for providing dynamic linked panels in user interface |
US9767172B2 (en) | 2014-10-03 | 2017-09-19 | Palantir Technologies Inc. | Data aggregation and analysis system |
US9501851B2 (en) | 2014-10-03 | 2016-11-22 | Palantir Technologies Inc. | Time-series analysis system |
US9785328B2 (en) | 2014-10-06 | 2017-10-10 | Palantir Technologies Inc. | Presentation of multivariate data on a graphical user interface of a computing system |
US9984133B2 (en) | 2014-10-16 | 2018-05-29 | Palantir Technologies Inc. | Schematic and database linking system |
US9229952B1 (en) | 2014-11-05 | 2016-01-05 | Palantir Technologies, Inc. | History preserving data pipeline system and method |
US9043894B1 (en) | 2014-11-06 | 2015-05-26 | Palantir Technologies Inc. | Malicious software detection in a computing system |
US10552994B2 (en) | 2014-12-22 | 2020-02-04 | Palantir Technologies Inc. | Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items |
US10362133B1 (en) | 2014-12-22 | 2019-07-23 | Palantir Technologies Inc. | Communication data processing architecture |
US9348920B1 (en) | 2014-12-22 | 2016-05-24 | Palantir Technologies Inc. | Concept indexing among database of documents using machine learning techniques |
US9367872B1 (en) | 2014-12-22 | 2016-06-14 | Palantir Technologies Inc. | Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures |
US9335911B1 (en) | 2014-12-29 | 2016-05-10 | Palantir Technologies Inc. | Interactive user interface for dynamic data analysis exploration and query processing |
US9870205B1 (en) | 2014-12-29 | 2018-01-16 | Palantir Technologies Inc. | Storing logical units of program code generated using a dynamic programming notebook user interface |
US9817563B1 (en) | 2014-12-29 | 2017-11-14 | Palantir Technologies Inc. | System and method of generating data points from one or more data stores of data items for chart creation and manipulation |
US10372879B2 (en) | 2014-12-31 | 2019-08-06 | Palantir Technologies Inc. | Medical claims lead summary report generation |
US11302426B1 (en) | 2015-01-02 | 2022-04-12 | Palantir Technologies Inc. | Unified data interface and system |
US10387834B2 (en) | 2015-01-21 | 2019-08-20 | Palantir Technologies Inc. | Systems and methods for accessing and storing snapshots of a remote application in a document |
US9727560B2 (en) | 2015-02-25 | 2017-08-08 | Palantir Technologies Inc. | Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags |
EP3611632A1 (en) | 2015-03-16 | 2020-02-19 | Palantir Technologies Inc. | Displaying attribute and event data along paths |
US9886467B2 (en) | 2015-03-19 | 2018-02-06 | Plantir Technologies Inc. | System and method for comparing and visualizing data entities and data entity series |
US10628834B1 (en) | 2015-06-16 | 2020-04-21 | Palantir Technologies Inc. | Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces |
US9418337B1 (en) | 2015-07-21 | 2016-08-16 | Palantir Technologies Inc. | Systems and models for data analytics |
US9454785B1 (en) | 2015-07-30 | 2016-09-27 | Palantir Technologies Inc. | Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data |
US9996595B2 (en) | 2015-08-03 | 2018-06-12 | Palantir Technologies, Inc. | Providing full data provenance visualization for versioned datasets |
US9456000B1 (en) | 2015-08-06 | 2016-09-27 | Palantir Technologies Inc. | Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications |
US9600146B2 (en) | 2015-08-17 | 2017-03-21 | Palantir Technologies Inc. | Interactive geospatial map |
US10489391B1 (en) | 2015-08-17 | 2019-11-26 | Palantir Technologies Inc. | Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface |
US10102369B2 (en) | 2015-08-19 | 2018-10-16 | Palantir Technologies Inc. | Checkout system executable code monitoring, and user account compromise determination system |
US10853378B1 (en) | 2015-08-25 | 2020-12-01 | Palantir Technologies Inc. | Electronic note management via a connected entity graph |
US11150917B2 (en) | 2015-08-26 | 2021-10-19 | Palantir Technologies Inc. | System for data aggregation and analysis of data from a plurality of data sources |
US9485265B1 (en) | 2015-08-28 | 2016-11-01 | Palantir Technologies Inc. | Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces |
US10706434B1 (en) | 2015-09-01 | 2020-07-07 | Palantir Technologies Inc. | Methods and systems for determining location information |
US9576015B1 (en) | 2015-09-09 | 2017-02-21 | Palantir Technologies, Inc. | Domain-specific language for dataset transformations |
US10296617B1 (en) | 2015-10-05 | 2019-05-21 | Palantir Technologies Inc. | Searches of highly structured data |
US9542446B1 (en) | 2015-12-17 | 2017-01-10 | Palantir Technologies, Inc. | Automatic generation of composite datasets based on hierarchical fields |
US9823818B1 (en) | 2015-12-29 | 2017-11-21 | Palantir Technologies Inc. | Systems and interactive user interfaces for automatic generation of temporal representation of data objects |
US10089289B2 (en) | 2015-12-29 | 2018-10-02 | Palantir Technologies Inc. | Real-time document annotation |
US9612723B1 (en) | 2015-12-30 | 2017-04-04 | Palantir Technologies Inc. | Composite graphical interface with shareable data-objects |
US10339205B2 (en) | 2016-02-22 | 2019-07-02 | International Business Machines Corporation | Efficient handling of bi-directional data |
US10698938B2 (en) | 2016-03-18 | 2020-06-30 | Palantir Technologies Inc. | Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags |
US10324609B2 (en) | 2016-07-21 | 2019-06-18 | Palantir Technologies Inc. | System for providing dynamic linked panels in user interface |
US10719188B2 (en) | 2016-07-21 | 2020-07-21 | Palantir Technologies Inc. | Cached database and synchronization system for providing dynamic linked panels in user interface |
US10437840B1 (en) | 2016-08-19 | 2019-10-08 | Palantir Technologies Inc. | Focused probabilistic entity resolution from multiple data sources |
US10318630B1 (en) | 2016-11-21 | 2019-06-11 | Palantir Technologies Inc. | Analysis of large bodies of textual data |
US10460602B1 (en) | 2016-12-28 | 2019-10-29 | Palantir Technologies Inc. | Interactive vehicle information mapping system |
US10459829B2 (en) * | 2017-06-07 | 2019-10-29 | M/S. Cigniti Technologies Limited | Overall test tool migration pipeline |
US10956406B2 (en) | 2017-06-12 | 2021-03-23 | Palantir Technologies Inc. | Propagated deletion of database records and derived data |
US10403011B1 (en) | 2017-07-18 | 2019-09-03 | Palantir Technologies Inc. | Passing system with an interactive user interface |
US11029934B2 (en) * | 2017-12-15 | 2021-06-08 | Uniquesoft, Llc | Method and system for updating legacy software |
US10996935B2 (en) * | 2018-01-09 | 2021-05-04 | Hcl Technologies Ltd. | Automated technology modernization accelerator |
US10691434B2 (en) | 2018-02-09 | 2020-06-23 | Macrosoft, Inc. | System and method for converting a first programming language application to a second programming language application |
US11599369B1 (en) | 2018-03-08 | 2023-03-07 | Palantir Technologies Inc. | Graphical user interface configuration system |
US10754822B1 (en) | 2018-04-18 | 2020-08-25 | Palantir Technologies Inc. | Systems and methods for ontology migration |
US10885021B1 (en) | 2018-05-02 | 2021-01-05 | Palantir Technologies Inc. | Interactive interpreter and graphical user interface |
US10423396B1 (en) | 2018-05-04 | 2019-09-24 | Salesforce.Com, Inc. | Transforming non-apex code to apex code |
US11119630B1 (en) | 2018-06-19 | 2021-09-14 | Palantir Technologies Inc. | Artificial intelligence assisted evaluations and user interface for same |
US10846083B2 (en) * | 2018-12-12 | 2020-11-24 | Sap Se | Semantic-aware and self-corrective re-architecting system |
CN110879710B (zh) * | 2019-07-24 | 2023-07-07 | 中信银行股份有限公司 | 一种rpg程序自动转成java程序的方法 |
US20230236849A1 (en) * | 2022-01-26 | 2023-07-27 | Oracle International Corporation | Enterprise application runtime customization and release management |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765131A (en) * | 1986-10-03 | 1998-06-09 | British Telecommunications Public Limited Company | Language translation system and method |
CA2002201C (en) * | 1988-12-06 | 1999-04-27 | John Charles Goettelmann | Translation technique |
US5313614A (en) * | 1988-12-06 | 1994-05-17 | At&T Bell Laboratories | Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems |
US5530863A (en) * | 1989-05-19 | 1996-06-25 | Fujitsu Limited | Programming language processing system with program translation performed by term rewriting with pattern matching |
CA2284245C (en) * | 1989-09-01 | 2001-02-06 | Amdahl Corporation | Operating system and data base having an access structure formed by a plurality of tables |
US5488714A (en) * | 1990-05-23 | 1996-01-30 | Unisys Corporation | Computer program analyzer for adapting computer programs to different architectures |
US5481721A (en) * | 1991-07-17 | 1996-01-02 | Next Computer, Inc. | Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects |
US5579223A (en) * | 1992-12-24 | 1996-11-26 | Microsoft Corporation | Method and system for incorporating modifications made to a computer program into a translated version of the computer program |
JPH06309193A (ja) * | 1993-04-27 | 1994-11-04 | Toshiba Corp | 機械語プログラムの動作検証方法および装置 |
US5626569A (en) * | 1993-11-08 | 1997-05-06 | B. Braun Biotrol | Device for venting and controlling the pressure inside a stoma collection bag |
AU1323395A (en) * | 1993-12-30 | 1995-07-17 | Raymond Obin | Method for compiling a procedural program to an object class definition |
JP2755154B2 (ja) * | 1994-02-23 | 1998-05-20 | 日本電気株式会社 | プログラム変換処理装置およびプログラム変換処理方法 |
JP3081105B2 (ja) * | 1994-05-16 | 2000-08-28 | 三菱電機株式会社 | 符号変換装置 |
US5678039A (en) * | 1994-09-30 | 1997-10-14 | Borland International, Inc. | System and methods for translating software into localized versions |
US6151702A (en) * | 1994-09-30 | 2000-11-21 | Computer Associates Think, Inc. | Method and system for automated, interactive translation of a software program to a data model for input to an information repository |
US5842204A (en) * | 1994-10-07 | 1998-11-24 | Tandem Computers, Inc. | Method and apparatus for translating source code from one high-level computer language to another |
US5768564A (en) * | 1994-10-07 | 1998-06-16 | Tandem Computers Incorporated | Method and apparatus for translating source code from one high-level computer language to another |
JP3444671B2 (ja) * | 1994-11-08 | 2003-09-08 | 富士通株式会社 | 並列コード変換処理方法とそのシステム |
US5758032A (en) * | 1995-04-13 | 1998-05-26 | Sterling Software, Inc. | Method and system for automated transformation of declarative language process specification |
US5682158A (en) * | 1995-09-13 | 1997-10-28 | Apple Computer, Inc. | Code converter with truncation processing |
JPH09135172A (ja) * | 1995-11-08 | 1997-05-20 | Sony Corp | 符号変換方法 |
US5974372A (en) * | 1996-02-12 | 1999-10-26 | Dst Systems, Inc. | Graphical user interface (GUI) language translator |
US5819067A (en) * | 1996-02-23 | 1998-10-06 | Advanced Micro Devices, Inc. | Computer system configured to translate a computer program into a second computer program prior to executing the computer program |
US5805893A (en) * | 1996-03-01 | 1998-09-08 | Electronic Data Systems Corporation | Assembly language program converter |
US5805895A (en) * | 1996-06-09 | 1998-09-08 | Motorola, Inc. | Method and apparatus for code translation optimization |
US5870039A (en) * | 1996-06-19 | 1999-02-09 | Matsushita Electric Industrial Co., Ltd. | Code converter, variable length code decoder, and associated methods |
US5898394A (en) * | 1996-07-31 | 1999-04-27 | Matsushita Electric Industrial Co., Ltd. | Code conversion method and apparatus, code recording medium, code recording apparatus and code reproducing apparatus |
US5956510A (en) * | 1996-09-10 | 1999-09-21 | Unisys Corporation | Apparatus and method for revising computer program code |
EP0951706A4 (en) * | 1996-12-03 | 2000-02-23 | Ergolight Ltd | COMPUTERIZED DEVICE AND METHOD FOR IDENTIFYING USEFUL PROBLEMS OF A COMPUTED SYSTEM |
JP3209264B2 (ja) * | 1997-04-03 | 2001-09-17 | 日本電気株式会社 | 言語処理装置および方法、情報記憶媒体 |
DE69818796T2 (de) * | 1997-06-26 | 2004-08-05 | Koninklijke Philips Electronics N.V. | Maschinenorganisiertes verfahren und vorrichtung zum übersetzen einer wortorganisierten textquelle in einen wortorganisierten zieltext |
US5974256A (en) * | 1997-09-29 | 1999-10-26 | International Business Machines Corporation | Method for translating graphical user interface (GUI) resource data into native java code |
US5983020A (en) * | 1997-10-02 | 1999-11-09 | International Business Machines Corporation | Rule-based engine for transformation of class hierarchy of an object-oriented program |
US6002874A (en) * | 1997-12-22 | 1999-12-14 | International Business Machines Corporation | Method and system for translating goto-oriented procedural languages into goto-free object oriented languages |
US6195792B1 (en) * | 1998-02-19 | 2001-02-27 | Nortel Networks Limited | Software upgrades by conversion automation |
US6164841A (en) * | 1998-05-04 | 2000-12-26 | Hewlett-Packard Company | Method, apparatus, and product for dynamic software code translation system |
US6158047A (en) * | 1998-07-08 | 2000-12-05 | Hewlett-Packard Company | Client/server system for fast, user transparent and memory efficient computer language translation |
US6453312B1 (en) * | 1998-10-14 | 2002-09-17 | Unisys Corporation | System and method for developing a selectably-expandable concept-based search |
US6523171B1 (en) * | 1998-12-29 | 2003-02-18 | International Business Machines Corporation | Enhanced source code translator from procedural programming language (PPL) to an object oriented programming language (OOPL) |
US7065750B2 (en) * | 1999-02-17 | 2006-06-20 | Elbrus International | Method and apparatus for preserving precise exceptions in binary translated code |
US6519605B1 (en) * | 1999-04-27 | 2003-02-11 | International Business Machines Corporation | Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls |
US6654950B1 (en) * | 1999-08-24 | 2003-11-25 | Bae Systems Mission Solutions Inc. | Software rehosting system and method |
US7590644B2 (en) * | 1999-12-21 | 2009-09-15 | International Business Machine Corporation | Method and apparatus of streaming data transformation using code generator and translator |
US20030154266A1 (en) * | 2000-09-01 | 2003-08-14 | Mark Bobick | Server system and method for discovering digital assets in enterprise information systems |
-
2002
- 2002-05-10 BR BR0209497-5A patent/BR0209497A/pt not_active IP Right Cessation
- 2002-05-10 AT AT02734373T patent/ATE476702T1/de not_active IP Right Cessation
- 2002-05-10 WO PCT/US2002/014933 patent/WO2002093367A1/en active Application Filing
- 2002-05-10 EP EP02734373A patent/EP1388054B1/en not_active Expired - Lifetime
- 2002-05-10 KR KR10-2003-7014651A patent/KR20040004619A/ko not_active Application Discontinuation
- 2002-05-10 JP JP2002589976A patent/JP2005515518A/ja not_active Abandoned
- 2002-05-10 IL IL15869602A patent/IL158696A0/xx unknown
- 2002-05-10 DE DE60237200T patent/DE60237200D1/de not_active Expired - Lifetime
- 2002-05-10 CA CA002446162A patent/CA2446162A1/en not_active Abandoned
- 2002-05-10 CN CNA028097408A patent/CN1509433A/zh active Pending
-
2003
- 2003-01-13 US US10/341,132 patent/US7467375B2/en not_active Expired - Fee Related
- 2003-11-04 ZA ZA200308593A patent/ZA200308593B/en unknown
-
2008
- 2008-03-06 AU AU2008201056A patent/AU2008201056A1/en not_active Abandoned
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770363B (zh) * | 2005-06-27 | 2014-03-12 | Csc科技(新加坡)私人有限公司 | 将可执行代码转换为不同编程语言的方法及设备 |
CN100571167C (zh) * | 2006-02-24 | 2009-12-16 | 国际商业机器公司 | Web服务业务流程的单元测试的方法和设备 |
US9230067B2 (en) | 2010-12-21 | 2016-01-05 | Antaios (Beijing) Information Technology Co., Ltd. | Method for normalizing a computer system |
WO2012083521A1 (zh) * | 2010-12-21 | 2012-06-28 | 北京中天安泰信息科技有限公司 | 规范计算机系统行为的方法 |
CN102768682A (zh) * | 2012-06-28 | 2012-11-07 | 用友软件股份有限公司 | 业务规则处理装置和业务规则处理方法 |
CN104662514B (zh) * | 2012-09-25 | 2018-06-05 | 波音公司 | 基于模型关联关系的遗产软件系统的现代化 |
CN104662514A (zh) * | 2012-09-25 | 2015-05-27 | 波音公司 | 基于模型关联关系的遗产软件系统的现代化 |
CN110149800A (zh) * | 2015-04-07 | 2019-08-20 | 华为技术有限公司 | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 |
CN110149800B (zh) * | 2015-04-07 | 2021-12-14 | 华为技术有限公司 | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 |
CN112166409A (zh) * | 2018-06-06 | 2021-01-01 | 欧姆龙株式会社 | 控制系统、控制系统的控制方法以及控制系统的程序 |
CN112166409B (zh) * | 2018-06-06 | 2023-11-14 | 欧姆龙株式会社 | 控制系统、控制系统的控制方法以及记录介质 |
CN110007926A (zh) * | 2019-04-17 | 2019-07-12 | 广东三维家信息科技有限公司 | 语言转换方法及装置 |
CN112698819A (zh) * | 2019-10-22 | 2021-04-23 | 北京信普飞科科技有限公司 | 面向树化对象编程程序设计方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
DE60237200D1 (de) | 2010-09-16 |
WO2002093367A1 (en) | 2002-11-21 |
BR0209497A (pt) | 2005-08-30 |
EP1388054A1 (en) | 2004-02-11 |
KR20040004619A (ko) | 2004-01-13 |
ZA200308593B (en) | 2005-04-08 |
ATE476702T1 (de) | 2010-08-15 |
US20030226132A1 (en) | 2003-12-04 |
IL158696A0 (en) | 2004-05-12 |
US7467375B2 (en) | 2008-12-16 |
EP1388054B1 (en) | 2010-08-04 |
CA2446162A1 (en) | 2002-11-21 |
AU2008201056A1 (en) | 2008-04-03 |
JP2005515518A (ja) | 2005-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1509433A (zh) | 把传统软件应用程序转换为现代面向对象系统的方法和系统 | |
AU2006264207B2 (en) | Code transformation | |
Murphy et al. | Software reflexion models: Bridging the gap between design and implementation | |
US5970490A (en) | Integration platform for heterogeneous databases | |
US9305057B2 (en) | Extensible indexing framework using data cartridges | |
Kienle et al. | Rigi—An environment for software reverse engineering, exploration, visualization, and redocumentation | |
US20130227533A1 (en) | Code transformation | |
CN101030224A (zh) | 用于构建跨越异构环境的统一查询的系统和方法 | |
Çetinkaya et al. | Model continuity in discrete event simulation: A framework for model-driven development of simulation models | |
US20060122973A1 (en) | Mechanism for defining queries in terms of data objects | |
CN101208660A (zh) | 代码转换 | |
Steel et al. | A transformation workbench for building information models | |
CN115469860B (zh) | 基于指令集的需求到软件领域模型的自动生成方法及系统 | |
AU2012201466B2 (en) | Code Transformation | |
Jodłowiec et al. | Towards the pattern-based transformation of SBVR models to association-oriented models | |
Jacindha et al. | Program synthesis—a survey | |
Cen et al. | Block affordances for graphql in mit app inventor | |
JP2006004145A (ja) | プログラムコード生成装置 | |
Du et al. | Research and Implementation of MapReduce Programming Oriented Graphical Modeling System | |
Akgun et al. | Conjure revisited: Towards automated constraint modelling | |
Wang et al. | Improve Software Development: An Overview of Program Synthesis | |
CN117608656A (zh) | 一种基于ast和llm的混合式前端框架迁移方法 | |
CN117591095A (zh) | 一种基于表达式ast解析和可配置模板的代码生成方法 | |
AU2002305544A1 (en) | Method and system for transforming legacy software applications into modern object-oriented systems | |
Martins et al. | A Web-Based Information Integration Tool for the Rapid Prototyping of Spatio-Temporal Mashups |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |