JP2002182915A - Source program storage method, its system, source program restoring method and system, and compiling method and device - Google Patents

Source program storage method, its system, source program restoring method and system, and compiling method and device

Info

Publication number
JP2002182915A
JP2002182915A JP2000384561A JP2000384561A JP2002182915A JP 2002182915 A JP2002182915 A JP 2002182915A JP 2000384561 A JP2000384561 A JP 2000384561A JP 2000384561 A JP2000384561 A JP 2000384561A JP 2002182915 A JP2002182915 A JP 2002182915A
Authority
JP
Japan
Prior art keywords
source program
data
lt
gt
storage device
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.)
Withdrawn
Application number
JP2000384561A
Other languages
Japanese (ja)
Inventor
Yukio Takamune
幸生 高宗
Original Assignee
Tokio Marine & Fire Insurance Co Ltd
東京海上火災保険株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tokio Marine & Fire Insurance Co Ltd, 東京海上火災保険株式会社 filed Critical Tokio Marine & Fire Insurance Co Ltd
Priority to JP2000384561A priority Critical patent/JP2002182915A/en
Publication of JP2002182915A publication Critical patent/JP2002182915A/en
Application status is Withdrawn legal-status Critical

Links

Abstract

PROBLEM TO BE SOLVED: To easily and efficiently use a created program. SOLUTION: A source program 3 is converted into syntactical tree data 11 by a parser 5 and the syntactical tree data 11 is converted into a DOM 17 by a DOM generation program 13. The DOM 17 is converted into an XML file 21 by an XML parser 19 and stored in a form of the XML file 21 Thus, logical structure of the source program 3 without depending on an OS and a compiler made possible to be stored. When a machine language program 9 is generated, the DOM 17 is generated from the XML file 21, the syntactical tree data 11 is generated from the DOM 17 and the syntactical tree data 11 is converted into a machine language program 9 by a coder 7. On the other hand, when the source program 3 is restored from the XML file 21, a conversion processing is performed by an XSLT 23 by using a style sheet 25 in which a conversion rule is stipulated. Thus, the necessary source program 3 is restored in a specified form by preparing the style sheet 25 by every programming language.

Description

【発明の詳細な説明】 DETAILED DESCRIPTION OF THE INVENTION

【0001】 [0001]

【発明が属する技術分野】本発明は、プログラムの保管・管理技術に関する。 The present invention relates] relates to the storage and management technology program.

【0002】 [0002]

【従来の技術】従来、開発者がプログラムを保管する場合には、後の改変・修正などに備えてソース・プログラムの形態で保管していた。 Conventionally, developers in the case to save the program, had been kept in the form of a source program in preparation for such alteration and modification of the post. 一方、ソース・プログラムを機械語のプログラムに変換するコンパイラは、プログラミング言語やOS(OperatingSystem)等のバージョンアップに伴ってバージョンアップされるが、旧バージョンのプログラミング言語で書かれたソース・プログラムをそのままコンパイルできる上位互換をとることが多い。 On the other hand, the compiler to convert the source program into machine language of the program, but is version up with the version-up, such as programming languages ​​and OS (OperatingSystem), as it is a source program written in previous versions of the programming language often it takes a higher-level compatibility that can be compiled. しかし実際上は、上位互換と謳っておきながら、旧バージョンのプログラミング言語で書かれたソース・プログラムをコンパイルすると、エラーを発生する場合もあり、結局ソース・コードの修正を行わなければならない場合も生ずる。 But in practice, while leave claim to upward compatibility, when you compile the source program written in previous versions of the programming language, there is also the case of an error, even if you eventually must be done to modify the source code arise.

【0003】 [0003]

【発明が解決しようとする課題】以上のように、ソース・プログラムを作成してから時間がたつと、現在でも業務上利用可能な機能を有するプログラムであっても、コンパイラ等の外部の環境の変化によって、当該外部環境の変化に応じた修正が必要となる等のため価値が減じられる結果となる。 As described above [0006], when the time from to create a source program goes on, be a program with a business on the features available today, such as the compiler of the external environment by the change, resulting in value for such modified in response to changes in the external environment is required is reduced. また、使用するプログラムミング言語についても、同じプログラミング言語でバージョンアップが行われると共に、新たなプログラミング言語も登場しており、多くの技術者が使用するプログラミング言語に変化も生ずる。 As for the program timing language to be used, along with the version-up is carried out in the same programming language, a new programming language has also appeared, also caused changes in the programming language used by many engineers.

【0004】よって本発明の目的は、作成したプログラムの後の利用を簡単且つ効率的に行えるようにするためのプログラム保管技術を提供することである。 [0004] Therefore an object of the present invention is to provide a program storage techniques to allow use simple and efficient to after the created program.

【0005】また、本発明の他の目的は、プログラムの改変・修正をより簡単に行えるようにするためのソース・プログラムの復元技術を提供することである。 [0005] Another object of the present invention is to provide a restoration technique source program so that the information can be modified and corrected program more easily.

【0006】 [0006]

【課題を解決するための手段】本発明の第1の態様に係るソース・プログラム保管方法は、ソース・プログラムを当該ソース・プログラムの論理構造を表すデータ構造(例えば、構文木データ又は構文木データを変換して得られるXML(eXtensible Markup Language)のドキュメント・オブジェクト・モデル(Document Object Mode Source program storage method according to the first aspect of the present invention SUMMARY OF], the data structure representing the logical structure of the source program source program (e.g., the syntax tree data or syntax tree data obtained by converting a document object model of XML (eXtensible Markup Language) (document object Mode
l))に変換し、記憶装置に格納する第1変換ステップと、当該データ構造をテキスト・データ(例えばXML It converted to l)), a first conversion step of storing in a storage device, a text data (e.g. XML the data structure
の文書データ)に変換し、記憶装置に格納する第2変換ステップとを含む。 The converted document data), and a second conversion step of storing in a storage device.

【0007】このようにソース・プログラムをその論理構造を表すデータにて保管することにより、OSやコンパイラのバージョンアップ、使用言語の変更に対して中立性を保ちつつ、保管・管理することができるようになる。 [0007] By storing in the data in this way represents the logical structure of the source program, OS and compiler version-up, while maintaining the neutrality with respect to change of the language used, it is possible to store and manage so as to.

【0008】上で述べた第1変換ステップを、ソース・ [0008] The first conversion step described above, the source
プログラムを、当該ソース・プログラムの論理構造を表すドキュメント・オブジェクト・モデルに変換し、記憶装置に格納するステップとするような構成であってもよい。 Program, into a document object model that represents the logical structure of the source program may be configured such that the step of storing in a storage device. また、ソース・プログラムを構文木データに変換し、記憶装置に格納するステップと、当該構文木データを、当該構文木データに対応するドキュメント・オブジェクト・モデルに変換するステップとを含むような構成とすることも可能である。 Further, to convert the source program into the syntax tree data, and storing in the storage device, the syntax tree data structure and the like and converting the document object model corresponding to the syntax tree data it is also possible to. すなわち、例えばコンパイラに含まれるパーサを用いて構文木データを生成する構成と、直接ソース・プログラムからドキュメント・オブジェクト・モデルを生成する構成とが可能である。 That is configurable and generating a syntax tree data by using a parser include, for example, the compiler, the arrangement for generating a document object model directly from the source program.

【0009】また上で述べた第2変換ステップを、上記データ構造を、構造を表すためのタグ付き言語(例えばXML)によるテキスト・データに変換し、記憶装置に格納するステップとする構成も可能である。 [0009] The second conversion step discussed above, the data structure, converted into text data by the tagged language for representing a structure (e.g. XML), configuration may be a step of storing in a storage device it is. XMLを使用すれば、一般に普及している各種ツールを使用することができるため、取扱いや保管などが簡単になる。 If you use XML, for a variety of tools that generally widespread can be used, such as handling and storage is simplified.

【0010】本発明の第2の態様に係る、ソース・プログラムの論理構造を記述したテキスト・データ(例えばXMLの文書データ)から当該ソース・プログラムを復元する方法は、適用する変換規則データを記憶装置から読み出す変換規則データ読出ステップと、読み出された変換規則データに基づき上記テキスト・データを変換し、変換により生成されたソース・プログラムを記憶装置に格納するステップとを含む。 [0010] According to a second aspect of the present invention, a method of the text data describing the logical structure of the source program (e.g. document data XML) to restore the source program, stores the conversion rule data to be applied comprising a conversion rule data reading step of reading from the device, and steps of converting the text data based on the conversion rule data read, and stores the source program generated by the conversion in the storage device.

【0011】これにより、例えば一旦XMLのテキスト・データに変換したソース・プログラムを、通常のソース・プログラムに復元することができる。 [0011] As a result, for example, once a source program that has been converted into XML text data, it can be restored to the normal of the source program.

【0012】また、上で述べた変換規則データ読出ステップを、選択されたプログラム言語の種類(同じプログラミング言語の異なるバージョンを含む)に対応する変換規則データを記憶装置から読み出すステップとすることも可能である。 Further, the conversion rule data reading step discussed above, can also be a step of reading conversion rule data from the storage device corresponding to the type of the selected programming language (including different versions of the same programming language) it is. このように変換規則データを可能性のあるプログラミング言語毎に用意して、選択できるようにすれば、元のソース・プログラムが書かれた言語だけでなく、改変・修正を加えようとしている者が慣れ親しんだプログラミング言語に変換することも可能である。 Thus conversion rule data prepared for each programming language that can, and if so can be selected, not only the language in which the original source program is written, the person who is about to add a modified-modified it is also possible to convert the programming language familiar.

【0013】なお、上で述べたテキスト・データを、構造を表すためのタグ付き言語(例えばXML)により記述されたソース・プログラムの論理構造のデータとし、 [0013] Note that the text data described above, the data of the logical structure of the source program written by a tagged language for representing a structure (e.g. XML),
上で述べた変換規則データを、スタイル記述言語(例えばXSL(XML Style Language))により記述されたスタイル・シートとすることも可能である。 The conversion rule data mentioned above, it is also possible to style sheet described in a style description language (e.g. XSL (XML Style Language)).

【0014】本発明の第3の態様に係るコンパイル方法は、構造を表すためのタグ付き言語(例えばXML)によりソース・プログラム内容を表したテキスト・データを、ドキュメント・オブジェクト・モデル(例えばXM Compiling method according to the third aspect of the present invention, the text data representing the source program contents by tagged language (e.g. XML) for representing the structure, document object model (e.g., XM
LのDOM)に変換し、記憶装置に格納するステップと、上記ドキュメント・オブジェクト・モデルを構文木データに変換し、記憶装置に格納するステップと、構文木データを機械語コードに変換し、記憶装置に格納するステップとを含む。 It converted to L DOM of), and storing in the storage device, converts the document object model syntax tree data, and storing in the storage device, the syntax tree data is converted into machine code, stored and storing device.

【0015】これにより例えばXMLによるテキスト・ [0015] The text by this by, for example, XML
データで保管したソース・プログラムをそのままコンパイルして、機械語コードを生成することができるようになる。 And it compiles the source program stored in the data, it becomes possible to generate a machine language code.

【0016】プログラム保管システム、ソース・プログラム復元システム、及びコンパイル装置は、上で述べたソース・プログラム保管方法、ソース・プログラム復元方法、及びコンパイル方法を実行するためのプログラムとコンピュータ・ハードウエアとの組み合せにて実施される。 The program storage system, a source program recovery system, and the compiling apparatus includes a source program storage method described above, the source program restoration method, and for executing the compiled method program and computer hardware and the It is carried out in combination. これらのプログラムは、例えばフロッピー(登録商標)・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。 These programs are stored, for example, a floppy disk, CD-ROM, a magneto-optical disk, semiconductor memory, a storage medium or storage device such as a hard disk. なお、中間的な処理結果はメモリに一時保管される。 Incidentally, intermediate processing results are temporarily stored in memory.

【0017】 [0017]

