JPS60157639A - プログラム編集方法 - Google Patents

プログラム編集方法

Info

Publication number
JPS60157639A
JPS60157639A JP1366884A JP1366884A JPS60157639A JP S60157639 A JPS60157639 A JP S60157639A JP 1366884 A JP1366884 A JP 1366884A JP 1366884 A JP1366884 A JP 1366884A JP S60157639 A JPS60157639 A JP S60157639A
Authority
JP
Japan
Prior art keywords
program
screen
parse tree
source
editing
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
JP1366884A
Other languages
English (en)
Inventor
Yuki Takahashi
勇喜 高橋
Seizo Mori
森 清三
Toshihiro Hayashi
林 利弘
Atsushi Tanaka
厚 田中
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 JP1366884A priority Critical patent/JPS60157639A/ja
Publication of JPS60157639A publication Critical patent/JPS60157639A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はソースプログラムの編集方法に係り、特にプロ
グラムの言語文法規則を内蔵した構造エディタに好適な
ソースプログラム編集方法に関する。
〔発明の背景〕
構造エディタは、従来のソーステキストを編集するエデ
ィタの問題点を解決するために提案された。すなわち、
従来のエディタでは処理対象が単なる文字列であるため
、プログラム自身は意味のある文字列(文章)であるに
も拘らず、単なる1文字列とみなして、操作しなければ
ならない制約があり、誤りが入り易い問題があった。こ
れを解決するために、エディタの処理対象をプログラマ
の思考対象レベルまで引き上げる目的で作られたのが構
造エディタである。
構造エディタでは、プログラマの思考対象であるプログ
ラム上意味のある構文要素単位でプログラム処理を行う
。従って、構造エディタの処理対象は、ソースプログラ
ムでなく、コンパイラが内部中間語として扱っているよ
うな、言語文法規則に基づき構文解析した結果の構文解
析木である。
これにより、コンパイラとは異なって、プログラム修正
の度にソースプログラムを構文解析する必要がなく、シ
かも木構造であることから構文要素単位の処理が容易と
なっている。
ここで、構文解析木とは、プログラムを言語文法規則に
基づいて本構造で表現したものである。
プログラム上意味十i 、を例にとり、プログラムを言
語文法規則に基づいて構文解析木で表現する過程を具体
的に説明する。
言語文法規則例は以下に示すようになる。
規則l く文)::一(代入文〉 1く反復文〉 1く条件文〉 規則2 く代人文〉;:=<変数〉−<算術式〉;規則
3 く算術式〉::=<項〉+<項〉1く項〉−く項〉 1く項〉/〈項〉 1く項〉薫〈項〉 規則4 く項> ::一(変数〉 1く定数〉 規則5 く変数)::=X I Y I Z規則6 く
定数)::=112131415+6171819 「<」と「〉」で囲まれたものを構文要素と呼び、J:
: =Jは「::一」左辺の構文要素が1:二一」右辺
の要素から成ることを示し、Illは「または」の意味
を表す。r<J 、r>j 、r::−j 。
「1」は言語文法規則を定義するための記号である。
規則1は、「文は、代入文または反復文または条件文か
ら成る」という意味で、 規則2は、「代入文は、変数と−と算術式と;から成る
」という意味で、 規則3は、「算術式は、項と十と項、または項と−と項
、または項と/と項、または項と矢と項から成る」とい
う意味で、 規則4は、「項は、変数または定数から成る」という意
味で、 規則5は、「変数は、X″!、たはYまたはZから成る
」という意味で、 規則6は、[定数は、1または2または3または4また
は5または6または7または8または9から成る」とい
う意味である。
この言語文法規則によって定義されるプログラムは、規
則1のく文〉から始まって、構文要素を「::=Jの右
辺にあるものと置き換えていき、構文要素を1つも含ま
なくなったものである。
プログラムX=X+1 +は、次の順序で置き換えて作
ることができる。
これを図に示したのが、#I1図の構文解析木であシ、
言語文法規則の構文要素が本構造のノードとなる。
プログラム編集装置は一般に、第2図に示すように、ソ
ースプログラムを構文解析木形式で格納するソースライ
ブラリ100と、その構文解析本形式のプログラムをテ
キスト形式で表現するとともにプログラムの編集指示を
受付ける会話型端末200と、プログラムの編集指示を
解析し前記構文解析木を変更処理する構造エディタ30
0とで構成されている。
構造エディタを用いてプログラムの変更を行う場合のプ
ログラマの手順と構造エディタの内部処理とを第3図に
基づき説明する。
プログラマが会話型端末200上に表示されているプロ
グラムX=Y+1 iのYをZに変更するには、画面上
のYにカーソルを位置させこれをZに変更する指示を行
う。
構造エディタ300は、この指示を受け、ソースライブ
ラリ100の構文解析木をノード1から順に2.3.4
とたどっていき、テキスト“Y IIのノード9を探す
〔第3図(1)〕。
そして、ノード9をテキスト“Z′のノードに置き換え
る〔第3図(2)〕。
次に、修正された構文解析木を会話型端末200の画面
に表示するため、前述のノード探索と同じようにノード
1から順にたどっていき、ノードに子供となるノードが
ないもののテキスト“X”。
“ 、°“Z″、“十”、“1”、′;”を1画面分作
成し、会話型端末200に転送する〔第3図(3)〕。
第4図は、従来の構造エディタにおける変更対象となる
ソースプログラムのテキストと構文解析木のノードとの
対応を説明する図でおる。プログラムIFX、GT、O
THEN X二X+1:END ; (ただし、GT’
はgreater Ihanを表わす)について第2の
X(すなわち、x=x+i Hの下線部のX)をYに修
正しようとすると、対応する構文解析木のノードを探す
のに、ノードを順にたどってノードテキストを見てい〈
従来の方法では、ソースライブラリ100中にテキスト
“Xllを表すノードが3個あることから、260ノー
ドなのか35のノードなのかそれとも40のノードなの
か区別しかければならず、これらをプログラムの前後関
係から判断する処理が必要であった。
さらに、ソースライブラリ100中に同じテキスト“X
”を表すノードがまだあるかも知れないので、ソースラ
イブラリ100の最後までノードを順にたどらなければ
ならず、特にソースライブラリ100が大容量の場合に
は探索時間が非常に長くかかる欠点があった。
また、構文解析木を会話型端末200に画面表示する場
合も、1画面全てのテキストを会話型端末200に転送
しなければならず、時間がかかつていた。
これらの問題点から、特にマルチターミナル化した場合
に、キー人力に対する応答性が悪く、待ち時間が長くな
るので、作業能率が低下せざるを得なかった。
〔発明の目的〕
本発明の目的は、従来の構造エディタの端末名(9) 容性が悪い欠点を解消するために、会話型端末上に表示
されているプログラムの構文要素に対応する構文解析木
のノードを、構文解析木全体の探索を行うことなく決定
できる方法を提供することである。
〔発明の概要〕
本発明は、構造エディタにおいては、変更対象でおる構
文解析木のノードをプログラマのカーソル指示による会
話型端末表示画面上の位置からめている点に注目し、表
示画面位置と構文解析木のノードとを1対1に対応させ
るテーブルを用い、ソースライブラリ全体の探索を行う
ことなしに変更部分のノードを決定することを特徴とす
る。
本発明はさらに、構造エディタにおいてはプログラムの
変更が構文要素単位に行われる点に注目し、上記テーブ
ルにノードが変更されたことを示すフラッグを付加し、
変更部分のみを端末表示画面に転送させることも特徴で
ある。
〔発明の実施例〕
以下、本発明の一実施例につき、第5図〜第9(10) 図を参照して、更に詳細に説明する。
第5図は、本発明によるプログラム編集方法に用いるプ
ログラム編集装置の構成を示している。
図において、ソースプログラムを構文解析木形式で格納
するソースライブラリ100と、その構文解析木形式の
プログラムをテキスト形式で表現するとともにプログラ
ムの編集指示を受付ける会話型端末200と、プログラ
ムの編集指示を解析し前記構文解析木を変更処理する構
造エディタ300とは、従来例と変らない。
本発明のプログラム編集方法では、論理画面400と画
面対応テーブル500とをメモリとして用いることを特
徴とする。
論理画面400は、計算機内に想定された仮想の画面で
、会話型端末200の表示可能文字数等の機種毎に異な
る能力に依存せず、常に一定の「画面表示」を内部で行
うために用いられる。構文解析木100を会話型端末2
00に画面表示するには、第4図について説明したよう
に、構文解析木をテキスト形式に変換し、論理画面40
0に(11) 格納していく。次に、論理画面400の内容を会話型端
末200へ転送する。そこで会話型端末200にソース
ライブラリ100内のソースプログラムが画面表示され
ることになる。
一方、画面対応テーブル500は、会話型端末200の
画面位置とその位置にあるプログラムに対するソースラ
イブラリ100の構文解析木ノードとを1対lに対応さ
せるテーブルである。
論理画面400と画面対応テーブル500とは、2次元
配列の同じ大きさのテーブルを持っている。
ここでは配列の大きさを、X方向m、y方向nとし、各
々LS(m、n)及びTB(m、n)と表現する。また
格納される配列要素は、論理画面400ではプログラム
テキストを構成する文字であシ、画面対応テーブル50
0ではテキストに対応する構文解析木のノード番号であ
る。
なお、論理画面400と画面対応テーブル500とに必
要なメモリエリアは、これまでのメモリの一部に確保し
てもよいし、これらのための専用メモリとして新たに設
けてもよい。
(12) 次に、第4図のプログラムを例に取シ、X−X+1;の
最初のXをYに修正すると仮定して、構造エディタの処
理対象であるテキスト°“X ITのノードをめる手順
について説明する。
第5図に示すように、ソースライブラリ100には、構
文解析木が格納されておシ、構造エディタ300により
その内容が変換されて、論理画面400のLS(ml、
nl)からLS (ml、n)にはそれぞれ、X”′、
“”、“X”、′十”。
”1″′、;”が格納される。この際、画面対応テーブ
ル500の論理画面400と同じ位置であるTB(ml
、nl)からTB(ml、n)にはそれぞれ対応する構
文解析木のノード番号35゜36.40,41,44.
45が格納されている。
第6図は端末表示画面上のプログラムテキストと構文解
析木ノードとを対応させる手順を示す図である。
図中の手順(1)において、会話型端末200上でXを
修正するだめ、カーソルをXの位置に移動すると、構造
エディタ300がその位置を読み取り、(13) Yが論理画面400ではLS(ml、nl)の位置にあ
ることがわかる。
次に手順(2)において、画面対応テーブル500の論
理画面400と同じ位置TB(ml、nl)の値35を
参照すると、処理対象であるXに対応した構文解析木の
ノード番号が即座に決定できる。
端末画面上のプログラムと構文解析木とを対応させる手
順を流れ図で示したのが第7図である。
次に、変更のあった構文解析木を会話型端末200の画
面上に表示する手順を第8図を参照して説明する。
ソースライブラIJ 100の構文解析木100におい
てノード番号35のテキスト“X“がY”に変更された
とする。
図中の手順(1)において、ノード番号35が格納され
ている画面対応テーブル500の配列要素TB(ml、
nl)のフラッグをONにする。
次に手順(2)において、画面対応テーブル500のT
B (ml、n 1)と同じ位置にある論理画面400
のLS(ml、nl)の文字を11 X”から(14) “Y′′に変更する。このとき、会話型端末200に表
示するための転送データは論理画面400に格納されて
いる全てでなく、画面対応テーブル500のフラッグが
ONになっているTB(ml。
nl)と同じ位置にあるLS (ml、 n 1 )(
7)“′Y″′のみである。
従って一画面全体を送っていた従来例とは異なり、会話
型端末200へのデータ転送時間が短縮される。特に、
プログラムの修正は一般的にステートメント単位で行わ
れるため、1行の変更が大部分であるところから、80
X24行の端末表示画面においては、転送量は従来例の
24分の1に削減される。
第9図は第8図の処理手順を示す流れ図である。
〔発明の効果〕
本発明によれば、画面表示のだめの論理画面と構文解析
木とを対応させる画面対応テーブルを用いたので、会話
型端末の画面に表示されたソースプログラムと構文解析
木のノードとの対応処理時間が構文解析木の容量にかか
わりなく一定で、しく15) かも即座に決定できる。さらに、そのテーブルに構文要
素が変更されたことを示すフラッグ領域を設定すること
により、変更部分のみを会話型端末にデータ転送すれば
よく、シかも一般的にプログラム修正はステートメント
単位に行われるから、1行分だけのデータ転送で済む。
特に、会話型端末の応答時間の大部分をデータ転送時間
が占めているため、前記の探索時間の短縮と併せて、高
速応答性を確保できる。
【図面の簡単な説明】
第1図は構文解析木の具体例の説明図、第2図は構造エ
ディタを有するプログラム編集装置の構成図、第3図は
プログラム変更時のプログラマの手順及びプログラム編
集装置内部の処理手順の説明図、第4図は従来のプログ
ラム編集方法におけるソースプログラムと構文解析木の
対応処理の説明図、第5図は本発明のプログラム編集方
法に用いるプログラム編集装置の構成図、第6図は本発
明方法においてソースプログラムと構文解析木とを対応
させる手順を示す図、第7図はその流れ図、(16) 第8図は変更のあった構文解析木を会話型端末に表示さ
せる手順を示す図、第9図はその流れ図である。 100・・・ソースライブラリ、200・・・会話型端
末、300・・・構造エディタ、400・・・論理画面
、500・・・画面対応テーブル、1〜14および20
〜46・・・構文解析木ノード。 代理人 弁理士 鵜沼辰之 茅1 口 く丈ン × I 第 2 月 700 第 3 pろ(1) 第3図(2) 第 3 Dる C3ノ 第6図 第 7 月 第8 図 244− 茅 ゾ 訝り

