JP2010282248A - Programming language analysis execution program - Google Patents

Programming language analysis execution program Download PDF

Info

Publication number
JP2010282248A
JP2010282248A JP2009132665A JP2009132665A JP2010282248A JP 2010282248 A JP2010282248 A JP 2010282248A JP 2009132665 A JP2009132665 A JP 2009132665A JP 2009132665 A JP2009132665 A JP 2009132665A JP 2010282248 A JP2010282248 A JP 2010282248A
Authority
JP
Japan
Prior art keywords
data
program
statement
variable
language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009132665A
Other languages
Japanese (ja)
Inventor
Kazuo Chie
和男 千枝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009132665A priority Critical patent/JP2010282248A/en
Publication of JP2010282248A publication Critical patent/JP2010282248A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide interpreter language in which structure data can be described with the byte positions of the configuring elements and variables can be described only with set values without being conscious of any data type of the conventional high class language, in the description of structure data and variables inside a program, and to provide a programming method for analyzing/executing the interpreter language. <P>SOLUTION: This interpreter language analysis execution program is operated on a computer, and provided with a function for describing data having a structure obtained by eliminating the data type of data in the conventional language and the minimum function necessary for executing the program. Thus, it is possible to create data on the basis of structure data described in the interpreter language and variables. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、コンピュータ上で動作するプログラムであって、インタプリタ型のプログラム言語において構造体データの記述方式と解析実行方式に係る。   The present invention relates to a program that runs on a computer, and relates to a structure data description method and an analysis execution method in an interpreted program language.

コンピュータで実行するプログラムを開発する上でプログラム内部で使用するデータにおいて構造を持つデータ、特にコンピュータ間のネットワーク通信用プログラムを開発する時には通信データのバイト位置を意識した構造を持つデータを扱う必要が有る。このデータ構造を扱う為のプログラミング言語としてはアセンブラ言語が有効だが、アセンブラ言語はコンピュータ内プロセッサの命令仕様を十分に理解している必要が有り、目的のネットワークの他プロセッサの専門的な知識を必要とする。一方、高級言語ではプロセッサの専門的知識を必要としないがこれらのデータを扱う時は、データを構成する要素単位で言語がサポートするデータ型を組合わせて構造を持つデータを記述作成しなければならず、データの記述に柔軟性が無くまたプログラム自身も複雑なものに成っていた。   When developing a program to be executed on a computer, it is necessary to handle data that has a structure in the data used inside the program, especially data that has a structure that is aware of the byte position of communication data when developing a program for network communication between computers. Yes. The assembler language is effective as a programming language for handling this data structure, but the assembler language needs to fully understand the instruction specifications of the processor in the computer, and requires specialized knowledge of the processor in addition to the target network. And On the other hand, high-level languages do not require specialized knowledge of the processor, but when handling these data, it is necessary to describe and create structured data by combining the data types supported by the language for each element constituting the data. In other words, the data description was not flexible and the program itself was complicated.

特開2007-026267JP2007-026267 特開平7-84795JP 7-84795 A 特開平9-26897JP-A-9-26897

プログラム内部の構造体データ及び変数の記述においてデータ型を無くし、構造体データは構成要素のバイト位置、変数は設定する値のみで記述できるインタプリタ言語とインタプリタ言語を解析実行するプログラムの方式。   A program system that analyzes and executes interpreter language and interpreter language that can be described only by the byte position of the component and the variable is only the value to be set in the structure data and variable description in the program.

コンピュータ上で動作し、従来の言語においてデータが持つデータ型を無くし、構造を持つデータの記述機能とプログラム実行の為に必要な最小限の機能を持ったインタプリタ言語解析実行プログラムであって、インタプリタ言語で記述した構造体データ及び変数を元にデータを作成することが出来る。   An interpreter language analysis execution program that runs on a computer, eliminates the data type of data in a conventional language, and has a description function for structured data and a minimum function necessary for program execution. Data can be created based on structure data and variables described in a language.

構造を持つ通信用データ等の記述作成が容易に成り、プログラムの開発期間の短縮と品質の向上が出来る。また、本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語で記述したプログラムは、プログラムが扱う構造にデータを構成する要素サイズの情報を持たせるように設計する事で、そのデータを扱うプログラムの運用後にデータの構成要素のサイズ変更が生じても、データを扱うプログラム内部のデータ定義を書き換える事無く対応が出来、データ仕様変更への対応が容易になる。   It is easy to create a description of structured communication data, etc., and it is possible to shorten the program development period and improve the quality. A program described in an interpreter language characterized by a structure data creation method in programming according to the present invention is designed so that the structure handled by the program has information on the size of elements constituting the data. Even if the size of the data component changes after the operation of the program to be handled, it can be handled without rewriting the data definition in the program that handles the data, and it becomes easy to cope with the data specification change.