【発明の実施の形態】図1に本発明の一実施の形態に係る機能ブロック図を示す。 DETAILED DESCRIPTION OF THE INVENTION Figure 1 shows a functional block diagram according to an embodiment of the present invention. コンピュータ1には、通常のコンパイラ27に含まれ且つソース・プログラム3から構文木データ11を生成するパーサ5と、通常のコンパイラ5に含まれ且つソース・プログラム3の論理構造を表す構文木データ11から機械語プログラム9を生成するコーダ7と、構文木データ11から構文木データ11 The computer 1, a parser 5 for generating syntax tree data 11 from and the source program 3 contained in the normal compiler 27, the syntax tree data 11 and part of the normal compiler 5 represents the logical structure of the source program 3 the coder 7 to generate a machine language program 9 from the syntax tree data 11 from the syntax tree data 11
の各要素をオブジェクトに変換したDOM17を生成するDOM生成プログラム13と、DOM17からXML A DOM generation program 13 for generating a DOM17 of each element was converted into objects, XML from DOM17
によるテキスト・データであるXMLファイル21を生成するXMLパーサ19と、DOM17から構文木データ11を生成する構文木生成プログラム15と、XML A text data according to the XML parser 19 to generate the XML file 21, the syntax tree generation program 15 for generating a syntax tree data 11 from DOM17, XML
ファイル21からソース・プログラム3を生成するXS XS to generate a source program 3 from the file 21
LT(XSL Transformation)23と、XSLT23により参照され各プログラミング言語に対応するスタイル・ And LT (XSL Transformation) 23, style corresponding to each programming language is referred to by the XSLT23
シート25(スタイル・シートA(25a),スタイル・シートB(25b),スタイル・シートC(25 Sheet 25 (style sheet A (25a), style sheet B (25b), style sheets C (25
c),. c) ,. . . )とが含まれる。 ) And is included. なお、ソース・プログラム3には、例えばプログラムを実行するための環境について記述したshell scriptや、ライブラリについての情報(Makefile)等を含むこともある。 Note that the source program 3, for example, shell script or that describe the environment for running the program, it may also include information (Makefile), etc. about the library.

【0018】次に、図1に示したコンピュータ1の動作を説明する。 [0018] Next, the operation of the computer 1 shown in FIG. 最初に、ソース・プログラム3を保管する際に行われる処理について説明する。 First, a description will be given of a process performed when storing a source program 3. ソース・プログラム3は、例えば以下のようなソース・プログラムであるとする。 Source program 3, for example a source program described below.

【表1】 01while((fgets(Indata,sizeof(Indata),Infp))!=NULL){/*FILEENDまで1行GET*/ 02 /*識別ID取得 */ 03 for(iCnt=0;strlen(Indata);iCnt++){ /*1行分ループ*/ 04 05 if(Indata[iCnt]!=',') /* ,でない間の文字列を格納*/ 06 TanPCId[iCnt]=Indata[iCnt]; 07 else{ /*,になったら、NULL止め */ 08 TanPCId[iCnt]=0x00; 09 break; 10 } 11 } 12 /*対象の識別IDの場合 */ 13 if(strcmp(TanPCId,PCId)==0){ 14 15 if(ret=1)break; /* 戻り値がOKの場合、ループを抜ける*/ 16 } 17 else memset(TanPCId,0x00,sizeof(TanPCId)); 18 /* 対象端末でない場合、識別IDをNULLクリア */ 19} なお行番号は説明のためだけに付している。 [Table 1] 01while (! (Fgets (Indata, sizeof (Indata), Infp)) = NULL) {/ * FILEEND to one line GET * / 02 / * identification ID acquisition * / 03 for (iCnt = 0; strlen ( Indata);! iCnt ++) {/ * 1 line of loop * / 04 05 if (Indata [iCnt] = ',') / *, contains a string of between not * / 06 TanPCId [iCnt] = Indata [iCnt] ; 07 else {/ *, Once turned, NULL stop * / 08 TanPCId [iCnt] = 0x00; 09 break; 10} 11} 12 / * If the target identification ID * / 13 if (strcmp (TanPCId, PCId) == 0) {14 15 if (ret = 1) break; / * If the return value is OK, leave the loop * / 16} 17 else memset (TanPCId, 0x00, sizeof (TanPCId)); 18 / * target terminal If not, NULL clear * / 19} Note the line number identification ID is given for illustrative purposes only.

【0019】本実施の形態はこのソース・プログラム3 [0019] The present embodiment is the source program 3
の内容には直接関係しないので、ここでは構造のみを説明しておく。 Because of the contents not directly related, where the previously described only the structure. このソース・プログラム3には、最初にw The source program 3, first to w
hile文が設けられている。 hile statement is provided. while文では当該w The w in the while statement
hile文の条件句が最初に記述されるようになっており、ここではfgetsという外部関数の値がNULLではない(!=)という条件である。 Conditions clause of the hile statement is being adapted to be first described, here is a condition that the value of the external function is not NULL that fgets (! =). このwhile文のループの中で行われる下位の処理には、for文のループとif文の処理が含まれる。 The lower of the processing that is performed during the loop of the while statement, include the processing of loops and if statements for statement. for文には、カウンタ(iCnt)の初期値(0)、終了値(strlen(Indata))、 The for statement, the initial value of the counter (iCnt) (0), end value (strlen (Indata)),
カウンタの増分の仕方(iCnt++)の記述が含まれる。 Description of incremental manner counter (iCnt ++) are included. このfor文のループの中の下位の処理には、if文の処理が含まれる。 The lower-level processing in the loop of the for statement, include the processing of the if statement. if文に対応してelse文も設けられている。 else statement in response to the if statement is also provided. if文には条件句(Indata[iCnt]!=',')が記述される。 Conditions clause in the if statement (Indata [iCnt]! = ',') Is described.

【0020】while文のループの一つ下位の処理であるif文にもelse文が対応して設けられている。 [0020] The loop else statement also if statement one is a subordinate of the processing of the while statement is provided so as to correspond.
このif文には条件句(strcmp(TanPCId,PCId)==0)が記述されている。 Conditions clause in the if statement (strcmp (TanPCId, PCId) == 0) is described. さらに、このif文の中にはさらに下位のif文が記述されており、条件句(ret=1)が記述されている。 Furthermore, a further describes the if statement lower Among the if statement, condition clause (ret = 1) is described.

【0021】このソース・プログラム3は、通常のコンパイラ5に含まれるパーサ5により構文木データ11に変換される。 [0021] The source program 3 is converted by the parser 5 included in the normal compiler 5 in the syntax tree data 11. パーサ5により行われる処理は、従来技術と同じであるからここでは詳しく述べない。 Processing performed by the parser 5, not described in detail here since it is identical to the prior art. 構文木データ11は、例えば図2のようなデータである。 Syntax tree data 11 is, for example, data as shown in FIG. 2. 構文木データ11は、構文木とシンボルストアで構成される。 Syntax tree data 11 is composed of a syntax tree and a symbol store. 構文木はソース・プログラム3の階層構造を表すデータであり、シンボルストアは構文木の各要素の属性情報を格納する部分である。 Syntax tree is a data representing the hierarchical structure of the source program 3, symbol store is a portion for storing attribute information for each element of the syntax tree. 図2の例では、シンボルストアには、ifやwhile等のシンボル名、予約語や変数といったシンボル形式、及びシンボル別付加情報が含まれる。 In the example of FIG. 2, the symbol store, symbol names such as if and while, symbol formats such reserved words and variables, and a symbol-specific additional information. シンボル別付加情報には、文字型や整数(Int)型といった型の情報、シンボルが要求する構成要素(if The symbol information per components (an if the type of information such as character and integer (Int) type, symbol requires
文であれば、condition句、then句、else句)等の情報が含まれる。 If statement, condition clause, then phrase includes information else clause) or the like.

【0022】図2の例では、シンボルifのシンボル形式は予約語で、型はなく、Condition句、then句、else [0022] In the example of FIG. 2, symbol format of the symbol if a reserved word, the type is not, Condition clause, then clause, else
句が構成要素となっている。 The phrase has become a component. シンボルwhileのシンボル形式は予約語で、型はなく、Condition句、及びLoo Symbol while the symbols form a reserved word, the type is not, Condition clause, and Loo
p句が構成要素となっている。 p clause has become a component. シンボルfgetsのシンボル形式は外部関数であって、型は文字型であり、データ、サイズ、ファイルを引数とする。 The symbol type of the symbol fgets is an external function, the type is a character type, data size, the file as an argument. シンボルInd Symbol Ind
ataのシンボル形式は変数であって、型は文字型である。 Symbol format ata is a variable, the type is a character type. シンボルsizeofのシンボル形式は外部関数であって、型は整数(Int)型であって、引数はデータである。 The symbol type of the symbol sizeof is an external function, the type is an integer (Int) type, arguments is data. シンボルInfpのシンボル形式は変数であって、型はファイル(File)型である。 The symbol type of the symbol Infp be a variable, the type is a file (File) type. シンボルforのシンボル形式は予約語であって、型はなく、Initial Symbol for the symbols form a reserved word, the type is not, Initial
句、Condition句、Addition句、Loop句が構成要素となっている。 Phrase, Condition clause, Addition clause, Loop clause has become a component.

【0023】構文木の各要素は、下位の要素に対するポインタとシンボルストアの要素に対するポインタとを含む。 [0023] Each element of the syntax tree includes a pointer to a pointer and the elements of the symbol store for the lower elements. 図2では、構文木中のwhile要素からシンボルストアのwhile要素へのリンク、構文木中のInd In Figure 2, the link from the while elements of the syntax in the tree to while elements of the symbol store, Ind syntax in tree
ata要素からシンボルストアのwhile要素へのリンクのみが示されているが、構文木中の全ての要素はシンボルストアの要素へのポインタを含む。 From ata element only link to while elements of the symbol store are shown, all of the elements of the syntax in the tree contains a pointer to the elements of the symbol store. より詳しく示せば図3のようになる。 Is shown in Figure 3 if Shimese more detail. ここでは構文木には要素30 Here is the syntax tree element 30
0、要素302、及び要素304、. 0, element 302, and elements 304,. . . が存在しているものとする。 But it is assumed that the present. 要素300には、シンボルストアへのポインタ300a(ここではif要素へのポインタ)、第1の下位要素(ここでは要素302)へのポインタ30 The element 300, a pointer 300a to a symbol store (pointers to if element in this case), a pointer 30 to the first subelement (here element 302)
0b、及び第2の下位要素(ここでは要素304)へのポインタ300cとが格納される。 0b, and a second sub-element (in this case the element 304) is a pointer 300c to be stored. 要素302には、シンボルストアへのポインタ302a(ここではwhil The element 302, a pointer 302a to a symbol store (whil here
e要素へのポインタ)、第1の下位要素へのポインタ3 A pointer to the e element), pointer 3 to the first sub-element
02b、及び第2の下位要素へのポインタ302cとが格納される。 02b, and the second is a pointer 302c to the sub-elements are stored. もし、下位要素がなければNULLを格納する。 If, to store the NULL if there is no sub-elements. 要素304には、シンボルストアへのポインタ3 The elements 304, pointer 3 to the symbol store
04a、第1の下位要素へのポインタ304b、及び第2の下位要素へのポインタ304cとが格納される。 04a, the pointer 304b to the first subelement and the second is a pointer 304c to the sub-elements are stored. 同様に、下位要素がなければNULLを格納する。 Similarly, to store the NULL if no sub-elements.

【0024】表1に表されたソース・プログラム3の一部は、図2に示される構文木のようなデータ構造を有している。 [0024] Table part of the source program 3 represented in 1 has a data structure such as a syntax tree shown in FIG. すなわち、ルートであるプログラム要素の1つ下位にシンボルwhile要素が設けられる。 That is, the symbol while elements are provided in one lower program element is the root. このwh This wh
ile要素の1つ下位にはCondition要素とL Condition elements in one lower ile elements and L
oop要素が設けられる。 oop elements are provided. Condition要素の下位には、fgets要素とNULL要素とが設けられる。 The lower Condition element, is provided with fgets element and NULL element. NULL要素には、より下位の要素はない。 The NULL element, there is no more subordinate elements. fge fge
ts要素の下位には、Indata、sizeof、I The lower ts element, Indata, sizeof, I
nfpの各要素が設けられる。 Each element of the nfp is provided. sizeof要素の下位には、Indata要素が設けられている。 The lower sizeof element, Indata element is provided.

【0025】一方、while要素のLoop要素の下位には、for及びifの各要素が設けられている。 [0025] On the other hand, the lower-level Loop element of while element, is provided with each element of the for and if. f
or要素の下位には、Initial、Conditi The lower or elements, Initial, Conditi
on、. on ,. . . の各要素が設けられている。 Each element of is provided. Initia Initia
l要素の下位には、Move要素が設けられている。 The lower of the l element, Move element is provided. M
ove要素の下位には、From及びToの各要素が設けられている。 The lower ove element is provided with each element of From and To.

【0026】構文木データ11が生成されると、DOM [0026] When the syntax tree data 11 is generated, DOM
生成プログラム13が図4及び図5に示す処理を構文木データ11に施すことにより、DOM17を生成する。 Generator 13 by applying the syntax tree data 11 the processing shown in FIGS. 4 and 5, to produce a DOM17.
最初に、構文木のルート要素を取得する(図4:ステップS1)。 First, to get the root element of the syntax tree (Fig. 4: step S1). そして、図5に示すDOM生成共通処理を実施する(ステップS3)。 Then, carrying out the DOM generation common processing shown in FIG. 5 (Step S3). DOM生成共通処理実施後に、構文木の全てのリンクをたどり終わったか判断し(ステップS5)、たどり終わっていない場合にはステップS3に戻る。 After DOM generation common processing performed, it is determined whether finished follow all links syntax tree (step S5), and if not finished tracing returns to the step S3. たどり終わった場合には処理を終了する。 When you are finished tracing, the process is terminated.