Claims (1)

  1. 【特許請求の範囲】 ■、ソースプログラムを構文解析木形式で格納するソー
    スライブラリと、その構文解析木形式のプログラムをテ
    キスト形式で表現するとともにプログラムの編集指示を
    受付ける会話型端末と、プログラムの編集指示を解析し
    前記構文解析木を変更処理する構造エディタとを用いる
    プログラム編集方法において、前記会話型端末に表示さ
    れるテキスト形式のプログラムの配列文字を格納する論
    理画面と、この論理画面と同じ大きさの2次元配列のテ
    ーブルを有し前記会話型端末の画面位置とその位置にあ
    るプログラムに対するソースライブラリの構文解析木ノ
    ードとを1対1に対応させる画面対応テーブルとをメモ
    リ内のエリアとして確保し、 (1)編集指示が出された文字位置を論理画面に格納さ
    れているテキスト形式のプログラムの配列文字の位置と
    して特定するステップと、(2)特定された論理画面上
    の文字位置にソースライブラリの構文解析木ノードを1
    対1で対応させる画面対応テーブルによりi集指示が出
    された構文解析木ノードを一意に決定するステップと、 (3)決定された構文解析木ノードにおいて編集指示に
    含まれた変更処理を実行するステップと、を含むことを
    特徴とするプログラム編集方法。 2、特許請求の範囲第1項において、画面対応テーブル
    に構文解析木形式のプログラムの変更部分を記憶する機
    能を持たせ、編集後の構文解析木形式のプログラムから
    逆変換されたソースプログラムを会話型端末の画面上に
    表示する際に変更された部分のみを返送するステップを
    含むことを特徴とするプログラム編集方法。