本発明の実施例で示すインタプリタ言語を解析実行するプログラムの構成。The structure of the program which analyzes and performs the interpreter language shown in the Example of this invention. 本発明の実施例で示すインタプリタ言語を解析実行するプログラムメイン処理のフローチャート。The flowchart of the program main process which analyzes and performs the interpreter language shown in the Example of this invention. インタプリタ言語で記述した入力ソースプログラムを中間ファイルに変換作成する処理のフローチャート。The flowchart of the process which converts and produces the input source program described by the interpreter language into an intermediate file. 中間ファイルに変換後の各実行文を解析実行する処理のフローチャート。The flowchart of the process which analyzes and performs each executable statement after converting into an intermediate file. インタプリタ言語のdata文を解析実行し、構造体データを作成する処理のフローチャート。The flowchart of the process which analyzes and executes the data statement of an interpreter language, and produces structure data. インタプリタ言語代入文の解析実行処理フローチャート。The interpreter language assignment statement analysis execution processing flowchart. インタプリタ言語で記述したプログラムソースファイルを最適化した後の中間ファイル出力形式を示す。The intermediate file output format after optimizing the program source file described in interpreted language. データ・変数・ラベルのスタック情報を示す。Indicates stack information for data, variables, and labels. インタプリタ言語実行文を最適化する時の文名称と変換コードの対応及び文の実行内容を示す。The correspondence between the sentence name and conversion code and the execution contents of the sentence when optimizing the interpreter language execution sentence are shown. インタプリタ言語でのデータ記述形式を示す。Indicates the data description format in interpreted language. 実施例で使用する簡易アドレス帖のデータ仕様を示す。The data specification of the simple address 使用 used in the embodiment is shown. 実施例で使用する簡易アドレス帖のプログラム記述例を示す。A program description example of a simple address 使用 used in the embodiment will be shown. 本発明によるインタプリタ言語でのデータ構造記述において設定する初期値構造へ柔軟に対応出来る記述例を示す。An example of description that can flexibly correspond to the initial value structure set in the data structure description in the interpreter language according to the present invention will be shown.

本発明のインタプリタ言語解析実行プログラムにおいてデータ記述の解析実行方法について説明する。   A data description analysis execution method in the interpreter language analysis execution program of the present invention will be described.

図1は本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語を解析実行するプログラム処理方式の構造図である。本インタプリタ言語を解析実行するプログラム100と、入力となる本インタプリタ言語で記述したプログラムソースファイル101と、本インタプリタ言語を解析実行する為に最適化した中間ファイル102と、本インタプリタ言語で記述したプログラム内の変数、データ及びラベル情報を保持・および取得する為のスタック103と、本インタプリタ言語で記述したプログラム内の変数、データ及びラベル名称をメモリ内に記憶スタックする104と、本インタプリタ言語で記述したプログラム内データの初期値及び実行結果の値を保持するデータ領域105と、実行状況を記録するログ出力ファイル106と、入力した本インタプリタ言語で記述したプログラムソースの内容、実行時のメッセージ及び実行結果をテキストで出力するリストファイル107で構成する。   FIG. 1 is a structural diagram of a program processing method for analyzing and executing an interpreter language characterized by a structure data creation method in programming according to the present invention. A program 100 for analyzing and executing the interpreter language, a program source file 101 described in the interpreter language as an input, an intermediate file 102 optimized for analyzing and executing the interpreter language, and a program described in the interpreter language A stack 103 for storing and acquiring variable, data, and label information in the memory, and a variable, data, and label name in the program described in this interpreter language are stored and stacked in the memory 104, and described in this interpreter language Data area 105 that holds the initial value and execution result value of the data in the program that has been executed, the log output file 106 that records the execution status, the contents of the program source written in this interpreter language, the message at the time of execution and the execution The result is a list file 107 that outputs the result as text.

図2は本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語を解析実行するプログラム処理方式するのメイン処理フローである。本発明のインタプリタ言語の解析実行プログラムは事前に入力プログラムソースファイルから最適化した中間ファイルを作成後、中間ファイルから1実行文単位で取出して文に対応した処理を実行し、中間ファイルから取り出す文が無くなるまで繰返し実行する。   FIG. 2 is a main processing flow of a program processing method for analyzing and executing an interpreter language characterized by a structure data creation method in programming according to the present invention. The interpreter language analysis execution program of the present invention creates an intermediate file that has been optimized from an input program source file in advance, and then executes a process corresponding to the statement by extracting it from the intermediate file in units of one executable statement, and extracts the statement from the intermediate file. Repeat until there is no more.

200はインタプリタ言語で記述したプログラムソースファイル101を読込み実行に直接必要の無いスペース文字やコメント文を削除し、実行文名称をコード化する事で最適化した中間ファイル102を作成する。次に201は作成した中間ファイル102より1実行文単位で取出す為のポインタを設定し、202〜205で中間ファイル102のデータをポインタに従って文単位で取出し解析実行する。202は中間ファイル102よりポインタが示す1実行文のデータ700を取出し、203は中間ファイル102の最終データ706のチェックを行う。取出した中間ファイルのデータが最終データ706でない時は、204で中間ファイルより取出した文を解析実行し、205で中間ファイル102の処理が完了したデータの次へポインタを更新し、中間ファイル102の最終データ706を検出するまで202〜205を繰返し実行する。   200 reads the program source file 101 described in the interpreter language, deletes space characters and comment statements that are not directly necessary for execution, and creates an optimized intermediate file 102 by coding the execution statement name. Next, 201 sets a pointer for fetching one executable statement unit from the created intermediate file 102, and 202-205 fetches and analyzes the data of the intermediate file 102 in sentence units according to the pointer. 202 retrieves data 700 of one executable statement indicated by the pointer from the intermediate file 102, and 203 checks the final data 706 of the intermediate file 102. If the data of the extracted intermediate file is not the final data 706, the statement extracted from the intermediate file is analyzed in 204, the pointer is updated to the next of the data in which the processing of the intermediate file 102 is completed in 205, and the intermediate file 102 Steps 202 to 205 are repeatedly executed until the final data 706 is detected.