【0027】図5のDOM生成共通処理においては、最初に、取得した要素が参照しているシンボルストアの要素にアクセスする(ステップS7)。 [0027] In DOM generation common processing in Fig. 5, first, the access elements of the symbol store acquired element is referring (step S7). そして、シンボルストアから参照先のシンボル名や型等の属性情報を抽出し、記憶装置に格納する(ステップS9)。 Then, to extract the attribute information of the symbol names and types, such as the referenced from the symbol store, stored in the storage device (step S9). また、DO Also, DO
Mオブジェクトを生成し、上位DOMオブジェクトの下にマッピングする(ステップS11)。 It generates M object maps under the upper DOM object (step S11). 構文木における階層構造をDOMにおいても保持するため、構文木及びDOMの階層関係を保持しておき、その情報に基づき上位DOMオブジェクトを把握する。 Since the holding in DOM hierarchy in the syntax tree, it holds the hierarchical relationship of the syntax tree and DOM, grasp the upper DOM object based on the information. そして、抽出した属性情報を、作成したDOMオブジェクトの属性として付与して、記憶装置に格納する(ステップS13)。 Then, the extracted attribute information, by giving as an attribute of the DOM object created and stored in the storage device (step S13).

【0028】次に、構文木において下位リンクの未処理要素があるか判断する(ステップS15)。 Next, it is determined whether there is any unprocessed elements in the lower link in the syntax tree (step S15). もし、未処理要素がなければ図4の処理に戻る。 If the process returns to FIG. 4 if there is no unprocessed element. 一方、未処理の要素が存在していれば、構文木における下位リンクの未処理要素を取得する(ステップS17)。 On the other hand, if there is an unprocessed element acquires unprocessed elements of the lower links in the syntax tree (step S17). そして、図5のDOM生成共通処理を実施する(ステップS19)。 Then, carrying out the DOM generation common processing of FIG. 5 (step S19). このDOM生成共通処理の再帰呼び出し(リカーシブ・コール)を行う。 Recursive call of the DOM generation common process (recursive call) is carried out. そして、ステップS15に戻る。 Then, the process returns to the step S15. このようにして、図4における構文木のルート要素に対する処理開始から、図5における構文木の各要素及び下位要素に対する処理により、構文木の全ての要素について網羅的な処理が行われ、DOM17が生成されるようになる。 Thus, from the start of processing for the root element of the syntax tree in Fig. 4, the processing for each element and sub-elements of the syntax tree in Fig. 5, exhaustive treatment of all the elements of the parse tree is performed, the DOM17 It will be generated.

【0029】DOM17は、図5の処理フローでもわかるように、基本的に構文木と同じ構造を有し、各オブジェクトがシンボルストアに格納されている属性情報を保持するデータ構造である。 [0029] DOM17, as can be seen in the process flow of FIG. 5 basically has the same structure as the syntax tree is a data structure that holds attribute information which each object is stored in the symbol store. よって、DOM17を図に表せば、図2に示した構文木と同じであり、図6のようになる。 Therefore, if indicated in the figures DOM17, the same as the syntax tree shown in FIG. 2, it is shown in FIG.

【0030】DOM17が生成されると、XMLパーサ19がDOM17からXMLファイル21を生成する。 [0030] DOM17 is generated, XML parser 19 generates an XML file 21 from DOM17.
このXMLパーサ19において行われる処理は、従来と同じであって、多くの会社から本処理を実行するモジュールが提供されている(例えば、http://www.jp.ibm.co Processing performed in this XML parser 19 is the same as has been conventionally provided a module that executes this processing from a number of companies (e.g., http: //www.jp.ibm.co
m/developerworks/xml/001027/j_xml4j.htmlを参照のこと)。 See m / developerworks / xml / 001027 / j_xml4j.html). また、http://www.W3.org/DOM/に開示されているとおりであるから、ここでは詳しく述べない。 Further, http: since as disclosed in //Www.W3.Org/DOM/, not described in detail herein.

【0031】XMLパーサ19が表1のソース・プログラム3に対応するDOM17から生成したXMLファイル21の一例を以下に示す。 The XML parser 19 is shown below an example XML file 21 generated from DOM17 corresponding to the source program 3 of Table 1.

【表2】 01<while><condition attr="not_equals"><comp1><function type="string"><na me>fgets</name><parms><string> 02<var type="string">Indata</var></string><length><function type="int">< name>sizeof</name><parms><string> 03<var type="string" >Indata</var></string></parms></function></length>< file><var type="FILE">Infp</var></file> 04</parms></function></comp1><comp2><contst type="void">NULL</const></co mp2></condition> 05<loop><comment>FILEEND まで1行GET</comment><comment>識別ID取得</comm ent> 06<for><initial><move><to><var type="int">iCnt</var></to><from><const ty pe="int">0</const></from></move> 07 </initial><condition><function type="int"><name>strlen</name><parm s>< string ><var type="string">Indata</var> 08 </string></parms></function></condition><addition><increase><var t ype="int">iCnt</var></increase> 09 </addition><loop><comment>1行分ルーフ゜</comment> 10<if attr="reserve"><condition attr="not_equals"><comp1><array type="ch ar"><name>Indata</name><index><var [Table 2] 01 <while> <condition attr = "not_equals"> <comp1> <function type = "string"> <na me> fgets </ name> <parms> <string> 02 <var type = "string" > Indata </ ​​var> </ string> <length> <function type = "int"> <name> sizeof </ name> <parms> <string> 03 <var type = "string"> Indata </ ​​var> < / string> </ parms> </ function> </ length> <file> <var type = "FILE"> Infp </ var> </ file> 04 </ parms> </ function> </ comp1> <comp2 > <contst type = "void"> NULL </ const> </ co mp2> </ condition> 05 <loop> <comment> FILEEND to one line gET </ comment> <comment> identification ID acquiring </ comm ent> 06 <for> <initial> <move> <to> <var type = "int"> iCnt </ var> </ to> <from> <const ty pe = "int"> 0 </ const> </ from > </ move> 07 </ initial> <condition> <function type = "int"> <name> strlen </ name> <parm s> <string> <var type = "string"> Indata </ ​​var> 08 </ string> </ parms> </ function> </ condition> <addition> <increase> <var t ype = "int"> iCnt </ var> </ increase> 09 </ addition> <loop> <comment > one row of roof ° </ comment> 10 <if attr = "reserve"> <condition attr = "not_equals"> <comp1> <array type = "ch ar"> <name> Indata </ ​​name> <index> < var type="int">iCnt</var> 11 </index></array></comp1><comp2><const type="ch ar">','</const></comp2></condition> 12 <comment>でない間の文字列を格納</comment><do><move><to><array type ="char"><name>TanPCId</name>* 13 <index><var type="int">iCnt</var></index></array></to><from><array type="char"><name>Indata</name> 14 <index><var type="int">iCnt</var></index></array></from></move></d o> 15 <else><comment>,になったら、NULL止め</comment> 16 <move><to> <array type="char"><name> TanPCId</name><index><var typ e="int">iCnt</var></index></array> 17 </to><from><const type="hex">0x00</const></from></move><loopbreak/ ></else></if></loop></for> 18 <comment>対象の識別IDの場合</comment> 19<if attr="reserve"><condition attr="equals"><comp1><function type="log ical"><name>strcmp</name><parms><string1> 20 <var type="string">TanPCId</var></string1><string2><var type="stri ng">PCId</var></string2></parms></function> 21 </comp1><comp2><const type="logical">0</const></comp2></condit type = "int"> iCnt </ var> 11 </ index> </ array> </ comp1> <comp2> <const type = "ch ar"> ',' </ const> </ comp2> </ condition > 12 <store a string of between not comment> </ comment> <do> <move> <to> <array type = "char"> <name> TanPCId </ name> * 13 <index> <var type = "int"> iCnt </ var> </ index> </ array> </ to> <from> <array type = "char"> <name> Indata </ ​​name> 14 <index> <var type = "int "> iCnt </ var> </ index> </ array> </ from> </ move> </ do> 15 <else> <comment>, When you become, NULL stop </ comment> 16 <move> < to> <array type = "char"> <name> TanPCId </ name> <index> <var typ e = "int"> iCnt </ var> </ index> </ array> 17 </ to> <from > <const type = "hex"> 0x00 </ const> </ from> </ move> <loopbreak /> </ else> </ if> </ loop> </ for> 18 <comment> object of identification ID in the case of </ comment> 19 <if attr = "reserve"> <condition attr = "equals"> <comp1> <function type = "log ical"> <name> strcmp </ name> <parms> <string1> 20 <var type = "string"> TanPCId </ var> </ string1> <string2> <var type = "stri ng"> PCId </ var> </ string2> </ parms> </ function> 21 </ comp1 > <comp2> <const type = "logical"> 0 </ const> </ comp2> </ condit ion> <do><if attr="reserve" > 22 <condition attr="equals"><comp1><var type="int">ret</var></comp1>< comp2><const type="int">1</const> 23 </comp2></condition><do><loopbreak/></do></if>< /do><comment>戻り値がOKの場合、ループを抜ける 24 </comment><else><function type="string"><name>m emset</name><parms><target><var type="string">TanPCId 25 </var></target>25<source><const type="hex">0x00 </const></source><length><function type="int"><name>sizeof 26 </name><parms> <string><var type="string">TanPC Id</var></string></parms></function></length></parms> 27 </function></else></if><comment>対象端末でない 場合、識別IDをNULLクリア</comment></loop></while> なお、行番号は以下の説明のために付加している。 ion> <do> <if attr = "reserve"> 22 <condition attr = "equals"> <comp1> <var type = "int"> ret </ var> </ comp1> <comp2> <const type = " int "> 1 </ const> 23 </ comp2> </ condition> <do> <loopbreak /> </ do> </ if> </ do> <comment> If the return value is OK, 24 to exit the loop </ comment> <else> <function type = "string"> <name> m emset </ name> <parms> <target> <var type = "string"> TanPCId 25 </ var> </ target> 25 < source> <const type = "hex"> 0x00 </ const> </ source> <length> <function type = "int"> <name> sizeof 26 </ name> <parms> <string> <var type = " string "> TanPC Id </ var> </ string> </ parms> </ function> </ length> </ parms> 27 </ function> </ else> </ if> <comment> If it is not the target terminal, NULL clear identification ID </ comment> </ loop> </ while> Note that line numbers are added for the following description.

【0032】表1のソース・プログラム3は、全体がw [0032] Table 1 of the source program 3, the whole w
hileループの中にあるため、表2において、第01 Since that is in the hile loop, in Table 2, the 01
行の最初のwhileタグ及び第27行の最後の/whileタグで挟まれる形になっている。 It is in the form sandwiched by the first while the tag and line 27 of the last / while the tag line. while文にはconditio conditio the while statement
n句とLoop句が含まれるため、第01行のconditionタグ及び第04行の/conditionタグの間に条件が記述され、 Since n clause and Loop clauses are included, conditions described between the condition tag and the line 04 of / condition tags of the 01 rows,
第05行のloopタグ及び第27行の/loopタグの間にループ処理の内容が記述される。 The contents of the loop process is described between the loop tag and line 27 of / loop tag of the line 05.

【0033】condition句では2つの値が比較され、! The two values ​​are compared in the condition clause,!
=(等しくない:not_equals)かどうかが判断される。 = (Not equal: not_equals) whether it is determined.
よって、第01行のconditionタグ(属性attrが「等しくない」(not_equals)(attr="not_equals"))及び第04行の/conditionタグの間に比較される値についての情報が記述される。 Thus, information about the values ​​to be compared between the first line 01 condition tag ( "not equal" attribute attr is (not_equals) (attr = "not_equals")) and a line 04 of / condition tag is described. 比較される第1の値についての情報は、第01行のcomp1タグから第04行の/comp1タグの間に記述される。 Information about the first value to be compared is described between the first line 04 of / comp1 tags from comp1 tag of the 01 rows. conditinon句にはfgetsという文字列型(string型)関数が使用されており、第01行のfu The conditinon clause and string type (string-type) function is used as fgets, fu of the 01 row
nctionタグ(型typeがstring(type="string"))と第04行の/functionタグの間でfgetsという関数の内容が規定される。 nction tag (type type is string (type = "string")) the contents of the function called fgets between the first line 04 of the / function tag is defined. 関数の名前は第01行のnameタグと/name The name of the function and the name tag of the 01 line / name
タグの間に記述される。 It is described between the tag. また、この関数のパラメータ(引数)は、第01行のparmsタグと第04行の/parms The parameter (argument) This function is the first 01 rows parms tag and the line 04 of / parms
タグの間に記述される。 It is described between the tag. 最初のパラメータは文字列であって、文字列型(string型)の変数Indataである。 The first parameter a string, a variable Indata of string (string type). 文字列を表すために第01行のstringタグと第02行の/str Of the 01 rows to represent a string string tag and the line 02 of the / str
ingタグが設けられ、変数を表すために第02行のvarタグ(型typeがstring(type="string"))と/varタグとが設けられ、それらの間にIndataが記述される。 ing tag is provided, var tag of the line 02 (type type is string (type = "string")) and / var tag and is provided to represent a variable, inData is described therebetween. 次のパラメータは長さであって、整数型(int型)の関数sizeo The following parameters have a length, a function of the integer type (int type) Sizeo
fである。 It is a f. 長さを表すために第02行のlengthタグと第03行の/lengthタグが設けられ、関数を表すために第02行のfunctionタグ(型typeがint(type="int")) It provided a line 02 of length tag and the line 03 of / length tag to indicate the length, to represent the function first 02 rows of the function tag (type type is int (type = "int"))
と第03行の/functionタグとが設けられる。 And a second line 03 of / function tag is provided when. 関数sizeo Function sizeo
fの名前を第02行のnameタグと/nameタグの間に記述している。 The name of the f describes between the first 02 rows of name tags and / name tag. この関数sizeofのパラメータ(引数)を記述するために第02行のparmsタグと第03行の/parmsタグが設けられている。 The 02 row parms tag and the line 03 of / parms tags are provided to describe the parameters (arguments) of the function sizeof. 関数sizeofのパラメータは関数fget Parameters of the function sizeof function fget
sのパラメータでもある変数Indataであり、第01行の最後のstringタグから第02行の/stringタグまでと同じタグが用いられている。 s is a variable Indata which is also a parameter of the same tag is used as the last string tag of the 01 row to the 02 row / string tag. 関数fgetsの最後のパラメータはファイルであって、ファイル型(FILE型)の変数In The last parameter of the function fgets is a file, the file type (FILE type) variable In
fpである。 It is fp. ファイルであることを示すために第03行の Of the line 03 in order to show that it is a file
fileタグと/fileタグが設けられ、変数を表すために第02行のvarタグ(型typeがFILE(type="FILE"))と/v file tag and / file tag is provided, var tag of the line 02 to represent a variable (type type is FILE (type = "FILE")) and / v
arタグとが設けられ、その間にInfpが記述される。 ar tag and is provided, Infp is described therebetween. これにて関数fgetsの第1の比較値についての記述が終了する。 This description of the first comparison value of the function fgets at ends.

【0034】第2の比較値についての情報は、第04行のcomp2タグと/comp2タグとの間に記述される。 The information about the second comparison value is written between the comp2 tag and / comp2 tags of the line 04. 第2の比較値はNULLであり、定数型(constant型)であるから、第04行のconstタグ(型typeがvoid(type="voi The second comparison value is NULL, then since it is constant type (constant-type), the line 04 of const tag (type type is void (type = "voi
d"))と/constタグが設けられ、その間にNULLが挟まれる。以上でwhile文のcondition句の記述が終了する。 d ")) and / const tag is provided, NULL is sandwiched. above in the description of condition clause of the while statement is completed in the meantime.

【0035】loop句においては最初に2つのコメントが付されているので、commentタグと/commentタグとを設けて、コメント文をその間に記述する。 [0035] Since the first two comments are given in the loop clause, provided the comment tag and / comment tags, describing the comments in the meantime. while文の中にはfor文が設けられているため、第06行のforタグと第17行最後の/forタグが設けられる。 Since the for statement is provided in the while statement, the 06 row for the tag and the line 17 the last / for the tag is provided. for文の中には、初期値(initial)、終了条件(condition)、及び付加条件(addition)が規定される。 Some for statement, the initial value (initial), end condition (condition), and the additional conditions (Addition,) is defined. 第06行のinitia The first 06 rows of the initia
lタグと第07行の/initialタグ、第07行のcondition l tag and the No. 07 line / initial tag, the first 07 rows of the condition
タグと第08行の/conditionタグ、第08行のaddtion Tag and the No. 08 line of / condition tags, addtion of 08 line
タグと第09行の/additionタグとが設けられ、各タグの間に必要な情報が記述される。 Tag and a second line 09 of / Addition, the tag is provided, the information required between each tag is described. 初期値の情報には、カウンタの変数の情報と、そのカウンタの初期値の情報とが含まれる。 The information of the initial value, and the counter variable information includes the information of the initial value of the counter. ここではinitialタグ及び/initialタグの間には代入を表す第06行のmoveタグと/moveタグが設けられ、代入先を記述するために第06行のtoタグ及び Here between initial tag and / initial tag provided first 06 rows of the move tag and / move tags representing the assignment, the 06 row to the tag to describe the assignment target and
/toタグ、整数型(int型)のカウンタの変数iCntを記述するために第06行のvarタグ(型typeがint(type="in / To tag, the first 06 rows of the var tag to describe the counter of the variable iCnt of integer type (int type) (type type is int (type = "in
t"))及び/varタグとが設けられる。また、カウンタに代入される初期値0を記述するために第06行のfromタグと/fromタグ、整数型(int型)の定数0を記述するために第06行のconstタグ(型typeがint(type="in t ")) and / var tag and are provided. Further, the 06 row from the tag and / from the tag to describe the initial value 0 is substituted into the counter, describe the constant 0 integer (int type) the first 06 rows of const tag in order to (type type is int (type = "in
t"))と/constタグが設けられる。 t ")) and / const tag is provided.

【0036】終了条件を記述するための第07行のcond [0036] cond of the first 07 rows for describing the termination condition
itionタグと第08行の/conditionタグの間には、整数型(int型)の関数strlenを記述する。 Between ition tags and 08 row / condition tags describe the function strlen integer (int type). この関数strlen This function strlen
のために、第07行のfunctionタグ(型typeがint(typ For, the first 07 rows of the function tag (type type is int (typ
e="int"))と第08行の/functionタグが設けられる。 e = "int")) and 08 lines of / function tag is provided.
関数strlenの名前を記述するためのnameタグと/nameタグとが設けられる。 And a name tag and / name tags to describe the name of the function strlen is provided. この関数のパラメータは、第07行のparmsタグと第08行の/parmsタグの間に記述される。 The parameters of the function is written between parms tags and 08 row / parms tag 07 rows. なお、ここでパラメータは変数Inadataであり、第01行の最後のstringタグから第02行の/stringタグまでと同じタグが用いられている。 Here, the parameter is a variable Inadata, same tag as the last string tag of the 01 row to the 02 row / string tag is used. 付加情報を記述するための第08行のaddtionタグと第09行の/additionタグの間には、カウンタの変数iCntの値ががどのように変化するかについて記述する。 Between 08 row addtion tag and the line 09 of / Addition, tags for describing the additional information describes whether the value of the variable iCnt counters how changes. ソース・プログラムではiC iC is in the source program
nt++であるから、変数iCntは1ずつ増加することになる。 Because it is nt ++, variable iCnt will increase by one. よって、増加を示す第08行のincreaseタグと/inc Thus, of the 08 line showing the increase increase tag and / inc
reaseタグが設けられる。 rease tag is provided. これらの間には、カウンタの変数iCntについての情報(第06行と同じ)が記述される。 Between these, information about the variables iCnt counter (same as the 06 line) is described. このようにfor文のLoop句に対する条件が記述される。 Conditions for such in the for statement Loop clause is described. なお、第09行には、コメントを記述するためのco It should be noted that, in the first line 09, co for describing a comment
mmentタグ及び/commentタグが設けられ、コメントが間に記述される。 mment tag and / comment tag is provided, it is described between comments.

【0037】for文の中の最初の処理はif文の処理である。 The first of the processing in the for statement is the processing of the if statement. このif文の存在を示すために、第10行のifタグ(属性attrがreserve(予約語)(attr="reserve")) In order to indicate the presence of this if statement, the first 10 lines of if tag (attribute attr is reserve (reserved word) (attr = "reserve"))
と第17行の/ifタグとが設けられる。 And a second line 17 of / if the tag is provided when. このif文の条件は、第10行のconditionタグ(属性attrが「等しくない」(not_equals)(attr="not_equals"))と第11 Conditions of the if statement, the first 10 rows condition tag ( "not equal" attribute attr is (not_equals) (attr = "not_equals")) and the second 11
行の/conditionタグとの間に記述される。 It is written between lines of / condition tags. 条件の中の比較の対象は第10行のcomp1タグ及び第11行の/comp1 Conditions Comparison of interest in the comp1 tag and line 11 of the line 10 / comp1
タグの間に一つ、第11行のcomp2タグ及び/comp2タグの間に一つ記述される。 One between the tags is one described between the comp2 tag and / comp2 tag line 11. 第10行のcomp1タグ及び第1 Line 10 of comp1 tag and first
1行の/comp1タグの間の第1の比較値は文字型(char First comparison value between the first line of the / comp1 tag character (char
型)の配列Indataであり、第10行のarrayタグ(型typ An array Indata type), line 10 of the array tag (type typ
eはchar(type="char"))から第11行の/arrayタグの間に記述される。 e is described between the line 11 of / array tags from char (type = "char")). 配列Indataの名前は、第10行のname The name of the array Indata is, name of the line 10
タグ及び/nameタグの間に記述される。 It is described between the tags and / name tag. 配列のインデックスについての情報は、第10行のindexタグと第11 The information about the indexes of an array, and index tags 10, line 11
行の/indexタグの間に記述される。 It is written between the lines of / index tag. ここでは変数iCntがインデックスであるから、第06行と同じ内容が記述される。 Since here the variable iCnt has an index the same content as the first 06 rows is described. 第11行のcomp2タグ及び/comp2タグの間の第2 During a second comp2 tag and / comp2 tag line 11
の比較値は、文字型の定数「,」であり、第11行のco The comparison value is a character constant "," line 11 of the co
nstタグ(型typeがchar(type="char"))と/constタグの間に「,」が記述される。 Between nst tag (type type is char (type = "char")) and / const tag "," it is described. このようにして条件が記述される。 Conditions this way is described. なお、この後第12行にはcommentタグと/comm Note that the comment tag on line 12 after this / comm
entタグとを用いてコメントが記載される。 Comments are described by using the ent tag.

【0038】if文の条件が満たされた場合の処理が第1 The processing of the case where the condition of the if statement is met first
2行のdoタグと第14行の/doタグの間に規定される。 Is defined between the two lines do tag and line 14 of / do tags.
ここでは代入が行われるために、第12行のmoveタグと第14行の/moveタグが設けられる。 For this case the assignment is made, line 12 of the move tag and line 14 of / move the tag is provided. その代入先の変数を規定するために第12行のtoタグと第13行の/toタグが設けられる。 to tag and line 13 of / to the tag of the 12th row is provided to define the destination variable. また、代入元の変数などを規定するために第13行のfromタグと第14行の/fromタグとが設けられる。 Also, a line 13 of from tags and line 14 of / from the tag is provided to define a like assignment source variable. ここで代入先の変数は文字型(char型)の配列TanPCIdであり、第12行のarrayタグ(型typeがchar Here destination variable is an array TanPCId character types (char type), line 12 of the array tag (type type is char
(type="char"))と第13行の/arrayタグとが設けられる。 (Type = "char")) and the line 13 of / array tags are provided. 配列の名前は第12行のnameタグと/nameタグとの間に記述される。 The name of the array is written between name tag and / name tag of the 12th row. 配列のインデックスは、第13行の An array index, the line 13
indexタグと/indexタグの間に記述される。 It is described between the index tags and / index tag. ここでインデックスは変数iCntであるから、第06行と同じ内容が記述される。 Here index because it is variable iCnt, the same content as the first 06 rows is described. また、第13行のfromタグと第14行の/f Also, line 13 of from tags and 14th row / f
romタグの間に記述される代入元の変数は、ここでは文字型の配列Indata[iCnt]であり、第10行及び第11行と同じ内容が記述される。 Assignment source variables described during rom tags, here is an array of character inData [iCnt], the same content as the line 10 and the line 11 is described. このようにif文の条件が満たされた場合の処理が記述される。 In this process when the condition is met if statements are written as.

【0039】次にif文の条件が満たされなかった場合の処理が第15行のelseタグと第17行の/elseタグの間に記述される。 [0039] Next, the process when the condition of the if statement is not satisfied is described between the else tag and the line 17 / else tag line 15. ここでは、次にコメントが挿入されているので、第15行にはcommentタグと/commentタグが設けられている。 Here, since then comments are inserted, comment tag and / comment tag is provided in the line 15. また、ここでは代入が行われるために、 Further, in order to assign it is done here,
第16行のmoveタグと第17行の/moveタグとが設けられる。 And move the tag of line 16 and line 17 of / move the tag is provided. 代入先の変数は、上で述べた文字型の配列TanPCI Destination variable is a character type discussed above sequence TanPCI
d[iCnt]であるため、第16行のtoタグと第17行の/to For a d [iCnt], the line 16 to the tag and the line 17 of / to
タグの間には、第12行及び第13行と同じ内容が記述される。 Between the tag, the same content as the lines 12 and line 13 is described. 一方、代入元は、0x00という16進数(hex On the other hand, assignment source, 0x00 that hexadecimal (hex
型)の定数であるから、第17行のfromタグと/fromタグの間には、定数を表すconstタグ(型typeはhex(type Since a constant type), between the from tag and / from the tag of the 17th line, const tag representing constants (mold type is hex (type
="hex"))と/constタグとが設けられ、間に0x00が記述される。 = "Hex")) and / const tag and is provided, 0x00 is described between. このような代入文の次には、breakを表す情報(loopbreakタグ)が設けられる。 The following such assignment statement, information representing the break (LoopBreak tag) is provided. このようにしてfor文の処理についての記述が終了する。 In this way, the description of the processing of the for statement is completed. なお、for文の次の処理のために、コメントが用意されているので、第18 It should be noted that, for the next processing of the for statement, because the comments are available, the first 18
行にはcommentタグと/commentタグと、その間にコメント自体が記述される。 And the comment tag and / comment tags in a row, comment itself is described in the meantime.

【0040】for文の次の処理はif文である。 [0040] The following processing of the for statement is the if statement. よって、 Thus,
第19行のifタグ(属性attrがreserve(予約)(attr Line 19 of the if tag (attribute attr is reserve (reservation) (attr
="reserve"))と第27行の/ifタグとが設けられる。 = "Reserve")) and the line 27 of / if the tag is provided. i i
f文の条件は、第19行のconditionタグ(属性attrが「等しい」(equals)(attr="equals"))と第21行の/conditionタグとの間に記述される。 Conditions f statement is described between the line 19 condition tags (attributes attr is "equal to" (equals) (attr = "equals")) and the line 21 of / condition tags. 第1の比較の対象は、第19行のcomp1タグと第21行の/comp1タグの間にその情報が記述される。 Target of the first comparison, the information is written during the comp1 tag and line 21 of / comp1 tag line 19. ここでは、論理型(logica In this case, the logical type (logica
l型)の関数strcmpが第1の比較の対象である。 Strcmp function of l-type) is the first comparison of the subject. よって、第19行のfunctionタグ(型typeはlogical(type Thus, line 19 of the function tag (type type is logical (type
="logical")と第20行最後の/functionタグが設けられる。 = "Logical") and line 20 the last / function tags is provided. この関数strcmpのパラメータのために第19行の For the parameters of this function strcmp of line 19
parmsタグと第20行の/parmsタグとが設けられる。 parms tag and line 20 of / parms and tag are provided. そして、名前のためのnameタグと/nameタグでstrcmpを挟んでいる。 And, it is sandwiched between the strcmp with name tags and / name tag for the name. この関数には2つの文字列型のパラメータが規定されるので、第19行のstring1タグと第20行の/ Since two string type parameter to this function is defined, the line 19 string1 tag and line 20 of /
string1タグと、第20行のstring2タグと/string2タグとが設けられる。 string1 tag, and string2 tag and / string2 tag line 20 is provided.

【0041】第1のパラメータは文字列型(string型) [0041] The first parameter is a character string type (string type)
の変数TanPCIdであり、第20行のvarタグ(型typeがst Of a variable TanPCId, line 20 of the var tag (type type is st
ring(type="string"))と/varタグとの間にTanPCIdが記述される。 TanPCId is described between the ring (type = "string")) and / var tag. また、第2のパラメータは文字列型(stri The second parameter string (stri
ng型)の変数PCIdであり、第20行のvarタグ(型type ng-type) and a variable PCID, line 20 of the var tag (type type
がstring(type="string"))と/varタグとの間にPCId PCId but between the string (type = "string")) and / var tag
が記述される。 There is described.

【0042】一方第2の比較対象は、第21行のcomp2 On the other hand the second comparative object, the line 21 comp2
タグと/comp2タグの間にその情報が記述される。 The information between the tags and / comp2 tags are described. ここでは論理型(logical型)の定数0であるから、第21行のconstタグ(型typeがlogical(type="logical"))と Because here is a constant 0 Boolean (logical type), line 21 of const tag (type type is logical (type = "logical")) and
/constタグとが設けられ、定数0が挟まれる。 / Const tag and is provided, constant 0 is sandwiched. これにて、if文の条件が規定された。 This in, conditions of the if statement is defined.

【0043】次に、if文の条件が満たされた場合に実行される処理が、第21行のdoタグと第23行の2回目の Next, processing executed when the condition of the if statement is met, the line 21 do tag and the second of line 23
/doタグの間に規定される。 / Is defined between the do tag. ここでは再度if文が実行される。 Here is the if statement is executed again. よって第21行のifタグ(属性attrが予約語rese Therefore, the first 21 rows of if tag (attribute attr is reserved word rese
rve(attr="reserve"))と第23行の/ifタグの間にif rve if between (attr = "reserve")) and the second line 23 of / if tag
文の内容が記述される。 The contents of the statement are described. このif文の条件は、第22行の Conditions of the if statement, the line 22
conditionタグ(属性attrが「等しい」equals(attr="e condition tag (attribute attr is "equal to" equals (attr = "e
quals"))と第23行の/conditionタグとの間に記述される。第1の比較対象は、第22行のcomp1タグと/comp quals ")) to be described between the line 23 of / condition tags. The first comparison is, comp1 tag and / comp the line 22
1タグの間に記述される。 1 is described between the tags. 第1の比較対象は、整数型(i The first comparison is an integer type (i
nt型)変数retであり、第22行のvarタグと/varタグとの間にretを挟むように記述している。 A nt type) variable ret, it describes so as to sandwich the ret between the var tag and / var tag line 22. 一方第2の比較対象は整数型(int型)の定数1であり、第22行のcon While the second comparison is a constant integer 1 (int type), line 22 of the con
stタグと/constタグの間に記述される。 It is described between the st tag and / const tag. このようにif文の条件が記述される。 This condition of the if statement is described as.

【0044】このif文の条件が満たされると実行される処理が、第23行のdoタグと1回目の/doタグの間に記述される。 The process of this condition in the if statement is executed and is satisfied, is written between the do tag and first / do tag line 23. ここではbreakであるから、loopbreakタグが設けられる。 Since here a break, LoopBreak tag is provided. ここでコメントを挿入するために第23行のcommentタグと第24行の/commentタグとが設けられる。 And comment tag line 23 and line 24 of / comment tag is provided for here insert comments.

【0045】もし第19行のif文の条件が満たされない場合に実行される処理が、第24行のelseタグと第27 [0045] If the processing condition in the if statement in line 19 is executed if not satisfied, and else tags 24, line 27
行の/elseタグの間に規定される。 Defined between the line of the / else tag. ここでは、文字列型(string型)の関数memsetが実行される。 Here, the function memset string type (string-type) is executed. よって、第2 Thus, the second
4行のfunctionタグ(型typeがstring(type="strin Four rows of function tag (type type is string (type = "strin
g"))と第27行の最初の/functionタグの間に関数についての記述が行われる。関数の名前は、第24行のna g ")) and the description of the function during the first / function tag of line 27 is performed. The name of the function, na of the line 24
meタグと/nameタグの間に記述される。 It is described between me tag and / name tag. この関数memset This function memset
の3つのパラメータは、第24行のparmsタグと第26 The three parameters, and parms tags 24, line 26
行の二回目の/parmsタグの間に記述される。 It is described between the second time / parms tag line. 第1のパラメータはターゲット(target)であり、第2のパラメータはソース(source)であり、第3のパラメータは長さ(length)である。 The first parameter is the target (target), the second parameter is a source (source), the third parameter is the length (length). よって、第24行のtargetタグ及び第25行の/targetタグ、第25行のsourceタグ及び/so Thus, line 24 of the target tag and the 25th row of the / target tag, the line 25 of the source tag and / so
urceタグと、第25行のlengthタグ及び第26行の/len And urce tag, the 25th row length tag and line 26 of / len
gthタグが設けられる。 gth tag is provided.

【0046】第1のパラメータであるターゲットは、文字列型の変数tanPCIdであり、第20行に示したのと同じ記述がなされる。 The target is a first parameter is a variable tanPCId string types, the same description is made as shown in the 20th line. 第2のパラメータであるソースは、 The source is a second parameter,
16進数型(hex型)の定数00x0であり、第17行に示したのと同じ記述がなされる。 16 decimal type is a constant 00x0 of (hex-type), the same description is made as shown in line 17. 第3のパラメータである長さは、変数TanPCIdをパラメータとする整数型(int Length of the third parameter is an integer type that the variable TanPCId a parameter (int
型)の関数sizeofである。 It is a function sizeof type). よって、第25行のfunction Thus, the first 25 rows of function
タグ(型typeがint(type="int"))と第26行の/func Tag (type type is int (type = "int")) and the line 26 / func
tionタグとが設けられ、関数名sizeofが第25行のname tion tag and is provided, name the function name sizeof is the first 25 rows
タグと第26行の/nameタグの間に記述される。 Tags and is described between the line 26 of / name tag. またこの関数のパラメータは、第26行のparmsタグと/parms The parameters of this function, line 26 of parms tag and / parms
タグの間に記述され、ここでは変数TanPCIdであるから第20行に示されたのと同じ記述がなされる。 Described between the tags, where the same description as given line 20 because it is variable TanPCId is made. このようにして、第19行のif文の条件が満たされない場合に実行される処理が記述される。 In this way, processing to be executed when the condition of the if statement in line 19 is not satisfied is described. なお、最後にコメントを挿入するため第27行のcommentタグと/commentタグが設けられ、間にコメントが記述される。 Incidentally, the last is provided, line 27 of the comment tag and / comment tag to insert comments, comment is described between.

【0047】このようにしてXMLファイル21が生成される。 The XML file 21 in this manner is generated. このままXMLファイル21の形式で保存してもよいし、その他のツール(例えばXML Stor The remains may be stored in the form of an XML file 21, other tools (e.g., XML Stor
e)を用いて保存するような構成であってもよい。 e) it may be such as to store configuration used.

【0048】このようにソース・プログラム3をその論理構造を表すデータにて保管することにより、OSやコンパイラのバージョンアップ、使用言語の変更に対して中立性を保ちつつ、保管・管理することができるようになる。 [0048] By stored at this as the source program 3 the data representing the logical structure, OS and compiler version-up, while maintaining the neutrality with respect to change of use language, be stored and managed become able to.

【0049】次にXMLファイル21から機械語プログラム9を生成する際の処理について説明する。 [0049] Next, processing for generating the machine language program 9 from the XML file 21 will be described. XMLファイル21は、XMLパーサ19によりDOM17に変換される。 XML file 21 is converted by the XML parser 19 to DOM17. この処理についても、DOM17を変換してXMLファイル21を作成する処理と同様に従来から行われている処理であり、ここでは詳しく述べない。 This process is also a process which is conventional in the same manner as the processing of creating the XML file 21 converts the DOM17, not described in detail herein. 例えば、http://xml.apache.org/xerces-j/index.htmlを参照のこと。 For example, http: see //xml.apache.org/xerces-j/index.html.

【0050】DOM17が生成されると、構文木生成プログラム15が構文木データ11を生成する。 [0050] When the DOM17 is generated, the syntax tree generating program 15 generates a syntax tree data 11. この構文木生成プログラム15については、図7及び図8に示す。 This syntax tree generator 15, shown in FIGS. 図7では、最初にDOM17のルート・オブジェクトを取得する(ステップS21)。 In Figure 7, first obtains the root object of DOM17 (step S21). そして、構文木生成共通処理(図8)を実行する。 Then, run the syntax tree generation common process (FIG. 8). このステップS23の後にDOM17の全てのリンクをたどり終わったかを判断する(ステップS25)。 After this step S23 determines whether it has finished follow all links DOM17 (step S25). もし、たどり終わっていなければステップS23に戻る。 If it is not finished traced back to the step S23. 一方、たどり終わっていれば、処理を終了する。 On the other hand, if the finished tracing, the process is terminated.

【0051】次に構文木生成共通処理(ステップS2 [0051] The following syntax tree generation common processing (step S2
3)を図8を用いて説明する。 3) it will be described with reference to FIG. 最初に、取得したオブジェクトの属性を読み込み(ステップS27)、取得したオブジェクトのシンボル名や型などの属性情報を抽出し、記憶装置に格納する(ステップS29)。 First, read the attributes of the acquired object (step S27), it extracts the attribute information such as the symbol name and the type of the acquired object, stored in the storage device (step S29). そして、 And,
取得したオブジェクトに対応して構文木要素及びシンボルストア要素を生成し、記憶領域を確保する(ステップS31)。 Corresponding to the obtained object generates a syntax tree elements and symbols store elements, to secure a storage area (step S31). また、取得したオブジェクトのDOM17における階層関係を保持するように、構文木における上位要素の下に生成した構文木要素をマッピングする(ステップS33)。 Moreover, to hold a hierarchical relationship DOM17 the acquired object, maps the syntax tree element produced under the upper element in the syntax tree (step S33). そして、構文木要素からシンボルストア要素をへのリンクをセット(記憶装置に格納)する(ステップS35)。 Then, from the syntax tree element the link to a symbol store element set (stored in the storage device) (step S35). シンボルストア要素に、抽出された属性情報をセット(記憶装置に格納)する(ステップS3 Symbol store element and extracted set attribute information (stored in the storage device) (step S3
7)。 7).

【0052】ここまでの処理が終了すると、取得したオブジェクトの下位リンクに未処理のオブジェクトが存在しているか判断する(ステップS39)。 [0052] When the processing up to this point has been completed, unprocessed object is to determine whether you are present in the lower link of the acquired object (step S39). もし、未処理のオブジェクトが存在していなければ、図7の処理に戻る。 If does not exist an unprocessed object, the process returns to FIG. 一方、未処理のオブジェクトが存在していれば、下位リンクの未処理オブジェクトを取得し(ステップS4 On the other hand, if present unprocessed object obtains the unprocessed objects lower link (step S4
1)。 1). 図8の構文木生成共通処理を実施する(ステップS43)。 Implementing the syntax tree generation common processing of FIG. 8 (step S43). すなわち、再帰処理を行う。 That is, the recursive processing. このステップS This step S
43の後にステップS39に戻る。 It returns to the step S39 after the 43. このようにすれば構文木データ11を復元することができる。 Thus it is possible to restore the syntax tree data 11.

【0053】構文木データ11が復元できれば、通常のコンパイラ27に含まれるコーダ7が構文木データ11 [0053] If possible syntax tree data 11 is restored, the coder 7 syntax tree data 11 to be included in the normal compiler 27
を機械語プログラム9に変換する。 It is converted to machine language program 9. この処理については、従来と変わりないので説明を省略する。 This process will be omitted since no conventional and change. このようにすれば、XMLファイル21の形式で保管したソース・ In this way, the source was stored in the form of an XML file 21
プログラムを、元のソース・プログラム3に戻すことなく機械語プログラム9に変換することができるようになる。 Program, it is possible to convert the machine language program 9 without returning to the original source program 3.

【0054】次に、XMLファイル21からソース・プログラム3を復元する処理について説明する。 Next, a description will be given of a process to restore the source program 3 from the XML file 21. この処理には、XSLT23とスタイル・シート25を用いる。 This process, using the XSLT23 and style-sheet 25.
XSLT23は、XSLTプロセッサであり、例えばA XSLT23 is XSLT processor, for example A
patcheのXMLのProjectで用意されているXalan−Java(JavaはSun Microsystems社の商標)という製品により実現することができる。 Xalan-Java, which is available in patche of XML of the Project (Java is Sun Microsystems trademark of) can be realized by a product called. より具体的には、W3Cコンソーシアムで推奨されているXS XS More specifically, which has been recommended by the W3C consortium
L変換を実行するものであり、スタイル・シート25を解釈して、XMLファイル21を別の形式のデータに変換するものである。 It is intended to perform the L conversion interprets a style sheet 25, and converts the XML file 21 to another form of data. なお、詳しくはhttp://xml.apache. It should be noted that, for more information http: //xml.apache.
org/xalan/index.htmlを参照のこと。 org / xalan / index.html to see.

【0055】本実施の形態におけるスタイル・シート2 [0055] style sheet 2 in the present embodiment
5は、XMLファイル21を各種プログラミング言語にて記述されたソース・プログラム3に変換するための変換規則を記述したものである。 5 is a description of the conversion rule for converting the source program 3 described the XML file 21 in various programming languages. すなわち、プログラミング言語の種類(例えば、COBOL、Pro-C、VisualC In other words, the type of programming language (for example, COBOL, Pro-C, VisualC
等)毎に用意する。 Etc.) prepared for each. ここでは、バージョンの異なる同一のプログラミング言語(例えば、Pro-C V2.2.2とPro-C Here, different versions of the same programming language (e.g., Pro-C v2.2.2 and Pro-C
V8.1.5)についても異なる種類のプログラミング言語として、スタイル・シート25を用意する。 As different types of programming languages ​​for V8.1.5), to prepare a style sheet 25. そうすることにより、技術者のスキルや、OS、コンパイラに合わせたソース・プログラム3を復元することができる。 By doing so, it is possible to restore skills and technical personnel, OS, the source program 3, which according to the compiler.

【0056】スタイル・シート25の一例(一部)を以下に示しておく。 [0056] An example of a style sheet 25 (a part) keep shown below.

【表3】 01<?xml version="1.0"?> 02<xsl:stylesheet 03 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" 04 xmlns:lxslt="http://xml.apache.org/xslt" 05 xmlns:trans-c="http://www.tokiomarine.co.jp/2000/XSL/Transform/Sour ce/C" 06 extension-element-prefixes="trans counter"> 07 08 <lxslt:component prefix="counter" elements="init incr decr" function s="read intRead"> 09 <lxslt:script lang="javascript"> 10 var counters = new Array(); 11 12 function init (xslproc, elem) {/* カウンタの初期化*/ 13 name = elem.getAttribute("name"); 14 value = parseInt(elem.getAttrubute("value")); 15 counters[name]=value; 16 return null; 17 } 18 19 function incr (xslproc, elem) {/* カウンタの増加*/ 20 name = elem.getAttribute("name"); 21 counters[name]++; 22 return null; 23 } 24 function decr (xslproc, elem) {/* カウンタの減少*/ 25 name = elem.getAttribute("name"); 26 counters[name]--; 27 return null; 28 } 29 function intRead (name) {/* カウンタの読み出し(整数値 [Table 3] 01 <? Xml version = "1.0"?> 02 <xsl: stylesheet 03 xmlns: xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" 04 xmlns: lxslt = "http://xml.apache.org/xslt" 05 xmlns: trans-c = "http://www.tokiomarine.co.jp/2000/XSL/Transform/Sour ce / C" 06 extension-element -prefixes = "trans counter"> 07 08 <lxslt: component prefix = "counter" elements = "init incr decr" function s = "read intRead"> 09 <lxslt: script lang = "javascript"> 10 var counters = new Array (); 11 12 function init (xslproc, elem) {/ * counter initialization the * / 13 name = elem.getAttribute ( "name"); 14 value = parseInt (elem.getAttrubute ( "value")); 15 counters [name] = value; 16 return null; 17} 18 19 function incr (xslproc, elem) {/ * counter increased * / 20 name = elem.getAttribute ( "name"); 21 counters [name] ++; 22 return null; 23} 24 function decr (xslproc, elem) {/ * counter decrement of * / 25 name = elem.getAttribute ( "name"); 26 counters [name] -; 27 return null; 28} 29 function intRead (name) {/ * counter reading (integer 式)*/ 30 return counters[name]; 31 32 function read (name) {/* カウンタの読み出し(文字形式)*/ 33 return "" + counters[name]; 34 } 35 </lxslt:script> 36</lxslt:component> 37 38<lxslt:component prefix="trans" elements="get-logic" functions="put-lo gic"> 39 <lxslt:script lang="javascript"> 40 var logics = new Array(); 41 42 function get-logic (xslproc, elem) {/* 条件式を一時保存する*/ 43 value = elem.getAttribute("attr"); 44 level = parseInt(elem.getAttribute("level"));/* 条件式の現在の階 層を計算する*/ 45 logics[level] = value; /* 現在の階層に応じて一時保存場所を変更す る*/ 46 return null: 47 } 48 49 function put-logic(level) { /* 現在の階層に応じた条件式を返す*/ 50 return "" + logics[level]; 51 } 52 </lxslt:script> 53 </lxslt:component> 54 55 <counter:init name="level" value="0"/> /* 現在の階層を0とする*/ 56 <xsl:template match="if"> /* IFブロックに対する処理*/ 57 <counter:incr name="leve Formula) * / 30 return counters [name]; 31 32 function read (name) {/ * counter reading (character format) * / 33 return "" + counters [name]; 34} 35 </ lxslt: script> 36 </ lxslt: component> 37 38 <lxslt: component prefix = "trans" elements = "get-logic" functions = "put-lo gic"> 39 <lxslt: script lang = "javascript"> 40 var logics = new Array (); 41 42 function get-logic (xslproc, elem) {/ * condition for temporary storage * / 43 value = elem.getAttribute ( "attr"); 44 level = parseInt (elem.getAttribute ( "level") ); / * conditional expression to calculate the current hierarchy * / 45 logics [level] = value; / * to change the temporary location in response to the current hierarchy * / 46 return null: 47} 48 49 function put-logic (level) {/ * return the current hierarchy corresponding conditional expression * / 50 return "" + logics [level]; 51} 52 </ lxslt: script> 53 </ lxslt: component> 54 55 < counter: init name = "level" value = "0" /> / * the current hierarchy and 0 * / 56 <xsl: template match = "if"> / * processing for the IF block * / 57 <counter: incr name = "leve l"> /* 現在の処理階層を+1とする*/ 58 <xsl:text>if</xsl:text> 59 <xsl:for-each select="if/condition">/* IF・条件ブロックに対す る処理 */ 60 <trans:get-logic level="counter:read('level')"/> 61 /* 現在の階層に応じて条件式を一時保存する*/ 62 <xsl:text>( </xsl:text> 63 <xsl:value-of select="if/condition/comp1"/> 64 /* 条件式左辺の処理 */ 65 <xsl:value-of select="put-logic(counter:intRead('level'))" /> 66 /* 現在の階層に応じた条件式を書き出す */ 67 <xsl:value-of select-"if/condition/comp2"/> 68 /* 条件式右辺の処理 */ 69 <xsl:text>) </xsl:text> 70 <xsl:value-of select="if/do"/> /* IF・条件一致ブロックに対する 処理*/ 71 <xsl:value-of select="if/else"/> /*IF・条件不一致ブロックに対 する処理*/ 72 </xsl:for-each> 73 <counter:decr name="level"> /* 現在の処理階層を-1とする*/ 74 </xsl:template> 75 </xsl:stylesheet> なお、行番号は、以下の説明のために付加し l "> / * the current processing hierarchy and +1 * / 58 <xsl: text> if </ xsl: text> 59 <xsl: for-each select =" if / condition "> / * to IF · conditional block against that processing * / 60 <trans: get-logic level = "counter: read ( 'level')" /> 61 / * one o'clock to save the conditional expressions according to the current hierarchy * / 62 <xsl: text> ( </ xsl: text> 63 <xsl: value-of select = "if / condition / comp1" /> 64 / * conditional expression the left-hand side of the processing * / 65 <xsl: value-of select = "put-logic (counter: intRead ( 'level')) "/> 66 / * write the current hierarchy in accordance with the conditional expression * / 67 <xsl: value-of select-" if / condition / comp2 "/> 68 / * conditional expression of the right-hand side processing * / 69 <xsl: text>) </ xsl: text> 70 <xsl: value-of select = "if / do" /> / * process for the IF · condition-matching block * / 71 <xsl: value-of select = "if / else" /> / * process against the IF · conditions disagreement block * / 72 </ xsl: for-each> 73 <counter: decr name = "level"> / * the current processing hierarchy - 1 to * / 74 </ xsl: template> 75 </ xsl: stylesheet> Note that the line number is added for the following description いる。 There.

【0057】表3の第01行乃至第06行については、 [0057] For the first 01 lines through the first 06 rows of Table 3,
これがスタイルシートである事を、名前空間などと共に宣言している部分である。 This is the part that is the style sheet, it has been declared with, such as the name space. 第08行乃至第36行については、第55行乃至第74行における処理に用いられる機能を規定する部分である。 The 08 line to 36th line, a portion defining a function to be used in the process in line 55 to the line 74. 第09行に、第08行乃至第36行で規定される処理についてはJavascriptで記述されることが示されている。 To the line 09, the processing defined at 08 row to 36 row are shown to be described by Javascript. そして、第12行乃至第1 Then, line 12 to first
7行がカウンタの初期化処理、第19行乃至第23行がカウンタの増加処理、第24行乃至第28行がカウンタの減少処理、第29行及び第30行がカウンタの読み出し処理(整数値形式)、第32行乃至第34行がカウンタの読み出し処理(文字形式)を示している。 7 rows initialization of the counter, line 19 through line 23 is increased processing of the counter, line 24 through line 28 is decreased processing of the counter, line 29 and line 30 is the process of reading the counter (integer form), line 32 through line 34 indicates the reading process counter (character format).

【0058】第38行乃至第53行についても、第55 [0058] regard to line 38 through line 53, 55
行乃至第74行における処理に用いられる機能を規定する部分である。 A portion defining a function used for processing in the row to the 74th row. この部分についてもJavascriptで記述されることが第39行に示されている。 This part can also be described by Javascript is shown in line 39. 第42行乃至第4 Line 42 to fourth
7行は、条件式(等号や不等号等)の一時保管処理であって、条件式を取得して、条件式の現在の階層を計算し、その階層に応じて条件式の一時保管場所を変更する処理である。 Line 7 is a temporary storage processing of condition (equal or not equal, etc.), to obtain the conditional expression, to calculate the current hierarchy of conditional expression, a temporary storage location of the condition in accordance with the hierarchy it is a process of change. 第49行乃至第51行は、現在の階層に応じた条件式を返す処理を規定している。 49th line to line 51 defines a process of returning the conditional expression corresponding to the current hierarchy.

【0059】第55行乃至第74行は、if文(IFブロック)についての処理である。 [0059] line 55 through the line 74 is a process for the if statement (IF block). 第55行は、現在の階層を0に初期化することを示しており、第56行はif Line 55 shows the initializing to zero a current hierarchy, line 56 is if
文についての処理であることを示している。 It indicates that it is a process for the sentence. if文を検出した場合には、第57行で現在の処理階層を+1する。 When detecting the if statement to +1 the current process hierarchy 57 line. また、第58行で「if」というテキストを生成する。 In addition, to generate the text "if" in the first line 58.

【0060】第59行乃至第72行では、if文の条件(condition)を検出する毎に行われる処理を規定している。 [0060] In the line 59 through the line 72, which defines the processing performed each time of detecting a condition (condition) of the if statement. 第60行では、現在の階層に応じて条件式を一時保存し、第62行で「(」というテキストを生成する。 In line 60, a temporary save the conditional expression in accordance with the current hierarchy, to produce the text "(" in the line 62.
そして、第63行で条件式の左辺(comp1)の情報をX Then, X information of the condition of the left side (comp1) at the line 63
MLファイル21から抜き出してテキストを生成する。 Withdrawn from the ML file 21 to generate the text.
第65行では、現在の階層に応じた条件式を書き出す。 In the line 65, write the conditional expression corresponding to the current hierarchy.
そして、第67行で条件式右辺(comp2)の情報をXM Then, XM information of the condition right side (comp2) at 67 row
Lファイル21から抜き出してテキストを生成する。 It is extracted from the L file 21 to generate the text. 第69行で「)」というテキストを生成し、条件の処理を終了する。 To generate a text ")" in the first line 69, and ends the process of conditions.

【0061】そして、第70行でif文の条件が満たされた場合の処理(do)を抜き出してテキストを生成する。 [0061] Then, to produce a text by extracting processing (do) when the condition of the if statement is satisfied in the first 70 lines. 第71行ではif文の条件が満たされなかった場合の処理(else)を抜き出してテキストを生成する。 In the line 71 to generate a text by extracting process (the else) when not satisfied the condition of the if statement. これでif文の条件についての処理が終了すると、第73行で現在の処理階層を−1する。 When this processing for the condition in the if statement is completed, -1 the current process hierarchy 73 line.

【0062】このように階層を厳密に把握するような処理を行うのは、例えば第63行の解析処理中に別の条件式が呼び出される可能性があるためである。 [0062] perform a process as to grasp such a hierarchical strictly is because there is a possibility that another condition is called during e.g. 63 rows of analysis. よって、階層のカウント処理を<counter:*>で統一的に管理している。 Thus, the counting process of the hierarchy <counter: *> are unified managed by.

【0063】表3のような規定をwhile文等全ての予約語等について行えば、一つの言語についてのスタイル・シート25が用意されたことになる。 [0063] be carried out for the table defines all of the like while statements such as 3 reserved word, etc., so that the style sheet 25 for one of the language has been prepared.

【0064】このようにすれば、XMLファイル21として保管したソース・プログラム3を、これから使用するプログラミング言語の種類に応じた形で復元することができるようになる。 [0064] In this way, the source program 3 which was stored as an XML file 21, will be able to be restored in the form in accordance with the type of programming language that you will use. すなわち、当該ソース・プログラム3を改変・修正する技術者のスキルやプログラム開発環境に合わせて復元できるようになる。 That is, so that it can be restored to match the skills and program development environment for engineers to alter and modify the source program 3. よって、開発効率が向上する。 Therefore, the development efficiency can be improved.

【0065】なお、ソース・プログラム3を改変・修正せずにコンパイラ27によりコンパイルして機械語プログラム9を生成させるようにしてもよい。 [0065] It may be caused to generate a machine language program 9 compiles the compiler 27 without modification - modifying the source program 3. XSLT23 XSLT23
とスタイル・シート25にて、OSやコンパイラのバージョンの違いなどは吸収されるので、エラー等を起こさずにコンパイルすることができるようになる。 And in the style sheet 25, since the differences in versions of the OS and compiler is absorbed, it becomes possible to compile without error and the like.

【0066】以上のようにすれば、ソース・プログラム3の価値を減ずることなくソース・プログラムを保管・ [0066] If the arrangement described above is adopted, save the source program without reducing the value of the source program 3 -
復元・管理することができるようになる。 It becomes possible to restore and manage.

【0067】以上述べた本実施の形態は一例であって、 [0067] Although the embodiment described is an example,
様々な変形が可能である。 And various modifications are possible. 例えば、図1では、パーサ5 For example, in FIG. 1, the parser 5
及びDOM生成プログラム13によりソース・プログラム3を構文木データ11を介してDOM17に変換していたが、ソース・プログラム3を直接DOM17に変換するような別のプログラムを用意することによりDOM And we had to convert the source program 3 via a syntax tree data 11 to DOM17 by DOM generation program 13, DOM by providing a separate program that converts the DOM17 source program 3 directly
17を生成するような構成であってもよい。 17 may be such as to produce configure. この別のプログラムは、構文木の要素及びシンボルストア用の属性情報を生成する際に、構文木とシンボルストアの両方を分けずに、シンボルストア用の属性情報を内部に格納するようなオブジェクトを生成するような処理に変更すればよい。 This alternative program, when generating the attribute information for the elements and symbols store syntax tree, without dividing both syntax tree and a symbol store objects that stores attribute information for symbol store therein it may be changed to the processing as produced.

【0068】また、XMLファイル21をソース・プログラム3に復元する際には、XSLT23及びスタイル・シート25を用いる例を示したが、例えば、構文木データ11からソース・プログラム3を復元するようなプログラムを別途用意するような構成であってもよい。 [0068] Also, when restoring the XML file 21 in the source program 3, as an example is shown of using XSLT23 and style sheet 25, for example, to restore the source program 3 from the syntax tree data 11 program may also be a separate, such as to provide configuration. また、XSLT23と各プログラミング言語の種類に対応するスタイル・シート25を別途用意するような構成としたが、XSLT23とスタイル・シート25が一体となったような新たなプログラムを用意してもよい。 In addition, it is configured so as to provide a style sheet 25 that corresponds to the type of each programming language and XSLT23 separately, XSLT23 and style-sheet 25 may be prepared a new program, such as together. この場合には、新たなプログラムをプログラミング言語の種類に対応して用意する必要がある。 In this case, it is necessary to prepare support a new program on the type of programming language.

【0069】上で述べたコンピュータは、コンピュータとプログラムの組合せで実装され、当該プログラムは、 [0069] Computer discussed above is implemented by a combination of computer and program, the program,
例えばフロッピー・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。 For example, a floppy disk, CD-ROM, a magneto-optical disk, semiconductor memory, are stored in a storage medium or storage device such as a hard disk. なお、中間的な処理結果はメモリに一時保管される。 Incidentally, intermediate processing results are temporarily stored in memory.

【0070】 [0070]

【発明の効果】以上のように、作成したプログラムの後の利用を簡単且つ効率的に行えるようにするためのプログラム保管技術を提供することができた。 As is evident from the foregoing description, it is possible to provide a program storage techniques to allow easy and efficient use of after the program that created.

【0071】また、プログラムの改変・修正をより簡単に行えるようにするためのソース・プログラムの復元技術を提供することができた。 [0071] In addition, it is possible to provide a restoration technology of the source program so that the information can be modified and modification of the program more easily.

【図面の簡単な説明】 BRIEF DESCRIPTION OF THE DRAWINGS

【図1】本発明の一実施の形態における機能ブロック図である。 1 is a functional block diagram of an embodiment of the present invention.

【図2】構文木とシンボルストアの一例を示す模式図である。 2 is a schematic diagram showing an example of a syntax tree and a symbol store.

【図3】構文木のデータ構造を示す模式図である。 3 is a schematic diagram showing the data structure of the syntax tree.

【図4】DOM生成プログラムの処理フロー(その1) [4] DOM generation program of a process flow (Part 1)
を示す図である。 Is a diagram illustrating a.

【図5】DOM生成プログラムの処理フロー(その2) [5] DOM generation program process flow (Part 2)
を示す図である。 Is a diagram illustrating a.

【図6】DOMの一例を示す図である。 6 is a diagram showing an example of a DOM.

【図7】構文木生成プログラムの処理フロー(その1) [7] syntax tree generation program of the process flow (Part 1)
を示す図である。 Is a diagram illustrating a.

【図8】構文木生成プログラムの処理フロー(その2) [8] syntax tree generation program of the process flow (Part 2)
を示す図である。 Is a diagram illustrating a.

【符号の説明】 DESCRIPTION OF SYMBOLS

1 コンピュータ 3 ソース・プロラム 5 パーサ 7 コーダ 9 機械語プログラム 11 構文木データ 13 DOM生成プログラム 15 構文木生成プログラム 17 DOM 19 XMLパーサ 21 XML 1 computer 3 source Puroramu 5 parser 7 coder 9 machine language program 11 syntax tree data 13 DOM generation program 15 syntax tree generation program 17 DOM 19 XML parser 21 XML
ファイル 23 XSLT 25 スタイル・シート File 23 XSLT 25 style sheets

Claims (19)

    【特許請求の範囲】 [The claims]
  1. 【請求項1】ソース・プログラムを当該ソース・プログラムの論理構造を表すデータ構造に変換し、記憶装置に格納する第1変換ステップと、 前記データ構造をテキスト・データに変換し、記憶装置に格納する第2変換ステップと、 を含むソース・プログラム保管方法。 The method according to claim 1 source program is converted into a data structure representing a logical structure of the source program, a first conversion step of storing in a storage device, converting the data structure in the text data, stored in the storage device source program storage method comprising a second conversion step, the to.
  2. 【請求項2】前記第1変換ステップが、 ソース・プログラムを、当該ソース・プログラムの論理構造を表すドキュメント・オブジェクト・モデルに変換し、記憶装置に格納するステップであることを特徴とする請求項1記載のソース・プログラム管理方法。 Wherein said first conversion step, the claims of the source program is converted into a document object model that represents the logical structure of the source program, characterized in that it is a step of storing in a storage device source program management method of 1, wherein the.
  3. 【請求項3】前記第1変換ステップが、 前記ソース・プログラムを構文木データに変換し、記憶装置に格納するステップと、 前記構文木データを、当該構文木データに対応するドキュメント・オブジェクト・モデルに変換し、記憶装置に格納するステップと、 を含む請求項1記載のソース・プログラム保管方法。 Wherein said first conversion step converts the source program into the syntax tree data, and storing in the storage device, the syntax tree data, document object model corresponding to the syntax tree data source program storage method of claim 1, wherein the converting includes a step of storing in the storage device.
  4. 【請求項4】前記第2変換ステップが、 前記データ構造を、構造を表すためのタグ付き言語によるテキスト・データに変換し、記憶装置に格納するステップであることを特徴とする請求項1乃至3のいずれか1つ記載のソース・プログラム保管方法。 Wherein said second conversion step, the data structure, converted into text data by the tagged language for representing the structure 1 to claim characterized in that it is a step of storing in a storage device any one source program storage method according to 3.
  5. 【請求項5】ソース・プログラムの論理構造を記述したテキスト・データから当該ソース・プログラムを復元する方法であって、 適用する変換規則データを記憶装置から読み出す変換規則データ読出ステップと、 読み出された前記変換規則データに基づき前記テキスト・データを変換し、変換により生成されたソース・プログラムを記憶装置に格納するステップと、 を含むソース・プログラム復元方法。 5. A method for the logical structure of the source program from a text data describing restore the source program, and conversion rule data reading step of reading conversion rule data to be applied from the memory device is read out wherein said converting the text data based on the conversion rule data, the source program restoration method comprising the steps, a to store the source program created in the storage device by the conversion was.
  6. 【請求項6】前記変換規則データ読出ステップが、 選択されたプログラミング言語の種類に対応する変換規則データを記憶装置から読み出すステップ、 であることを特徴とする請求項5記載のソース・プログラム復元方法。 Wherein said conversion rule data reading step, a source program restoration method according to claim 5, characterized in that the step of reading the conversion rule data corresponding to the selected type of programming language from the memory device .
  7. 【請求項7】前記テキスト・データが、構造を表すためのタグ付き言語によりソース・プログラムの論理構造を表したデータであり、 前記変換規則データが、スタイル記述言語により記述されたスタイル・シートであることを特徴とする請求項5 Wherein said text data is a data representing the logical structure of the source program by a tagged language for representing the structure, the conversion rule data, the style sheet described in a style description language claim 5, characterized in that
    又は6記載のソース・プログラム復元方法。 Or 6 source program restoration method as claimed.
  8. 【請求項8】構造を表すためのタグ付き言語によりソース・プログラムの論理構造を表したテキスト・データを、ドキュメント・オブジェクト・モデルに変換し、記憶装置に格納するステップと、 前記ドキュメント・オブジェクト・モデルを構文木データに変換し、記憶装置に格納するステップと、 前記構文木データを機械語コードに変換し、記憶装置に格納するステップと、を含むコンパイル方法。 The text data representing the logical structure of 8. A source program by a tagged language for representing the structure, into a document object model, and storing in the storage device, the document object convert the model in the syntax tree data, and storing in the storage device, converts the syntax tree data into machine language code, compiling method comprising the steps of: storing in a storage device.
  9. 【請求項9】ソース・プログラムを当該ソース・プログラムの論理構造を表すデータ構造に変換し、記憶装置に格納する第1変換手段と、 前記データ構造をテキスト・データに変換し、記憶装置に格納する第2変換手段と、 を有するソース・プログラム保管システム。 9. A source program is converted into a data structure representing a logical structure of the source program, first converting means for storing in a storage device, converting the data structure in the text data, stored in the storage device source program storage system having a second converting means, the for.
  10. 【請求項10】前記第1変換手段が、 ソース・プログラムを、当該ソース・プログラムの論理構造を表すドキュメント・オブジェクト・モデルに変換することを特徴とする請求項9記載のソース・プログラム保管システム。 Wherein said first converting means, a source program storage system of claim 9, wherein the conversion of the source program, the document object model that represents the logical structure of the source program.
  11. 【請求項11】前記第1変換手段が、 前記ソース・プログラムを構文木データに変換し、記憶装置に格納する手段と、 前記構文木データを、当該構文木データに対応するドキュメント・オブジェクト・モデルに変換する手段と、 を含む請求項9記載のソース・プログラム保管システム。 Wherein said first conversion means converts the source program into the syntax tree data, means for storing in the storage device, the syntax tree data, document object model corresponding to the syntax tree data source program storage system of claim 9 including, means for converting the.
  12. 【請求項12】前記第2変換手段が、 前記データ構造を、構造を表すためのタグ付き言語によるテキスト・データに変換し、記憶装置に格納することを特徴とする請求項9乃至11のいずれか1つ記載のソース・プログラム保管システム。 Wherein said second converting means, the data structure, converted into text data by the tagged language for representing the structure, one of the claims 9 to 11, characterized in that stored in the storage device or one source program storage system described.
  13. 【請求項13】ソース・プログラムの論理構造を記述したテキスト・データから当該ソース・プログラムを復元するソース・プログラム復元システムであって、 適用する変換規則データを記憶装置から読み出す変換規則データ読出手段と、 読み出された前記変換規則データに基づき前記テキスト・データを変換し、変換により生成されたソース・プログラムを記憶装置に格納する手段と、 を有するソース・プログラム復元システム。 13. A source program recovery system from the text data describing the logical structure of the source program to restore the source program, and conversion rule data reading means for reading the conversion rule data to be applied from the memory device , read said converted text data based on the conversion rule data, the source program recovery system having means for storing a source program generated in the storage device by the conversion.
  14. 【請求項14】前記変換規則データ読出手段が、 選択されたプログラミング言語の種類に対応する変換規則データを記憶装置から読み出す、 ことを特徴とする請求項13記載のソース・プログラム復元システム。 14. The conversion rule data reading means, a source program recovery system of claim 13, wherein reading the conversion rule data corresponding to the selected type of programming language from the storage device, it is characterized.
  15. 【請求項15】前記テキスト・データが、構造を表すためのタグ付き言語によりソース・プログラムの論理構造を表したデータであり、 前記変換規則データが、スタイル記述言語により記述されたスタイル・シートであることを特徴とする請求項1 15. The method of claim 14, wherein the text data is a data representing the logical structure of the source program by a tagged language for representing the structure, the conversion rule data, the style sheet described in a style description language claim 1, characterized in that
    3又は14記載のソース・プログラム復元システム。 3 or 14 source program recovery system according.
  16. 【請求項16】構造を表すためのタグ付き言語によりソース・プログラムの論理構造を表したテキスト・データを、ドキュメント・オブジェクト・モデルに変換し、記憶装置に格納する手段と、 前記ドキュメント・オブジェクト・モデルを構文木データに変換し、記憶装置に格納する手段と、 前記構文木データを機械語コードに変換し、記憶装置に格納する手段と、 を含むコンパイル装置。 The text data representing the logical structure of the source program by a tagged language to represent 16. structure, into a document object model, means for storing in the storage device, the document object convert the model in the syntax tree data, compiling apparatus comprising means for storing in the storage device, and means for storing the syntax tree data is converted into machine code, in the storage device.
  17. 【請求項17】ソース・プログラムを保管するためのプログラムであって、 前記プログラムは、コンピュータに、 ソース・プログラムを当該ソース・プログラムの論理構造を表すデータ構造に変換し、記憶装置に格納する第1 17. A program for storing source programs, the said program causes a computer to convert the source program into a data structure representing a logical structure of the source program, and stores in the storage device 1
    変換ステップと、 前記データ構造をテキスト・データに変換し、記憶装置に格納する第2変換ステップと、 を実行させるためのプログラム。 A conversion step, the converted data structure to the text data, the program to execute the second conversion step of storing in the storage device.
  18. 【請求項18】ソース・プログラムの論理構造を記述したテキスト・データから当該ソース・プログラムを復元するプログラムであって、 前記プログラムは、コンピュータに、 適用する変換規則データを記憶装置から読み出す変換規則データ読出ステップと、 読み出された前記変換規則データに基づき前記テキスト・データを変換し、変換により生成されたソース・プログラムを記憶装置に格納するステップと、 を実行させるためのプログラム。 18. A program for restoring the source program the source program from a text data describing the logical structure of the program, the computer, the conversion rule data for reading conversion rule data to be applied from the memory device a reading step, converting the text data based on the conversion rule data read, program for executing the steps of: storing a source program generated in the storage device by the conversion.
  19. 【請求項19】コンパイラであって、コンピュータに、 構造を表すためのタグ付き言語によりソース・プログラムの論理構造を表したテキスト・データを、ドキュメント・オブジェクト・モデルに変換し、記憶装置に格納するステップと、 前記ドキュメント・オブジェクト・モデルを構文木データに変換し、記憶装置に格納するステップと、 前記構文木データを機械語コードに変換し、記憶装置に格納するステップと、を実行させるためのコンパイラ。 19. A compiler, the computer, the text data representing the logical structure of the source program by a tagged language for representing the structure, into a document object model, and stores it in the storage device a step to convert the document object model syntax tree data, and storing in the storage device, wherein the syntax tree data is converted into machine language code, for executing and storing in the storage device compiler.
JP2000384561A 2000-12-19 2000-12-19 Source program storage method, its system, source program restoring method and system, and compiling method and device Withdrawn JP2002182915A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000384561A JP2002182915A (en) 2000-12-19 2000-12-19 Source program storage method, its system, source program restoring method and system, and compiling method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000384561A JP2002182915A (en) 2000-12-19 2000-12-19 Source program storage method, its system, source program restoring method and system, and compiling method and device

Publications (1)

Publication Number Publication Date
JP2002182915A true JP2002182915A (en) 2002-06-28

Family

ID=18851982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000384561A Withdrawn JP2002182915A (en) 2000-12-19 2000-12-19 Source program storage method, its system, source program restoring method and system, and compiling method and device

Country Status (1)

Country Link
JP (1) JP2002182915A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362343A (en) * 2003-06-05 2004-12-24 Internatl Business Mach Corp <Ibm> Source code conversion apparatus, source code conversion method, and program
WO2004088549A3 (en) * 2003-04-01 2005-02-24 Roy Oberhauser Method and array for changing software or source code
JP2007524875A (en) * 2003-01-10 2007-08-30 ネクサウェブ テクノロジーズ インコーポレイテッド System and method for network-based processing
JP2008117340A (en) * 2006-11-08 2008-05-22 Nomura Research Institute Ltd Source code management system for program, and method of updating source code of program
JP2009098750A (en) * 2007-10-12 2009-05-07 Nomura Research Institute Ltd Coding support device
JP2009098751A (en) * 2007-10-12 2009-05-07 Nomura Research Institute Ltd Coding support device
US7539981B2 (en) * 2004-01-30 2009-05-26 Microsoft Corporation XML-based preprocessor

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200201132016, Aaron Skonnard, "Future The Web THE XML FILES", msdn magazine 2000 JUNE No.3, 20000618, 第3号, p.139−145, 株式会社アスキー *
CSNG199900471001, 松島 弘幸, "XML技術を利用したソフトウェア文書理解支援システムCrystalScopeの開発", 情報処理学会研究報告, 19981127, 第98巻,第107号, p.1−8, 社団法人情報処理学会 *
JPN6010068226, 松島 弘幸, "XML技術を利用したソフトウェア文書理解支援システムCrystalScopeの開発", 情報処理学会研究報告, 19981127, 第98巻,第107号, p.1−8, 社団法人情報処理学会 *
JPN6010068227, Aaron Skonnard, "Future The Web THE XML FILES", msdn magazine 2000 JUNE No.3, 20000618, 第3号, p.139−145, 株式会社アスキー *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007524875A (en) * 2003-01-10 2007-08-30 ネクサウェブ テクノロジーズ インコーポレイテッド System and method for network-based processing
WO2004088549A3 (en) * 2003-04-01 2005-02-24 Roy Oberhauser Method and array for changing software or source code
JP2004362343A (en) * 2003-06-05 2004-12-24 Internatl Business Mach Corp <Ibm> Source code conversion apparatus, source code conversion method, and program
JP4686117B2 (en) * 2003-06-05 2011-05-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation Source code conversion apparatus, source code conversion method, and program
US7539981B2 (en) * 2004-01-30 2009-05-26 Microsoft Corporation XML-based preprocessor
JP2008117340A (en) * 2006-11-08 2008-05-22 Nomura Research Institute Ltd Source code management system for program, and method of updating source code of program
JP2009098750A (en) * 2007-10-12 2009-05-07 Nomura Research Institute Ltd Coding support device
JP2009098751A (en) * 2007-10-12 2009-05-07 Nomura Research Institute Ltd Coding support device

Similar Documents

Publication Publication Date Title
Maletic et al. Source code files as structured documents
Nentwich et al. Flexible consistency checking
Ide et al. International standard for a linguistic annotation framework
Visser Program transformation with Stratego/XT
CA2381251C (en) System and method for language extraction and encoding
Benzaken et al. CDuce: an XML-centric general-purpose language
US7496837B1 (en) Structural editing with schema awareness
US7437374B2 (en) Efficient XML schema validation of XML fragments using annotated automaton encoding
Amagasa et al. A data model for temporal XML documents
Bravenboer et al. Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions
Liu et al. XWRAP: An XML-enabled wrapper construction system for web information sources
US7069501B2 (en) Structured document processing system and structured document processing method
US8166053B2 (en) Method and apparatus for schema-driven XML parsing optimization
US6718516B1 (en) Method for verifying context between multiple related XML tags in document object model (DOM)
JP5204070B2 (en) Method for generating a tool for merging customizations made to a first version of a software product when migrating to a second version of the software product, a computer usable medium and a data processing system
US20050154979A1 (en) Systems and methods for converting legacy and proprietary documents into extended mark-up language format
US5276880A (en) Method for parsing and representing multi-versioned computer programs, for simultaneous and synchronous processing of the plural parses
CN100416567C (en) Sharable two way method and system for switching between object model and XML
JP2006092529A (en) System and method for automatically generating xml schema for verifying xml input document
AU2008302144B2 (en) Managing data flows in graph-based computations
US6732330B1 (en) Scripting language blocks to support multiple scripting languages in a single web page
US6446256B1 (en) Extension of parsable structures
Mamas et al. Towards portable source code representations using XML
US6675370B1 (en) System and method for imbedding hyperlinked language grammar notation in a “literate” programming environment
Wood Minimising Simple XPath Expressions.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20110114