JP1366884A 1984-01-27 1984-01-27 プログラム編集方法 Pending JPS60157639A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1366884A JPS60157639A (ja) 1984-01-27 1984-01-27 プログラム編集方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1366884A JPS60157639A (ja) 1984-01-27 1984-01-27 プログラム編集方法

Publications (1)

Publication Number Publication Date
JPS60157639A true JPS60157639A (ja) 1985-08-17

Family

ID=11839573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1366884A Pending JPS60157639A (ja) 1984-01-27 1984-01-27 プログラム編集方法

Country Status (1)

Country Link
JP (1) JPS60157639A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6354659A (ja) * 1986-08-25 1988-03-09 Hitachi Ltd 木の表示編集方法
JPH02187857A (ja) * 1988-11-21 1990-07-24 Xerox Corp 自然言語テキスト処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6354659A (ja) * 1986-08-25 1988-03-09 Hitachi Ltd 木の表示編集方法
JPH02187857A (ja) * 1988-11-21 1990-07-24 Xerox Corp 自然言語テキスト処理方法

Similar Documents

Publication Publication Date Title
US8117533B2 (en) Method and system for stylesheet rule creation, combination, and removal
US6279005B1 (en) Method and apparatus for generating paths in an open hierarchical data structure
US8429525B2 (en) Method and system for reversible design tree transformations
Dale Data Visualization with Python and JavaScript
US8397157B2 (en) Context-free grammar
CN107798123B (zh) 知识库及其建立、修改、智能问答方法、装置及设备
JP2006228210A (ja) 既存のコンテンツを用いた、タスクを実行するためのアクティブコンテンツウィザード実行可能ファイルの生成
JP2004502993A (ja) 訓練可能で拡張可能な自動化データ/知識翻訳機
CN108170435A (zh) 一种源代码转换方法、装置及设备
Gobert et al. i-latex: Manipulating transitional representations between latex code and generated documents
JPS60157639A (ja) プログラム編集方法
Mädje A Programmable Markup Language for Typesetting
JPS61278970A (ja) 自然言語処理装置における構文解析結果の表示及び校正のための制御方法
JP2974698B2 (ja) 機械翻訳装置における単語間関係編集/学習装置
JPS6310265A (ja) 翻訳装置
CN111597323B (zh) 关键字段过滤方法、装置、存储介质及电子设备
JPS59736A (ja) 構文解析方式
JPH0512034A (ja) 機械で読取り可能な情報の翻訳を可能にする方法
JPH08272660A (ja) データベース問合せ文作成装置
Murakawa et al. Comprehension Support of SQL Statement using Double-Tree Structure
Hall A New Human-Readability Infrastructure for Computing
JPH04153878A (ja) 機械翻訳装置における前編集支援処理装置
JPH04367073A (ja) 機械翻訳システムにおける文法作成支援方法
JPH01298439A (ja) リスト解析装置
Wong et al. A guide to alloy