図3は入力のインタプリタ言語で記述したプログラムソースファイル101を読込み、実行時に必要の無いスペース文字やコメント文を削除した文字列と、ラベル及び実行文名称をコード変換したデータを中間ファイル102として出力する処理フローを示す。以降説明中の中間ファイルへの出力は全て追加書きするものとする。最初に300はインタプリタ言語で記述したプログラムソースファイル101をメモリ内に読込み、301はメモリ内に読込み込んだソースプログラムデータを逐次取出す為のポインタを設定し、302〜308で変換処理を行なう。302はポインタが示すメモリ上の読込みデータの終了を検出し、終了していない時は303でスペース文字及びコメント文を検出スキップし、304は有効文字又は文字列が実行文902の種類に一致するか識別し、一致する時は305で実行文に対応するコード901を文コード703として702〜703の形式で中間ファイルに出力する。また、一致しない時は306で文データ又は変数名称として704〜705の形式で中間ファイルに出力し、307はソースプログラムを読込んだメモリのポインタを更新し、302でデータの終了を検出するまで302〜307を繰返し実行する。302で終了を検出した時は308で中間ファイルに最終データ706を出力して中間ファイルの作成処理を終了する。   Fig. 3 reads the program source file 101 described in the input interpreter language, and outputs the character string from which space characters and comment statements that are not required at the time of execution are deleted, and the data obtained by transcoding the label and executable statement name as an intermediate file 102 Shows the processing flow. All output to the intermediate file described below will be additionally written. First, 300 reads the program source file 101 described in the interpreter language into the memory, 301 sets a pointer for sequentially fetching the source program data read into the memory, and performs conversion processing at 302-308. 302 detects the end of the read data in the memory indicated by the pointer, and if it is not finished, skips the detection of the space character and the comment sentence at 303, and the valid character or character string matches the type of the executable statement 902. If they match, the code 901 corresponding to the executable statement is output to the intermediate file in the form 702 to 703 as the statement code 703 at 305. If they do not match, 306 outputs the statement data or variable name to the intermediate file in the form of 704 to 705. 307 updates the pointer of the memory that has read the source program, and 302 detects the end of the data. Repeat steps 302 to 307. When the end is detected in 302, the final data 706 is output to the intermediate file in 308, and the intermediate file creation process is terminated.

図4は中間ファイル102より取出した1実行文単位のデータ700を逐次処理実行するフローを示す。400は1実行文単位データを先頭から逐次解析処理する為のポインタを設定し、解析実行は401〜408で行なう。401は文コード703で文の終わりを検出し、文の終わりでない時は402が実行文単位のデータ中の文コード703値により文の種類を識別する。文コード703がラベル名称の時は403でラベル情報のデータ・変数情報スタック103への登録とラベル名称をデータ・変数・ラベル名称スタック104への登録後ラベルが付加する文データの中間ファイル内位置をデータ・変数情報803に設定し、404は処理したラベルデータの次へポインタを更新する。文コード703が実行文の時は405で文コード703に対応した図9で示す実行内容の処理をコール実行し、406はコール先で処理したデータの次へポインタを進める。文コード703が無い時は407で変数名称としてポインタが示す文字列705のデータ・変数・ラベル名称スタック104への登録と図8で示す変数情報を変数属性801でデータ・変数情報スタック103へ登録し、408で処理した変数名称の次へポインタを進める。またこのデータ・変数情報スタック103にスタックする変数サイズ802及び値又はデータの位置803は次に継続する図5data文解析処理又は図6の代入文の実行処理で確定し設定する。以降401が文コード703で文の終わりを検出するまで401〜408を繰返し実行し、文コード703で文の終わりを検出した時点で実行処理を完了する。   FIG. 4 shows a flow for sequentially processing and executing data 700 for each executable statement extracted from the intermediate file 102. 400 sets a pointer for sequentially analyzing one executable statement unit data from the head, and analysis execution is performed in 401-408. 401 detects the end of the sentence with the sentence code 703, and when it is not the end of the sentence, 402 identifies the type of the sentence by the value of the sentence code 703 in the data of the executable statement unit. When statement code 703 is a label name, 403 is the label information in the data / variable information stack 103 and the label name is registered in the data / variable / label name stack 104. Is set in the data / variable information 803, and 404 updates the pointer to the next of the processed label data. When the statement code 703 is an executable statement, the process of the execution content shown in FIG. 9 corresponding to the statement code 703 is called and executed at 405, and 406 advances the pointer next to the data processed at the call destination. When there is no sentence code 703, register the character string 705 indicated by the pointer as the variable name in the data / variable / label name stack 104 and register the variable information shown in FIG. 8 in the data / variable information stack 103 using the variable attribute 801. Then, the pointer is advanced to the next of the variable name processed in 408. The variable size 802 and the value or data position 803 to be stacked on the data / variable information stack 103 are determined and set in the data statement analysis process shown in FIG. 5 or the assignment statement execution process shown in FIG. Thereafter, 401 to 408 are repeatedly executed until the end of the sentence is detected by the sentence code 703, and the execution process is completed when the end of the sentence is detected by the sentence code 703.

図5は本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語を解析実行するプログラム処理方式での構造体データ作成方式の処理フローを示す。本発明のプログラミングにおける構造体データは図10(a)data文の記述形式で、中間ファイル102内データ700の文コード703がdata文の時に図5で示すdata文解析処理の入力となる。本実施例では簡単な構造で図11のアドレス帖データ仕様を本発明のプログラミングにおける構造体データ定義のdata文で記述した図12(a)をdata文解析処理の入力としての動作を説明する。
最初に500はdata文の全体サイズ1001アドレス帖データでは1201で示すサイズの領域をデータ領域105から取得し、取得した領域のサイズ1201の値とデータ領域105内の取得アドレスをデータ・変数情報スタックのデータサイズ802及びデータの位置803にそれぞれを設定し407で作成したデータ・変数情報を確定する。501はdata文オペランドを先頭から逐次解析する為の文ポインタをdata文オペランド1003〜1006アドレス帖データでは1202〜1204の先頭に設定する。502〜509はdata文の要素データを解析する為の処理であり、502はデータ文の終了文字1007を文コード703の値で検出する。503でdata文のバイト位置情報1003アドレス帖データでは1202の値よりデータ先頭からのバイト位置を取得し、504はこのバイト位置の要素名称1004アドレス帖データでは1203の有無を識別し、要素名称が有る時は505で新に要素名称情報用の図8で示すデータ・変数情報のデータの場所803にはデータ領域105内の取得アドレスにデータ先頭からのバイト位置を加えた値で作成しデータ・変数情報スタック103に登録する。506は現在処理中のデータ要素の終わり位置1006を検索し次の要素バイト位置1003入力では1202と現在の要素のバイト位置の差分より現在処理中要素のサイズを決定する。但し、次のバイト位置情報1003アドレス帖データでは1202が無くdata文の終了文字1007を検出した時は全体のサイズ1001アドレス帖データでは1201と現在要素のバイト位置の差分を現在要素のサイズ値とする。また、要素名称1004アドレス帖データでは1203が有る時は要素のサイズ及び位置を505で作成したデータ・変数情報のデータサイズ802及びデータの場所803にそれぞれ設定格納後、変数情報の属性801にデータ属性を設定し、要素のデータ・変数情報図8を確定する。507で現在の処理中要素に設定する初期値1005アドレス帖データでは1204の有無を識別し、初期値1005アドレス帖データでは1204が有れば現在のデータ領域105内の取得アドレスにデータ先頭からのバイト位置を加えた要素位置に初期値1005アドレス帖データでは1202の値を設定する。509は現在の要素データ終了文字1006アドレス帖データでは1204の次へポインタを更新し、以降の要素データを処理する為に502〜509をデータ文の終了文字1007を検出するまで繰返し実行する事で構造体データを作成する。
FIG. 5 shows a processing flow of a structure data creation method in a program processing method for analyzing and executing an interpreter language characterized by a structure data creation method in programming of the present invention. The structure data in the programming of the present invention is in the description format of FIG. 10 (a) data statement, and when the statement code 703 of the data 700 in the intermediate file 102 is a data statement, it becomes the input of the data statement analysis processing shown in FIG. In this embodiment, the operation as an input of the data statement analysis processing will be described with reference to FIG. 12A in which the address / data specification of FIG. 11 is described with the data statement of the structure data definition in the programming of the present invention with a simple structure.
First, 500 is the total size of the data statement 1001 address 帖 For the data, the area of the size indicated by 1201 is acquired from the data area 105, the value of the acquired area size 1201 and the acquired address in the data area 105 are the data / variable information stack The data size 802 and the data position 803 are respectively set, and the data / variable information created in 407 is determined. In 501, a statement pointer for sequentially analyzing data statement operands from the head is set to the heads of 1202 to 1204 in the data statement operands 1003 to 1006 addresses. 502 to 509 are processes for analyzing the element data of the data sentence, and 502 detects the end character 1007 of the data sentence with the value of the sentence code 703. In 503, the byte position from the beginning of the data is obtained from the value of 1202 in the byte position information 1003 address 帖 data of the data statement, and 504 identifies the presence or absence of 1203 in the element name 1004 address 帖 data of this byte position. If there is, the data location 803 for the element name information and the data / variable information shown in FIG. 8 is created by adding the byte position from the beginning of the data to the acquisition address in the data area 105. Register in the variable information stack 103. 506 retrieves the end position 1006 of the data element currently being processed, and at the next element byte position 1003 input, determines the size of the currently processed element from the difference between 1202 and the byte position of the current element. However, when there is no 1202 in the next byte position information 1003 address 2 data and the end character 1007 of the data statement is detected, the total size 1001 address 帖 The difference between the byte position of the current element and 1201 is the current element size value. To do. In addition, when there is 1203 in the element name 1004 address 帖 data, the element size and position are set and stored in the data size 802 and data location 803 of the data / variable information created in 505, respectively, and then the data is stored in the variable information attribute 801 Set the attributes and confirm the element data / variable information Figure 8. In 507, the initial value 1005 address set for the current processing element identifies whether or not 1204 exists in the data, and if there is 1204 in the initial value 1005 address data, the acquisition address in the current data area 105 from the beginning of the data The initial value 1005 address 初期 data is set to 1202 at the element position with the byte position added. 509 updates the pointer next to 1204 in the current element data end character 1006 address 帖 data, and repeatedly executes 502 to 509 until the end character 1007 of the data sentence is detected to process the subsequent element data. Create structure data.

図6は本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語を解析実行するプログラム処理方式における図10(b)代入文の処理フローを示す。最初に600は代入文の右辺値データが初期値又は実行文の何れであるかを文コード703の値により識別する。601は文コード703が無く、右辺値データが初期値データ図7(2)文データの形式の時は601で先頭の文字数704により初期値のデータ長を識別し、初期値長が5バイト以上の時は602でデータ領域105内にデータ長分の領域を取得してアドレスを左辺値の変数情報図8のデータの場所803に設定後、変数情報の属性801にデータ属性を設定し、603は取得したデータ領域105内のデータ領域に初期値を格納する。初期値長が1〜4バイトの時は604で初期値データをコンピュータで演算可能な31ビット長整数に変換後、左辺値変数情報の属性801に変数属性を設定し、605で左辺値変数情報の値803に31ビット長の整数値を格納する。また、600での右辺値識別結果が実行文の時は606で対応する実行文処理図9の処理をコール実行し、607で左辺値変数情報の属性801に変数属性を設定し、実行結果の返値を左辺値変数情報の値803に設定する。   FIG. 6 shows a processing flow of the assignment statement in FIG. 10 (b) in the program processing method for analyzing and executing the interpreter language characterized by the structure data creation method in the programming of the present invention. First, 600 identifies whether the right-side value data of the assignment statement is an initial value or an executable statement by the value of the statement code 703. 601 has no statement code 703, right-side value data is initial value data Figure 7 (2) When the format of the sentence data is 601, the initial value data length is identified by the first character number 704 and the initial value length is 5 bytes or more In the case of 602, an area for the data length is acquired in the data area 105 in 602, and the address is set in the data location 803 of the variable information in FIG. Stores the initial value in the data area in the acquired data area 105. When the initial value length is 1 to 4 bytes, convert the initial value data to a 31-bit integer that can be computed by the computer at 604, set the variable attribute to the attribute 801 of the left-side value variable information, and at 605, the left-side value variable information A 31-bit integer value is stored in the value 803 of. Also, when the right-side value identification result at 600 is an executable statement, the corresponding executable statement processing at 606 is called and executed at 606, the variable attribute is set to the attribute value 801 of the left-side value variable information at 607, and the execution result The return value is set to the value 803 of the left-side value variable information.

図7は本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語を解析実行するプログラム処理方式のインタプリタ言語で記述したプログラムソースファイル101を最適化した中間ファイル102のデータ形式を示し、図3の中間ファイル作成処理が出力する。700のデータ1〜nそれぞれがプログラムソースの1実行文に対応しており、701の(1)〜(3)で示すデータの集合で構成する。
図7(1)は図9実行文のコード901を中間ファイルに出力する時のデータ形式で、先頭1バイトのデータ長702と、図9実行文のコード901値で示す文コード703から成る。
FIG. 7 shows the data format of the intermediate file 102 optimized from the program source file 101 described in the interpreter language of the program processing method for analyzing and executing the interpreter language characterized by the structure data creation method in the programming of the present invention. The intermediate file creation process of 3 is output. Each of 700 data 1 to n corresponds to one executable statement of the program source, and is composed of a set of data indicated by 701 (1) to (3).
FIG. 7 (1) shows a data format when the executable statement code 901 shown in FIG. 9 is output to an intermediate file, and includes a data length 702 of the first byte and a statement code 703 indicated by the code 901 value shown in FIG.

図7(2)はラベル名称、変数名称又は文データを中間ファイルに出力する時のデータ形式で、先頭1バイトはラベル名称、変数名称又は文データの文字数704と、ラベル、変数名称又は文データを示す文字列705から成る。   Fig. 7 (2) shows the data format when the label name, variable name or sentence data is output to the intermediate file. The first byte is the number of characters 704 in the label name, variable name or sentence data, and the label, variable name or sentence data. It consists of the character string 705 which shows.

図7(3)706は中間ファイルの終了を示す最終データ。   FIG. 7 (3) 706 is final data indicating the end of the intermediate file.

図8はデータ、変数又はラベルの情報をデータ・変数情報スタック103へスタックする時の内容を示す。800はデータ、変数又はラベルの名称を格納したデータ・変数・ラベル名称スタック104内のアドレス。属性801はデータ、変数又はラベルの種類を識別する為の情報で、変数で初期値サイズが1〜4バイト時は変数属性を示し、data文及び変数で初期値サイズが5バイト以上時はデータ属性を示す。データ・変数有効サイズ802はdata文又は変数の時に有効でdata文の全体サイズ1001、data文の要素サイズまたは変数値1009が示すデータ長。値又はデータの場所803は属性801で示す内容により意味が異なり、属性801がデータ属性の時はデータ領域105内のデータアドレスを示し、属性801が変数属性の時は変数値で初期値の記述桁数に関係なくコンピュータで演算可能な31ビット長の整数値を示す。また、属性801がラベル属性の時はデータ・変数・ラベル名称スタック104内の変数またはラベル名称の格納アドレスを示す。   FIG. 8 shows the contents when data, variable, or label information is stacked on the data / variable information stack 103. 800 is an address in the data / variable / label name stack 104 in which the name of the data, variable or label is stored. The attribute 801 is information for identifying the type of data, variable, or label. When the initial size of the variable is 1 to 4 bytes, the variable attribute is indicated. When the initial value size of the data statement and variable is 5 bytes or more, the data is displayed. Indicates an attribute. The valid data / variable size 802 is valid for a data statement or variable, and is the data size indicated by the total size 1001 of the data statement, the element size of the data statement, or the variable value 1009. The value or data location 803 has a different meaning depending on the contents indicated by the attribute 801. When the attribute 801 is a data attribute, it indicates the data address in the data area 105, and when the attribute 801 is a variable attribute, it is a variable value and a description of the initial value. Indicates a 31-bit integer value that can be computed by a computer regardless of the number of digits. When the attribute 801 is a label attribute, the storage address of the variable or label name in the data / variable / label name stack 104 is indicated.

図9は本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語を解析実行するプログラム処理方式でインタプリタ言語を構成する代表的な実行文の種類、文コード703の割当て値および実行処理内容を示す。コード901は中間ファイル実行文のデータ形式図7(1)の文コード703に設定する値であり、各実行文毎に決めた1バイト長の識別コード値。902は実行文の種類で、プログラムプログラムソースファイル101を最適化する時に文コードへ変換対象となる予約語。903は各実行文に対応した実行処理内容を示す
図10(a) は本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語を解析実行するプログラム処理方式のインタプリタ言語で構造体データを記述する為のdata文の形式を示す。1000はデータ全体に付ける名称であり、1001はdata文が定義するデータ全体のサイズを示す。1002はデータを構成する要素記述の開始文字で、1003〜1006はデータを構成する各要素情報を示す。1003はデータ内における要素の先頭バイト位置を決める値または式、1004は要素を個別に参照又は更新する必要がある時の参照名称、1005はデータ内要素に初期値がある時はその値、1006は各要素情報記述の終了文字、1007はdata文の終了文字を示す。
FIG. 9 is a program processing method for analyzing and executing an interpreter language characterized by a structure data creation method in programming according to the present invention. Representative types of executable statements constituting the interpreter language, assigned values of statement codes 703, and execution processing contents Indicates. The code format 901 is a value set in the statement format 703 of the intermediate file executable statement data format 703 in FIG. 7, and is an identification code value of 1 byte length determined for each executable statement. Reference numeral 902 denotes a type of executable statement, which is a reserved word to be converted into a statement code when the program program source file 101 is optimized. 903 shows the execution processing contents corresponding to each executable statement. FIG. 10 (a) shows the structure data in the interpreter language of the program processing method for analyzing and executing the interpreter language characterized by the structure data creation method in the programming of the present invention. Indicates the format of the data statement to describe. 1000 is a name given to the entire data, and 1001 indicates the size of the entire data defined by the data statement. Reference numeral 1002 denotes a start character of an element description constituting data, and reference numerals 1003 to 1006 denote element information constituting data. 1003 is a value or expression that determines the first byte position of the element in the data, 1004 is the reference name when the element needs to be referenced or updated individually, 1005 is the value when the element in the data has an initial value, 1006 Indicates the end character of each element information description, and 1007 indicates the end character of the data statement.

図10(b)は本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語での構造体以外の変数記述形式を示す。1008は作成する変数名称または代入先の変数名称を記述し、1009は変数に代入する項目を記述し、1010は文の終了文字を示す。   FIG. 10 (b) shows a variable description format other than the structure in the interpreter language, which is characterized by the structure data creation method in the programming of the present invention. 1008 describes the name of the variable to be created or the assignment destination variable, 1009 describes the item to be assigned to the variable, and 1010 indicates the sentence end character.

図11は実施例で使用する構造を持つデータの仕様例を示したもので、ここでは簡易住所録のデータ構造仕様で、データ全体の名称およびサイズ、構成要素のバイト位置、構成要素のサイズ、構成要素の参照名称および構成要素の初期値を示す。   FIG. 11 shows a specification example of data having a structure used in the embodiment. Here, in the data structure specification of the simple address book, the name and size of the entire data, the byte position of the component, the size of the component, Indicates the reference name of the component and the initial value of the component.

図12は図11で示した簡易住所録のデータ仕様を本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語とC言語で記述したものを示す。   FIG. 12 shows the data specifications of the simplified address book shown in FIG. 11 described in an interpreter language and a C language characterized by a structure data creation method in programming of the present invention.

図12(a) は本発明のプログラミングにおける構造体データ作成方式を特徴とするインタプリタ言語を解析実行するプログラム処理方式のインタプリタ言語での記述を示す。1200は図11簡易住所録のデータ構造仕様のアドレス帖データの名称を記述し、アドレス帖データのサイズは1201に記述し、各要素の位置は1202に記述し、各要素の名称は1203に記述し、要素の設定初期値は1204に記述する。簡易住所録のデータ構造は簡易住所録を構成する各要素のバイト位置1202で決まる。   FIG. 12 (a) shows a description in an interpreter language of a program processing method for analyzing and executing an interpreter language characterized by a structure data creation method in programming of the present invention. 1200 describes the address 帖 data name of the data structure specification of the simple address book in Fig. 11, the address 帖 data size is described in 1201, the position of each element is described in 1202, and the name of each element is described in 1203 The initial setting value of the element is described in 1204. The data structure of the simple address book is determined by the byte position 1202 of each element constituting the simple address book.

図12(b)は一般的な高級言語のC言語での記述を示す。C言語では図11簡易住所録のデータ仕様で示す構造を新たにデータ型として定義する必要があり、初期値は新たに定義したデータ型を持つ変数に代入する事で設定する。また、簡易住所録のデータ構造を新たにデータ型として定義するには簡易住所録のデータ構造を構成する各要素のサイズ情報を元に各サイズに合うC言語のデータ型に対応させて記述する必要がある。C言語では、図11簡易住所録のデータ構造仕様のアドレス帖名称は1205に記述し、各要素のサイズ及び要素名称の組合せを1206に記述し、要素の設定初期値は1207に記述する。簡易住所録のデータ構造はC言語データ型の組み合わせ方1206で決まる。   FIG. 12 (b) shows a description of a general high-level language in C language. In C language, the structure shown in the data specification of the simplified address book in FIG. 11 must be newly defined as a data type, and the initial value is set by substituting it into a variable having the newly defined data type. In addition, to define the data structure of the simple address book as a new data type, it is described in correspondence with the C data type that matches each size based on the size information of each element constituting the data structure of the simple address book. There is a need. In C language, the address 帖 name of the data structure specification of the simple address book of FIG. 11 is described in 1205, the combination of the size and element name of each element is described in 1206, and the initial setting value of the element is described in 1207. The data structure of the simple address book is determined by the combination method 1206 of the C language data type.

図13はデータ構造定義を書き換える事無くデータ形状の変化に対応出来る記述例を示す。本発明で示したインタプリタ言語で記述定義するデータ構造において初期値または設定するデータの各要素にサイズ情報を持つ時は、その値によってデータ構造を構成する要素の見え方が変り、データ形状の変化に対応できる事を説明する。   FIG. 13 shows a description example that can cope with a change in the data shape without rewriting the data structure definition. In the data structure described and defined in the interpreter language shown in the present invention, when each element of the initial value or data to be set has size information, the appearance of the elements constituting the data structure changes depending on the value, and the data shape changes. Explain that it can handle.

図13で示すデータは全体が4096バイト長で3項目の要素1300〜1302で構成し、要素1300は要素名称がsize1の1バイト長要素データサイズ情報と要素名称がelement1の要素データより成り、要素1301は要素名称がsize2の1バイト長要素データサイズと要素名称がelement2の要素データより成り、要素1302は要素名称がsize3の1バイト長要素データサイズと要素名称がelement3の要素データより成り、1303は位置情報のみを示す。この時に要素1301、要素1302および1303のバイト位置情報が変数に成っている為バイト位置は実行時の変数値で決まる。またaddr(element1)、addr(element2)およびaddr(element3)の実行文で得られる戻り値はこのdata文が作成するデータ領域先頭からのバイト位置で、element1、element2およびelement3の各バイト位置の値とする。この記述例では要素1301のバイト位置は要素1300のelement1の位置addr(element1)の戻り値にsize1の初期値を加えた値。同様に要素1302のバイト位置は要素1301のelement2の位置addr(element2)の戻り値にsize2の初期値を加えた値で決まるり、1302の終了位置を決める1303のバイト位置は要素1302のelement3の位置addr(element3)の戻り値にsize3の初期値を加えた値で決まる事になる。データの構造は各要素のバイト位置で決まる為、各要素の設定サイズを書き換えればdata文の記述を変更しなくてもデータ構造が変わり、この記述例では全体が4096バイト以内でデータの形を変える事が出来る事に成る。   The data shown in FIG. 13 is composed of three elements 1300 to 1302 having a total length of 4096 bytes. Element 1300 is composed of 1-byte length element data size information with element name size1 and element data with element name element1. 1301 consists of a 1-byte element data size whose element name is size2 and element data whose element name is element2, and element 1302 consists of a 1-byte element data size whose element name is size3 and element data whose element name is element3. Indicates only position information. At this time, since the byte position information of the elements 1301, 1302 and 1303 is a variable, the byte position is determined by a variable value at the time of execution. The return value obtained with the addr (element1), addr (element2), and addr (element3) executable statements is the byte position from the beginning of the data area created by this data statement, and the value of each byte position of element1, element2, and element3. And In this description example, the byte position of element 1301 is a value obtained by adding the initial value of size1 to the return value of element addr (element1) of element1 of element 1300. Similarly, the byte position of element 1302 is determined by a value obtained by adding the initial value of size2 to the return value of element2 position addr (element2) of element 1301, or the byte position of 1303 that determines the end position of 1302 is the element3 of element1302. The value is determined by adding the initial value of size3 to the return value of position addr (element3). Since the data structure is determined by the byte position of each element, rewriting the setting size of each element will change the data structure without changing the description of the data statement. In this example, the data shape is within 4096 bytes. It can be changed.

