CN1252586C - 产生优化的计算机数据字段转换例程 - Google Patents
产生优化的计算机数据字段转换例程 Download PDFInfo
- Publication number
- CN1252586C CN1252586C CNB008052026A CN00805202A CN1252586C CN 1252586 C CN1252586 C CN 1252586C CN B008052026 A CNB008052026 A CN B008052026A CN 00805202 A CN00805202 A CN 00805202A CN 1252586 C CN1252586 C CN 1252586C
- Authority
- CN
- China
- Prior art keywords
- conversion
- attribute
- application program
- output
- routine
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Abstract
一个系统(20)把数据从输入字段类型转换为输出字段类型。系统(20)接收来自一个应用程序(10)的多个输入属性和输出属性,为每组输入属性和输出属性动态地产生多个数据字段转换例程(30),并把多个数据字段转换例程(30)存储在可以被应用程序(10)访问的存储器中。
Description
发明领域
本发明针对计算机数据。更具体地,本发明针对一种类型的计算机数据字段向另一种类型的转换。
发明背景
在许多情况下,在计算机进行信息处理过程中,计算机数据必须从一种数据字段类型转换成另一种。例如,当数据从一个程序被传送到另一个程序时,数据通常在此过程中要经历几次转换,比如从文本数字转换为一个二进制数。
用于转换数据的典型技术包括使用一个类属数据转换例程。当必须转换数据的整个记录时,转换例程必须确定记录中的每个数据字段的特性或属性是什么。这可能要求转换例程为每个记录的每个字段执行相同的决策树,尽管每个字段具有在逐行的基础上不变化的已知特性。因此,许多计算机周期被浪费在就每个数据字段再三问比如“本字段类型是字符、整数、等等?”问题上。
基于上述内容,需要有一种提供数据字段的有效转换的系统。
发明内容
本发明的一个实施例是一个用于把数据从输入字段类型转换为输出字段类型的系统。该系统从一个应用程序中接收多个输入属性和输出属性,动态地为每组输入属性和输出属性产生多个数据字段转换例程,并把多个数据字段转换例程存储在应用程序可以访问的存储器中。
附图简介
图1是表示根据本发明的一个实施例的一个优化的转换发生器系统的功能性的总揽方框图。
图2是由根据本发明的一个实施例的系统执行用来产生优化的转换例程的步骤的流程图。
图3是当使用例程把输入字段转换为输出字段时由应用程序执行的步骤的流程图。
图4是当应用程序调用时,由转换发生器系统执行的代码产生步骤的流程图。
图5a和5b表示在本发明的一个实施例中使用的动态代码构建的一般例子。
图6a-6h表示执行CHARACTER到CHARACTER转换的一个动态代码产生例程的特例。
详细说明
本发明的一个实施例是为一个应用程序所要求的每种转换类型产生优化的数据字段向数据字段的转换例程的系统。图1是表示根据本发明的一个实施例的一个优化的转换发生器系统20的功能性的总揽方框图。系统20可以在软件中实施,并可以在一个包括中央处理单元和存储器的通用计算机上执行。在一个实施例中,用IBM/360机器指令实施系统20。
一个应用程序10需要执行一种或者更多种字段转换类型。对于每一种转换类型,应用程序10为系统20提供输入(或者“源”)和输出(或者“目的”)字段属性。对于每组输入和输出字段属性,系统20动态地产生一个执行转换的优化的转换例程30。优化的例程30被置于应用程序10可用的存储器中。
一个实施例中的例程30被作为独立例程产生,该独立例程能够被连续地再用,并在当需要一个转换时,由应用程序10使用,例如,一个应用程序接口(“API”),来调用。在另一个实施例中,例程30被作为代码程序块(code chunk)来产生,这些代码程序块被插入应用程序10中与其内联,当需要一个转换时可以被直接访问。
本发明的一个优点是通过构建专门适合于输入和输出字段属性的优化的转换例程,例程的每次执行省却许多通常需要的在每次执行转换时识别字段属性的指令。
图2是根据本发明的一个实施例由系统20执行用来产生优化的转换例程30的步骤的流程图。应用程序10在步骤100确定了输入字段和输出字段具有什么属性之后,由系统20执行步骤。
在步骤102,系统20设置产生的转换例程30的缺省过程选项。这些选项可能包括产生的转换例程30是否是可调用函数(即,能由应用程序10调用),或者是否可以内联复制到应用程序10中。步骤102构建一个模板接口块104,其为应用程序10和转换发生器系统20之间的一个接口。步骤102还产生一个获得需要的存储空间和进行错误检查的启动调用106。
在步骤108,启动一个循环,直到穷举了所有必须被转换的字段,循环才结束。
在循环过程中,在步骤110,从应用程序10接收每组输入和输出属性。通过一个API来接收属性,而且步骤110还基于这些属性,构建一个公用字段转换接口块116。
在步骤112,使用公用接口块116,调用系统20的代码发生器。步骤112产生代码118。
在步骤114,保存一个指向产生的字段转换例程30的函数指针。
图3是当使用例程30把输入字段转换为输出字段时由应用程序10执行的步骤的流程图。
在步骤122中,应用程序正在进行处理。在步骤124,应用程序获得待转换的源或者输入数据。典型地,步骤124涉及读取一个或者多个记录。
在步骤126,为每个读取的记录启动一个循环。在步骤128,在一个实施例中调用用于转换的适当转换例程30。
当所有数据字段和记录被转换时,在步骤132,要求代码发生器系统20终止。其结果是在步骤134释放了存储空间。
在步骤136,应用程序10继续处理。最后,在步骤138,应用程序10结束。
图4是当应用程序10调用时,由转换发生器系统20执行以产生代码的代码产生步骤的流程图。
在步骤200,系统20通过,例如,建立需要的存储空间,检查无效选项和指定应如何产生代码来进行初始化。
在步骤202,系统20验证特定的字段转换选项,例如检验输入和输出长度是正确的。步骤202还确定当代码产生时代码有多大。如果产生的代码将被内联存储,应用程序10可以使用上述信息。
在步骤204,系统20使用字段转换接口块116来构建转换例程。
在步骤206,在步骤200获得的存储空间被释放。
步骤202和204经历同样的内部过程。因此,在步骤208,确定了输入字段类型。输入字段类型的例子包括字符输入210或者专用时间格式输入212。但是,本发明支持任何输入字段类型。
类似地,在步骤214,确定输出字段类型。输出字段类型的例子也包括字符输入213或者专用时间格式输入215,但是本发明支持任何输出字段类型。
在步骤216,如果执行步骤202,确定产生的代码的大小。在步骤218,如果执行步骤204,产生字段转换例程30。
如所公开的,根据本发明的一个实施例的系统20为每组输入和输出字段属性动态地产生优化的转换例程30。接着,由应用程序10利用例程30处理转换。输入和输出字段被系统20归类为原型数据类型,每种数据类型都有可定义的属性和转换行为。例如:
·字符数据类型将是一个具有最大长度属性和CCSID(或字符设置代码页)属性的定长字段。
·日期数据类型将是一个具有最大长度属性和确定日期中使用的分隔符的位置和类型的格式属性(ISO,EUR,等)的定长字段。
在优化的转换发生器系统20的一个实施例中包括的一些以前说明的或者附加的特征包括:
·可选地获得和释放用于API控制块和/或产生的代码的存储空间。
·API控制块可以由API管理函数来链接和模板化。
·可以通过使用一个宏接口来构建API控制块。
·转换例程可以利用寄存器来直接寻址输入和输出字段的位置。寄存器可以由应用程序10通过API参数来选择。
·基于API参数,在转换之后源字段地址寄存器可以可选地被递增到输入字段的末尾。
·基于API参数,在转换之后目的字段地址寄存器可以可选地被递增到格式化字段的末尾。
·基于API参数,一个附加寄存器可以被递增所转换字段的长度。
·基于API参数,可以产生用于转换例程的标准连接。
·基于API参数,可以指定转换错误退出(Conversion Errorexits)来处理枚举的转换错误条件。
·基于API参数,可以产生字符代码集翻译转换代码(即,ASCII字符字段可以被翻译成EBCDIC字符字段)。
·可以产生转换例程来利用由正在为之产生代码的操作系统级支持的最新指令。
在一个实施例中,系统20基于API控制块中的各种设置,通过在调用应用程序10可以访问的存储空间中构建代码程序块,动态地产生代码。如结合流程图中的讨论,产生代码涉及以下步骤:
1.为代码获得存储空间。
2.识别所需要的代码模板。
3.移动代码模板。
4.修改代码模板。
5.向调用应用程序返回可执行代码。
进一步,在一个实施例中,基于API规范,系统20可以为动态产生的代码可选地产生程序调试方法。该方法可以包括一个可选动态分配的输出文件,对于每个字段转换,其包括:API选项和通用处理选项的报告,API选项被用于每个动态产生的例程,可以用该例程来确保字段属性的正确性;和动态产生的例程的一个分解的列表,分解的列表由系统20内的一个内部分解器提供,列表可以被用来识别转换代码的不精确性和进一步优化的区域,并有助于解决产生的代码故障。
图5a和5b表示在本发明的一个实施例中使用的动态代码构建的一般例子。
图6a-6h表示执行CHARACTER到CHARACTER转换的一个动态代码产生例程的特例。
在此专门解释和/或说明了本发明的几个实施例。但是,应当理解本发明的修改和变动为上述教导所函盖,并且置于所附权利要求的权限之内,而不背离本发明的精神和旨在范围。
Claims (16)
1.一种由一个应用程序把多个输入字段类型数据转换为多个输出字段类型数据的方法,所述方法包括:
(a)接收一个第一输入字段类型的一个第一属性和一个第一输出字段类型的一个第二属性;
(b)利用所述第一输入字段类型的第一属性和所述第一输出字段类型的第二属性,识别用于将所述第一输入字段类型转换为所述第一输出字段类型的一个第一代码模板;
(c)基于所述经识别的第一代码模板,生成一个连续可重复使用的第一优化的转换例程;以及
(d)执行来自所述应用程序的所述连续可重复使用的第一优化的转换例程,以把所述第一输入字段类型转换为所述第一输出字段类型。
2.根据权利要求1的方法,其中步骤(d)包括调用来自所述应用程序的所述第一优化的转换例程。
3.根据权利要求1的方法,其中步骤(d)包括同所述应用程序内联地存储所述第一优化的转换程序。
4.根据权利要求1的方法,其中在所述应用程序正在执行时动态地执行步骤(c)。
5.根据权利要求1的方法,进一步包括:
(e)接收一个第二输入字段类型的一个第三属性和一个第二输出字段类型的一个第四属性;
(f)利用所述第二输入字段类型的第三属性和所述第二输出字段类型的第四属性,识别用于将所述第三输入字段类型转换为所述第四输出字段类型的一个第二代码模板;
(g)基于所述经识别的第二代码模板,生成一个连续可重复使用的第二优化的转换例程;
(h)执行来自所述应用程序的所述连续可重复使用的第二优化的转换例程,以便把所述第三输入字段类型转换为所述第四输出字段类型。
6.根据权利要求1的方法,其中所述第一和第二属性是字符类型。
7.根据权利要求1的方法,进一步包括为所述第一优化的转换例程产生程序调试方法。
8.根据权利要求1的方法,其中所述建立第一优化转换例程的步骤包括:
设置与所述转换例程相关的一个或多个缺省的过程选项;
构建模板接口块,作为应用程序和代码发生器系统之间的接口;
为所述转换例程获取存储设备;
基于所述第一属性和所述第二属性构建公用字段转换接口块;
利用所述公用字段转换接口块调用所述代码发生器系统,以产生对所述转换例程的代码;以及
在所述存储设备中保存所述转换例程,以备后续使用。
9.一种把数据从多个输入字段类型转换成多个输出字段类型的方法,所述方法包括:
(a)接收来自一个应用程序的多组输入属性和对应的输出属性;
(b)利用所述的多组输入属性和相应的输出属性,识别用于将所述每种输入属性转换成与其对应的输出属性的多个代码模板;
(c)基于用于将所述每种输入属性转换成与其对应的输出属性的所述多个代码模板,生成多个对应的数据字段转换例程;以及
(d)把所述多个数据字段转换例程存储在所述应用程序可以访问的存储器中。
10.根据权利要求9的方法,其中,所述数据字段转换例程可以由所述应用程序调用。
11.根据权利要求9的方法,其中所述数据字段转换例程与所述应用程序内联地存储。
12.根据权利要求9的方法,其中在所述应用程序正在执行时,动态地执行步骤(c)。
13.根据权利要求9的方法,其中所述输入和输出属性是字符类型。
14.根据权利要求9的方法,其中所述输入和输出属性是日期类型。
15.根据权利要求9的方法,进一步包括为所述多个数据字段转换例程产生程序调试方法。
16.根据权利要求9的方法,进一步包括:
设置与所述的多个转换例程相关的一个或多个缺省的过程选项;
构建一个或多个模板接口块,作为应用程序和代码发生器系统之间的接口;
为所述多个转换例程获取存储设备;
基于所述多个输入属性和输出属性构建一个或多个公用字段转换接口块;以及
利用所述一个或多个公用字段转换接口块调用所述代码发生器系统,以产生对所述一个或多个转换例程的代码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27314999A | 1999-03-19 | 1999-03-19 | |
US09/273,149 | 1999-03-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1359486A CN1359486A (zh) | 2002-07-17 |
CN1252586C true CN1252586C (zh) | 2006-04-19 |
Family
ID=23042736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008052026A Expired - Fee Related CN1252586C (zh) | 1999-03-19 | 2000-03-17 | 产生优化的计算机数据字段转换例程 |
Country Status (11)
Country | Link |
---|---|
US (1) | US8108828B2 (zh) |
EP (1) | EP1183596B1 (zh) |
JP (1) | JP2002540500A (zh) |
KR (1) | KR20020021083A (zh) |
CN (1) | CN1252586C (zh) |
AU (1) | AU776882B2 (zh) |
BR (1) | BR0009162A (zh) |
CA (1) | CA2367061A1 (zh) |
IL (2) | IL145365A0 (zh) |
WO (1) | WO2000057268A1 (zh) |
ZA (1) | ZA200107669B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120233200A1 (en) * | 2011-03-11 | 2012-09-13 | Farahnaz Faegh | Database data localization |
CN105718429B (zh) * | 2014-12-04 | 2019-11-19 | 中兴通讯股份有限公司 | 巡检报告生成的方法及装置 |
US10528328B2 (en) | 2015-12-08 | 2020-01-07 | Microsoft Technology Licensing, Llc | Learning from input patterns in Programing-By-Example |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4751740A (en) * | 1984-12-10 | 1988-06-14 | Wang Laboratories, Inc. | Apparatus, method, and structure for translating a document having one structure into a document having another structure |
US5410675A (en) * | 1989-08-21 | 1995-04-25 | Lisa M. Shreve | Method of conforming input data to an output data structure and engine for accomplishing same |
US5299304A (en) * | 1991-04-16 | 1994-03-29 | International Business Machines Corporation | Method and apparatus for identifying multiple stage document format transformations |
US5513323A (en) * | 1991-06-14 | 1996-04-30 | International Business Machines Corporation | Method and apparatus for multistage document format transformation in a data processing system |
JPH05108641A (ja) * | 1991-10-17 | 1993-04-30 | Fuji Xerox Co Ltd | 文書スタイル設計支援装置 |
US5491628A (en) * | 1993-12-10 | 1996-02-13 | Xerox Corporation | Method and apparatus for document transformation based on attribute grammars and attribute couplings |
US5649214A (en) * | 1994-09-20 | 1997-07-15 | Unisys Corporation | Method and apparatus for continued use of data encoded under a first coded character set while data is gradually transliterated to a second coded character set |
US5629846A (en) * | 1994-09-28 | 1997-05-13 | General Electric Company | Method and system for document translation and extraction |
US5708828A (en) * | 1995-05-25 | 1998-01-13 | Reliant Data Systems | System for converting data from input data environment using first format to output data environment using second format by executing the associations between their fields |
DE19535306A1 (de) * | 1995-09-22 | 1997-03-27 | Siemens Ag | Verfahren zum Konvertieren sich unterscheidender Datenformate |
US5907709A (en) | 1996-02-08 | 1999-05-25 | Inprise Corporation | Development system with methods for detecting invalid use and management of resources and memory at runtime |
US5784635A (en) * | 1996-12-31 | 1998-07-21 | Integration Concepts, Inc. | System and method for the rationalization of physician data |
US6549918B1 (en) * | 1998-09-21 | 2003-04-15 | Microsoft Corporation | Dynamic information format conversion |
US6502236B1 (en) * | 1999-03-16 | 2002-12-31 | Fujitsu Network Communications, Inc. | Method and apparatus for automatic generation of programs for processing data units of multiple formats |
US6772413B2 (en) | 1999-12-21 | 2004-08-03 | Datapower Technology, Inc. | Method and apparatus of data exchange using runtime code generator and translator |
-
2000
- 2000-03-17 BR BR0009162-6A patent/BR0009162A/pt not_active IP Right Cessation
- 2000-03-17 CA CA002367061A patent/CA2367061A1/en not_active Abandoned
- 2000-03-17 AU AU38999/00A patent/AU776882B2/en not_active Ceased
- 2000-03-17 KR KR1020017011893A patent/KR20020021083A/ko not_active Application Discontinuation
- 2000-03-17 EP EP00918135.5A patent/EP1183596B1/en not_active Expired - Lifetime
- 2000-03-17 CN CNB008052026A patent/CN1252586C/zh not_active Expired - Fee Related
- 2000-03-17 JP JP2000607077A patent/JP2002540500A/ja active Pending
- 2000-03-17 WO PCT/US2000/007288 patent/WO2000057268A1/en not_active Application Discontinuation
- 2000-03-17 IL IL14536500A patent/IL145365A0/xx active IP Right Grant
-
2001
- 2001-09-10 IL IL145365A patent/IL145365A/en unknown
- 2001-09-18 ZA ZA200107669A patent/ZA200107669B/en unknown
-
2008
- 2008-04-16 US US12/104,076 patent/US8108828B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
AU776882B2 (en) | 2004-09-23 |
EP1183596B1 (en) | 2017-04-26 |
KR20020021083A (ko) | 2002-03-18 |
EP1183596A4 (en) | 2003-02-05 |
JP2002540500A (ja) | 2002-11-26 |
IL145365A0 (en) | 2002-06-30 |
AU3899900A (en) | 2000-10-09 |
BR0009162A (pt) | 2003-03-05 |
US20080216099A1 (en) | 2008-09-04 |
WO2000057268A1 (en) | 2000-09-28 |
US8108828B2 (en) | 2012-01-31 |
IL145365A (en) | 2006-12-31 |
CA2367061A1 (en) | 2000-09-28 |
EP1183596A1 (en) | 2002-03-06 |
WO2000057268A9 (en) | 2002-06-20 |
ZA200107669B (en) | 2003-02-20 |
CN1359486A (zh) | 2002-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1134730C (zh) | 用于减少预装类的脚印的系统和方法 | |
CN1112642C (zh) | 配置工具中的设计部件复用方法 | |
CN1190053C (zh) | 一种通信设备的数据离线配置方法 | |
CN1612136A (zh) | 文件转换系统以及文件转换方法 | |
CN1369814A (zh) | 软件构建支持系统 | |
CN1469247A (zh) | 语法分析扩展标记语言文件的装置和方法 | |
CN1031144A (zh) | 存贮字符图形的方法和字符图形应用系统 | |
EP1755050A1 (en) | A data processing system and method of storing a dataset having a hierarchical data structure in a database | |
CN1252586C (zh) | 产生优化的计算机数据字段转换例程 | |
CN1949175A (zh) | 一种对软件中的数据进行替换的方法 | |
CN1945527A (zh) | 可实现代码复用的server版代码生成系统 | |
CN1295778C (zh) | 一种验证芯片硬件行为与软件模拟行为的一致性的方法 | |
CN1592887A (zh) | 一种移动通信设备应用程序处理系统 | |
CN1290886A (zh) | 优化单字节字符处理的方法、系统及计算机程序产品 | |
CN111177234A (zh) | 一种文档型数据文件快速处理装置及方法 | |
CN100345120C (zh) | 一种利用编解码输出信息的方法 | |
CN101056312A (zh) | 一种设备间通信的方法及系统 | |
CN1449529A (zh) | 进行格变换的方法和系统 | |
CN1145100C (zh) | 用于改进对存储器数组进行访问的程序的方法和系统 | |
CN101067785A (zh) | 一种基于嵌入式平台的资源管理方法及系统 | |
CN112328258A (zh) | 一种编程语言的转换方法及系统 | |
CN1266601C (zh) | 一种用于语音增值业务系统的优化性能的方法 | |
CN1504889A (zh) | 一种根据资源状态动态调整程序模块功能的方法 | |
US6373409B1 (en) | Method and computer program product for implementing text conversion table compression | |
CN1609849A (zh) | 用于编译两级词法规则的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |