JPS6351292B2 - - Google Patents

Info

Publication number
JPS6351292B2
JPS6351292B2 JP57111191A JP11119182A JPS6351292B2 JP S6351292 B2 JPS6351292 B2 JP S6351292B2 JP 57111191 A JP57111191 A JP 57111191A JP 11119182 A JP11119182 A JP 11119182A JP S6351292 B2 JPS6351292 B2 JP S6351292B2
Authority
JP
Japan
Prior art keywords
word
syntax
check table
syntax check
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP57111191A
Other languages
English (en)
Other versions
JPS59736A (ja
Inventor
Nozomi Sakurai
Hiroko Nonaka
Kaoru Komatsu
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP57111191A priority Critical patent/JPS59736A/ja
Publication of JPS59736A publication Critical patent/JPS59736A/ja
Publication of JPS6351292B2 publication Critical patent/JPS6351292B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 (a) 発明の技術分野 本発明は、電子計算機システムで処理を行なう
のに先立つてソースプログラムを読み込み、電子
計算機で実際に処理し易いオブジエクトプログラ
ムに翻訳する方式に関する。
(b) 従来技術とその問題点 第1図イのようにソースプログラムが書かれて
いるカードから成るフアイルを読み込んで、一旦
ロのようなオブジエクトプログラムに翻訳し、こ
のオブジエクトプログラムを実行することによ
り、ハのような最終的な文書を得るのが一般的で
ある。
この例はCOBOLで表したものであり、各文の
最初の数字の「01」、「02」、「03」…は、レベル番
号で、各文相互の従属関係を示している。例えば
ハのように各個人ごとに体重、身長…などのデー
タを作成したい場合、氏名「NAME」に対し体
重「TAIJU」や身長「SHINCHO」…などは階
層が下位のため、NAMEを表すレベル番号「01」
に対し、「TAIJU」や「SHINCHO」を表す項目
名には大きなレベル番号「02」が付されている。
なお「PIC X(15)」や「PIC99」というPIC
TURE句の内「PIC」は、次にデータが来ること
を指示する単語、「99」や「999」は、その位置に
表される体重や身長などのデータの属性が数字で
桁数は2桁あるいは3桁であることを夫々示して
いる。「X(15)」は、氏名がカナ文字15桁で表さ
れることを指示している。
このようにオブジエクトプログラムを作成する
際に、従来は読み込んだ文を各単語単位に分解し
て、分解された各単語を1つずつ論理的にチエツ
クを行ない、項目の種類やデータの形式などを判
断して、オブジエクトプログラムを得ていた。と
ころがこのように論理的に構文解析する方式で
は、判定の回数が多くなり処理時間が長くなると
共に、判定の論理も複雑になる。またデータの記
述形式に変更があつた場合の修正も多くなり、プ
ログラムメンテナンスの処理能率を低下させる。
(c) 発明の目的 本発明は、従来の構文解析方式におけるこのよ
うな問題を解消し、統一的に処理することができ
且つ処理が簡潔でわかり易くプログラムも小さく
できるようにすることを目的とする。
(d) 発明の構成 この目的を達成するために本発明は、ソースプ
ログラムのデータを読み込み、単語分解して各単
語をチエツクすることにより、各文ごとに中間テ
キストの形でオブジエクトプログラムに変換する
方式において、単語分解された各単語をテーブル
でチエツクするために構文チエツクテーブルを備
え、該構文チエツクテーブルの各構成要素は、次
テーブルポインタ、他テーブルポインタ、EXIT
ルーチンアドレス並びに単語の属性、単語の長さ
などのチエツクデータなどをもつており、また
EXITルーチンは、各単語の内部処理の機能をも
つており、単語分解された各単語を、構文チエツ
クテーブルを辿つてテーブルによるチエツクを逐
次行なうと共に、EXITルーチンに分岐して、中
間テキストの形のオブジエクトプログラムを得る
ような構成を採つている。
(e) 発明の実施例 次に本発明による構文解析方式の実施例を説明
する。第2図は本発明による構文解析方式の処理
順序を示すブロツク図である。第1図のように各
カード1…に書かれたソースプログラムをカード
リーダで読み込んで、その内容を単語分解処理部
2において、プログラムの基本構成要素であるシ
ラブル単位に分解する。このようにして単語分解
された各単語3…をポインタで辿れるようなテー
ブルに編成し、4a,4b…のような単語列ごと
のテーブルを作成する。
一方構文解析される総ての単語を予め想定し
て、構文チエツクテーブル5が作成されており、
構文解析処理部6において、この構文チエツクテ
ーブルを読み込んで来て、各単語3…ごとに構文
チエツクテーブルと比較を行ない一致するかどう
かをチエツクすることにより、構文解析する。そ
して最終的に次のEXITルーチン処理部7におい
て、対応するEXITルーチンを読み込んで、各単
語内の細かい処理を、EXITルーチンの中で行な
う。構文チエツクテーブルでは、EXITルーチン
に関する情報も持つており、どのEXITルーチン
を選択するかは、構文チエツクテーブル内のポイ
ンタで指定される。EXITルーチンでは、単語を
解読して単語内部を判断し、それぞれの単語1つ
ずつについての処理が行なわれる。
EXITルーチンを通すことにより、81,82
…のような中間テキスト即ちオブジエクトプログ
ラムが得られる。オブジエクトプログラムに変換
された状態では、データの形式や大きさは、「99」
や「999」のデータだけで特定できるので、ソー
スプログラムにおける「PIC」などのようにデー
タ形式を指示するための句指定情報は抹消され、
所要のデータやデータの属性を表す語などだけ
が、単語列ごとにメモリに記憶される。
このような処理を実行するための単語テーブル
および構文チエツクテーブルの形式は、第3図の
ような構成になつている。即ち単語テーブルは、
各ユニツト毎にイのように、次テーブルの番地を
指定するためのポインタ、単語の属性、単語の長
さおよび文字列などの情報をもつている。構文チ
エツクテーブルは、各ユニツト毎にロのように、
次テーブルポインタ、他テーブルの番地を指定す
るためのポインタ、単語の属性、単語の長さ、可
変部の長さ、EXITルーチンアドレス、二重定義
チエツクフラグおよび可変部など、チエツクに必
要な諸情報をもつている。
第4図は構文解析を行なうソースプログラムの
具体例と単語テーブルおよび構文チエツクテーブ
ルの連鎖状態を示す図である。単語テーブルは単
語分解の際の出力に基づいて、各単語ごとに第3
図イに示す各内容に対応するデータが作成され、
且つ次テーブルポインタにより、矢印で示される
ようにテーブルの更新順序が指定されている。ハ
の構文チエツクテーブルも、第3図ロに示される
各種のデータを、COBOLで用いられる総ての単
語を想定して設定されている。そして次テーブル
ポインタと、他テーブルポインタに従つて矢印で
示されるようにテーブルの更新順序が特定してい
る。またEXITルーチンのアドレスが設定されて
いる。
第5図は構文チエツクテーブルの処理動作をフ
ローチヤートで示したもので、これらの図に基づ
いて第4図イの例文につき処理動作を説明する。
まず前処理として、ソースプログラムのカードを
読み込んで単語テーブルが作成され、最初の単語
から1つずつ構文解析が行なわれる。即ち最初の
単語「03」について、構文チエツクテーブルと該
単語の属性が比較され、属性が一致していなけれ
ば、構文チエツクテーブルを更新して再度比較さ
れる。構文チエツクテーブルでは、矢印で示され
るように、構文チエツクテーブルを順次たどつて
行くことにより、単語と一致するものが見付かる
まで、更新が行なわれる。
そしてハの構文チエツクテーブルによれば、最
初のユニツトでは属性が「数字」で、単語テーブ
ルの最初の単語「03」の属性と一致しているた
め、次にキーワードかどうか比較される。そして
単語「03」はキーワードではないため、次に単語
の長さが判定されるが、構文チエツクテーブルで
は長さは“Max2'で単語の数字の長さ「2」と一
致している。これで構文チエツクテーブルによる
チエツクを終り、EXITルーチンのアドレスを示
すデータ「ADDR1」に従つて、指定のEXITル
ーチンを呼んで処理が渡され、「03」というデー
タを書込んで中間テキストのオブジエクトプログ
ラムが完成する。
こうして1つの単語「03」の中間テキストがで
き上がると、ロの矢印に従つて単語テーブルが更
新されると共に、ハの矢印に従つて構文チエツク
テーブルも更新され、次の単語「A」について同
じような構文解析処理が行なわれる。以下同様に
して、単語テーブルおよび構文チエツクテーブル
が順次更新され、各単語「USAGE」「IS」…ご
とに構文チエツクテーブルによる構文解析が実行
される。単語がキーワードの場合は、その内容が
テーブルと一致しているかどうかが比較される。
このように単語テーブルを1つずつ更新しなが
ら、構文チエツクテーブルと比較し、一致するま
で構文チエツクテーブルを更新して比較すること
により、単語ごとに構文解析が行なわれる。そし
て最後のピリオドの構文解析が終了すると、文の
終りということが認識され、次の文の単語分解が
開始して単語テーブルが作成され、再度構文解析
が行なわれる。そして次の文では、構文解析の結
果中間テキスト中で単語「PIC」が抜けている
が、前記のように中間テキストではデータの形式
や長さが特定しているので、次にデータが来るこ
とを指定するような句指定単語は、EXITルーチ
ンの段で削除される。なおEXITルーチンでは、
構文チエツクテーブルでは判断できない、単語の
内部における情報が判断され、且つ実際には
「99」という単語がそのまま書込まれるのでなく、
それを解読してその単語の示す意味を制御情報の
形に変えて書込まれる。構文チエツクテーブルを
構成する各ユニツトには1回チエツクするとフラ
グを立てて、1つの単語につきダブつてチエツク
が行なわれるのを防止している。
(f) 発明の効果 以上のように本発明によれば、ソースプログラ
ムのデータを読み込み、単語分解して各単語をチ
エツクすることにより、各文ごとに中間テキスト
の形でオブジエクトプログラムに変換する方式に
おいて、単語分解された各単語をテーブルでチエ
ツクするために構文チエツクテーブルを備えてい
る。そしてこの構文チエツクテーブルの各構成要
素は、次テーブルポインタ、他のテーブルポイン
タ、EXITルーチンアドレス並びに単語の属性、
単語の長さなどのチエツクデータなどをもつてお
り、単語分解された各単語を、構文チエツクテー
ブルを辿つてテーブルによるチエツクを逐次行な
うと共に、単語の内部処理を行なうためのEXIT
ルーチンに分岐して、オブジエクトプログラムを
得るようになつている。
従つて処理動作は、一致するものが見付かるま
でテーブルを辿つていくだけでよく、また構文チ
エツクテーブルと一致するかどうかだけをチエツ
クすればよく、従来のようにデータ形式がどうか
などをいちいち判断する必要は無い。そのため、
処理速度および処理効率が向上する。またテーブ
ルを準備するだけでよいので、処理部の構成も簡
潔になる。
更に構文チエツクテーブルでは、対応する単語
のチエツクのみを行ない、各単語の内部の判断
は、別の設けたEXITルーチンで行なう構成のた
め、それぞれの単語に対する処理が変更されたと
きも、構文チエツクテーブルはそのままで、
EXITルーチンだけを修正するとか、逆に構文チ
エツクテーブルだけを変更すればよく、メンテナ
ンスの負担も軽減される。
【図面の簡単な説明】
第1図はソースプログラムから中間テキストの
形のオブジエクトプログラムに変換した後文書を
作成する方式を示す図、第2図は本発明による構
文解析方式の実施例を示すブロツク図、第3図は
単語テーブルと構文チエツクテーブルの内容を例
示する図、第4図は具体的な例文とその構文解析
の処理動作を示すブロツク図、第5図は構文解析
の処理動作を示すフローチヤートである。 図において、1はカード、2は単語分解処理
部、3…は単語、4a,4b…は単語列、5は構
文チエツクテーブル、6は構文解析処理部、7は
EXITルーチン処理部、81,82…はオブジエ
クトプログラムの状態の単語列をそれぞれ示す。

Claims (1)

  1. 【特許請求の範囲】 1 ソースプログラムのデータを読み込み、単語
    分解して各単語をチエツクすることにより、各文
    ごとに中間テキストの形でオブジエクトプログラ
    ムに変換する方式において、 単語分解された各単語をテーブルでチエツクす
    るために構文チエツクテーブルを備え、該構文チ
    エツクテーブルの各構成要素は、次テーブルポイ
    ンタ、他テーブルポインタ、EXITルーチンアド
    レス並びに単語の属性、単語の長さなどのチエツ
    クデータなどをもつており、 またEXITルーチンは、各単語の内部処理の機
    能をもつており、 単語分解された各単語を、構文チエツクテーブ
    ルを辿つてテーブルによるチエツクを逐次行なう
    と共に、EXITルーチンに分岐して、中間テキス
    トの形のオブジエクトプログラムを得るように構
    成したことを特徴とする構文解析方式。
JP57111191A 1982-06-28 1982-06-28 構文解析方式 Granted JPS59736A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57111191A JPS59736A (ja) 1982-06-28 1982-06-28 構文解析方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57111191A JPS59736A (ja) 1982-06-28 1982-06-28 構文解析方式

Publications (2)

Publication Number Publication Date
JPS59736A JPS59736A (ja) 1984-01-05
JPS6351292B2 true JPS6351292B2 (ja) 1988-10-13

Family

ID=14554801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57111191A Granted JPS59736A (ja) 1982-06-28 1982-06-28 構文解析方式

Country Status (1)

Country Link
JP (1) JPS59736A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61143855A (ja) * 1984-11-14 1986-07-01 Hitachi Software Eng Co Ltd プログラムテスト方式
US4686153A (en) * 1984-12-08 1987-08-11 Fujikura Ltd. Electrode wire for use in electric discharge machining and process for preparing same
JPS6383835A (ja) * 1986-09-29 1988-04-14 Hitachi Ltd 制御文解析方式
JPS63280344A (ja) * 1987-05-12 1988-11-17 Nec Corp プログラム自動診断方式
JPS63304336A (ja) * 1987-06-04 1988-12-12 Nec Corp 計算機言語記述の矛盾摘出解消方式

Also Published As

Publication number Publication date
JPS59736A (ja) 1984-01-05

Similar Documents

Publication Publication Date Title
JP3152868B2 (ja) 検索装置および辞書/テキスト検索方法
JPH0630066B2 (ja) テーブル型言語翻訳方法
JPH0351021B2 (ja)
CN117193781B (zh) 一种面向simscript语言的抽象语法树构建方法和装置
JP3372532B2 (ja) 感情情報抽出方法および感情情報抽出プログラムの計算機読み取り可能な記録媒体
US6535886B1 (en) Method to compress linguistic structures
CN119127834A (zh) 基于MyBatis的数据库迁移方法、装置、系统及存储介质
CN108766507A (zh) 一种基于CQL与标准信息模型openEHR的临床质量指标计算方法
JPS6351292B2 (ja)
CN116955393B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN111597323B (zh) 关键字段过滤方法、装置、存储介质及电子设备
Van Reeuwijk Tm: A code generator for recursive data structures
Xiao Transformation System of two Similar Syntax Programs Based on the Compiler Principle
JPH07146785A (ja) プログラム自動生成方法および装置
CN115904353B (zh) 一种用户界面的目标源文件的生成方法及系统
CN113609821B (zh) 一种正则表达式转换方法、装置、设备及存储介质
JPS61187077A (ja) 日本語解析装置
Bird et al. Nltk documentation
JP2006505044A (ja) ハードウェアにより加速された妥当性検証パーサ
JP3329476B2 (ja) かな漢字変換装置
JP2975529B2 (ja) 電子化辞書検索装置
JPH01136270A (ja) ワードプロセッサ装置
JP3044463B2 (ja) データ変換方法
CN116226454A (zh) 一种json文档简化表达方法及系统
CN121835700A (zh) 页面语言翻译方法、装置、设备、计算机可读存储介质及计算机程序产品