100 インタプリタ言語解析実行プログラム
101 プログラムソースファイル
102 中間ファイル
103 データ・変数・ラベル情報スタック
104 データ・変数・ラベル名称スタック
105 データ領域
106 実行ログテキストファイル
107 実行結果テキストファイル
100 interpreter language analysis execution program 101 program source file 102 intermediate file 103 data / variable / label information stack 104 data / variable / label name stack 105 data area 106 execution log text file 107 execution result text file

Claims (1)

プログラムソースファイルから中間ファイルを作成し、中間ファイルから1実行文単位で文を取り出して実行処理するプログラム言語解析実行プログラムであって、少なくとも全体サイズ、構成要素のバイト位置、構成要素のサイズ、構成要素の名称を記述した文を実行することにより構造体データの作成を可能とするプログラム言語解析実行プログラム。   A program language analysis execution program that creates an intermediate file from a program source file, extracts statements from the intermediate file in units of one executable statement, and executes them. At least overall size, byte position of component, component size, configuration A program language analysis execution program that enables creation of structure data by executing a statement that describes the name of an element.
JP2009132665A 2009-06-02 2009-06-02 Programming language analysis execution program Pending JP2010282248A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009132665A JP2010282248A (en) 2009-06-02 2009-06-02 Programming language analysis execution program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009132665A JP2010282248A (en) 2009-06-02 2009-06-02 Programming language analysis execution program

Publications (1)

Publication Number Publication Date
JP2010282248A true JP2010282248A (en) 2010-12-16

Family

ID=43538953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009132665A Pending JP2010282248A (en) 2009-06-02 2009-06-02 Programming language analysis execution program

Country Status (1)

Country Link
JP (1) JP2010282248A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015203895A (en) * 2014-04-11 2015-11-16 三菱電機株式会社 Instruction table generation device, instruction decode program generation device, instruction table generation method, instruction decode program generation method, and program
KR101738277B1 (en) * 2015-12-31 2017-05-19 주식회사 엘지씨엔에스 Apparatus and method for converting data format

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015203895A (en) * 2014-04-11 2015-11-16 三菱電機株式会社 Instruction table generation device, instruction decode program generation device, instruction table generation method, instruction decode program generation method, and program
KR101738277B1 (en) * 2015-12-31 2017-05-19 주식회사 엘지씨엔에스 Apparatus and method for converting data format

Similar Documents

Publication Publication Date Title
CN106648662B (en) Report generation device and method based on project cost calculation description language BCL
CN104679495B (en) software identification method and device
US7747942B2 (en) System and method for obtaining a markup language template through reversing engineering
CN109154926A (en) For realizing the system and method for the data compatibility across heterogeneous machines framework
CN109783138A (en) Method for splitting, device, terminal and the medium that application package is constituted
JP4815934B2 (en) Text mining device, text mining method, text mining program
CN118245050A (en) Front end frame assembly automatic conversion method, system, electronic device and storage medium
JP4724387B2 (en) Program conversion program, program conversion apparatus, and program conversion method
CN109325217A (en) A kind of document conversion method, system, device and computer readable storage medium
JP2010282248A (en) Programming language analysis execution program
US20070169054A1 (en) Process of automatically translating a high level programming language into an extended activity diagram
US8341607B2 (en) Condensing pattern matcher generation for intermediate language patterns
KR102614967B1 (en) Automation system and method for extracting intermediate representation based semantics of javascript
CN116360788A (en) Compiling method, compiler and electronic device for structured text programming language
JP2009163662A (en) Information processor, control method of information processor, and control program of information processor
WO2016031959A1 (en) Migration support device
CN103713864B (en) Book ticket output device and book ticket output method
CN111273913A (en) Method and device for outputting application program interface data represented by specifications
JP5206675B2 (en) Structured document converter
JP2016051367A (en) Data analysis device, data analysis method, and program
JP2007041707A (en) System design support program
CN110262802B (en) Novel execution method for Sequence data of extractor
JP6243619B2 (en) Program analysis apparatus and program analysis method
JP2003108369A (en) Autocreation of program that receives request from web and performs outputting of result
JP2008217809A (en) Structured document converting device