JP2675100B2 - 言語変換器及び言語変換方法 - Google Patents

言語変換器及び言語変換方法

Info

Publication number
JP2675100B2
JP2675100B2 JP63244093A JP24409388A JP2675100B2 JP 2675100 B2 JP2675100 B2 JP 2675100B2 JP 63244093 A JP63244093 A JP 63244093A JP 24409388 A JP24409388 A JP 24409388A JP 2675100 B2 JP2675100 B2 JP 2675100B2
Authority
JP
Japan
Prior art keywords
language
program
language specification
electronic device
node
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 - Lifetime
Application number
JP63244093A
Other languages
English (en)
Other versions
JPH0293732A (ja
Inventor
信一 荒井
忠信 鳥羽
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 JP63244093A priority Critical patent/JP2675100B2/ja
Publication of JPH0293732A publication Critical patent/JPH0293732A/ja
Application granted granted Critical
Publication of JP2675100B2 publication Critical patent/JP2675100B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンピュータ言語のコンパイラ・コンパイラ
や言語トランスレータに係り、特にLSIテスタ用言語の
プログラム言語変換器を複数製作するに好適な言語変換
器およびその生成装置に関する。
〔従来の技術〕
従来の装置は、特開昭62−160536号公報および特開昭
62−10734号公報や情報処理学会第35回(昭62年後期)
全国大会論文集pp.865−866に記載のように変換ルール
を表形式のデータにして変換する方法をとっている。ま
た言語解析部には特開昭62−262178号公報などに記載の
ように構文解析と意味解析とを別にする方法がある。ま
たコンパイラ・コンパイラに関するものとして、プログ
ラミング言語研究会報告No.8,p.1〜p.9(1986.10.17)
などが挙げられる。
〔発明が解決しようとする課題〕
上記従来技術は、ある目的対象言語に対して固定的な
構成すなわち構文解析およびそれに対する処理方法が、
言語変換器のプログラム自体に含まれているか、あるい
はテーブル(表)方式によりその動作が記述されていた
ので、その対象言語が変わるかその処理内容が変更にな
ると、その機能を実現するにはその変換器自体を再プロ
グラムしなければならず、LSIテスタ用の言語のように
測定機能を実現するコマンドが多数ありかつその言語仕
様も多種にのぼるような言語の変換器を作るにはその開
発工数の点で問題があった。またLSIテスタ用言語のよ
うに言語としては単純なものであるが、測定用としてそ
のシステムの持っているハードウェアを動かすためのコ
マンドを他のテスタ用の担当機能を持ったコマンドに変
換するには、そのハードウェアの機能差を考慮して変換
する必要があるのに対してその記述能能力が低いという
問題があった。
本発明の目的は上記の問題点を解決し、容易にLSIテ
スタ用言語などの多数のハードウェアに依存するコマン
ドを持つ言語の変換器を作成できる言語変換器およびそ
の生成装置を提供するにある。
〔課題を解決するための手段〕
上記目的は、第一の電子機器で使用する第一の言語仕
様で記述されたプログラムを該第一の電子機器とハード
構成の異なる第二の電子機器で使用する第二の言語仕様
で記述されたプログラムに変換する言語変換器であっ
て、第一の言語仕様で記述された入力プログラムの各々
のステップを所定の構文ルールに対応したノードに変換
して該入力プログラムを該ノードの連結関係で表現し、
言語仕様の変換処理を実行する実行プログラムと該入力
プログラムの各々のステップを順に実行した場合の第一
の電子機器のハード状態とを該各ノードに対応づけて記
述した構文解析木を生成する手段と、該第一の言語仕様
を該第二の言語仕様に変換する言語変換ルールと、該第
一の電子機器のハード状態を第二の電子機器のハード状
態へ変換するハード状態変換ルールとを記憶する手段
と、該構文解析木の構成に従って該各ノードに対応づけ
られた実行プログラムを順に実行することで、該各ノー
ドの構文ルールに記述された第一の言語仕様を該言語変
換ルールに記述される第二の言語仕様に変換し、該第一
の電子機器のハード状態を該ハード状態変換ルールに記
述される第二の電子機器のハード状態へ変換して第二の
言語仕様で記述されたプログラムを生成する処理手段と
を備えることで達成される。
もしくは、第一の電子機器で使用する第一の言語仕様
で記述されたプログラムを該第一の電子機器とハード構
成の異なる第二の電子機器で使用する第二の言語仕様で
記述されたプログラムに変換する言語変換器であって、
第一の言語仕様で記述された入力プログラムの各々のス
テップを所定の構文ルールに対応したノードに変換して
該入力プログラムを該ノードの連結関係で表現し、言語
仕様の変換処理を実行する実行プログラムと該入力プロ
グラムの各々のステップを順に実行した場合の第一の電
子機器のハード状態と前記入力プログラムに記述される
変数とを該各ノードに対応づけて記述した構文解析木を
生成する手段と、該第一の言語仕様を該第二の言語仕様
に変換する言語変換ルールと、該第一の電子機器のハー
ド状態を所定の第二の電子機器のハード状態へ変換する
ハード状態変換ルールと、該入力プログラムに記述され
る変数を該第二の言語仕様で記述されるプログラムの変
数へ変換する変数変換ルールとを記憶する手段と、該構
文解析木の構成に従って該各ノードにに対応づけられた
実行プログラムを順に実行することで、該各ノードの構
文ルールに記述された第一の言語仕様を該言語変換ルー
ルに記述される第二の言語仕様に変換し、該第一の電子
機器のハード状態を該ハード状態変換ルールに記述され
る第二の電子機器のハード状態へ変換し、前記入力プロ
グラムに記述される変数を該変数変換ルールに記述され
る変数へ変換して第二の言語仕様のプログラムを生成す
る処理手段とを備えることで達成される。
もしくは、第一の言語仕様で記述されたプログラムを
第二の言語仕様で記述されたプログラムに変換する言語
変換器であって、第一の言語仕様で記述された入力プロ
グラムの各々のステップを所定の構文ルールに対応した
ノードに変換して該入力プログラムを該ノードの連結関
係で表現し、言語仕様の変換処理を実行する実行プログ
ラムを該各ノードに対応づけた構文解析木を生成する手
段と、該第一の言語仕様を該第二の言語仕様に変換する
言語変換ルールを記憶する手段と、該構文解析木の構成
に従って該各ノードに対応づけられた実行プログラムを
順に実行することで、該各ノードの構文ルールに記述さ
れた第一の言語仕様を該言語変換ルールに記述される第
二の言語仕様に変換して第二の言語仕様で記述したプロ
グラムを生成する処理手段とを備えることで達成され
る。
より具体的には、入力プログラムから解析処理部によ
って作成された中間ファイルである解析木に従って、各
々の解析木のノードに対応して動作する関数を持たせる
が、この関数に測定器の測定用プログラム実行途中のハ
ードウェア設定状態を表示するテーブルを作成する機能
を持った関数と、ハードウェアに依存した表現方法に変
換する手順が書かれたテーブルを参照して変換処理する
関数を持つことにより、ハードウェア依存プログラムの
変換機能を有する言語変換器と、上記言語変換器を、言
語変換に適した変換処理手順すなわち変更ルールを記述
できる変換規則記述言語の表現方法を採用し、その記述
に従ってC言語に合致するプログラムとして自動生成す
ることにより、変換器の生成工程を低減せしめる言語変
換器生成装置により達成される。
〔作用〕
上記言語変換器およびその生成装置は、測定用プログ
ラムのハード依存命令の機能をシミュレートとし、その
測定用プログラムの各々のステップでのハード状態を表
示するテーブルを作成することにより、入力プログラム
のハード依存プログラムコマンドとその時のハード状態
テーブルから最適な出力用テスタのコマンドに変換でき
る言語変換機を、人間が理解しやすい明示的な変換規則
の記述をC言語に翻訳することにより作成できるので、
システムの開発・保守が容易であってその変換器の開発
工数が低減できる。
〔実施例〕
以下に本発明の一実施例を第1図ないし第5図により
説明する。
第1図は本発明による言語変換器および生成装置の一
実施例を示すシステム構成図である。本システムは3要
素からできており、各言語の組合せ別に定義する変換規
則(変換ルールA,B)1と、変換規則1を入力してプロ
グラム変換器(言語変換器)を出力するプログラム変換
器自動生成部(言語変換器生成装置2)と、プログラム
変換器自動生成部2の出力であるプログラム変換器(言
語変換器3)とから構成される。この生成されたプログ
ラム変換器3はある機種のテスト用プログラム(プログ
ラムA,B)4が入力されると、目的とする別機種のテス
ト用プログラム(プログラムA,B)5を出力する。
上記の変換規則1は相異なる2つのテスタメーカのテ
スタ言語間の変換規則を属性文法記述によって定義した
もので一種の高級言語である。プログラム変換器自動生
成部2は変換規則1を翻訳して汎用言語プログラムを生
成するコンパイラであり、変換ルール翻訳処理部20によ
り変換規則1から語句入力部LEXソース21と、構文解釈
部YACCソース22と、変換処理部Cソース23とを作成し、
これをそれぞれのコンパイラにかけて機械語になおし、
リンケージして1つの実行可能なものにする機能24をも
つ。プログラム変換器3は生成された汎用言語を実行可
能な機械語にしたもので、この部分がユーザに提供され
るテスタ言語変換システムであり、ある機種のテスト用
プログラムを別機種のテスト用プログラムへの変換を行
なう。プログラム変換器3は入力部(解析処理部)7
と、変換(翻訳)処理部8と、出力部9と、作成される
解析木15と、属性付解析木16をもつ。
本システムの変換規則1をプログラム変換器自動生成
部2に入力することにより、コンピュータシステムが通
常備えている汎用言語であるC言語のソースに翻訳し、
これをコンパイルに実行可能な機械語にすることにより
プログラム変換器3が生成でき、この生成されたプログ
ラム変換器3に入力言語プログラム4を入力すると、そ
の処理結果として出力言語プログラム5が出力される。
第2図は第1図の生成されたプログラム変換器3の構
成と動作図である。本プログラム変換器(言語変換器3
は、入力言語プログラム4を解析処理部7に入力し、入
力言語の構文ルールに従って適用したルールを表すノー
ド11で構成された構文解析木15を作成する。この作成さ
れた解析木15を変換処理部8に入力し、解析木15のノー
ド11の適用ルールに対応する関数を解析木15の形式に従
って起動して処理を行い、かつハード依存変換表(テー
ブル)10を利用して変換処理を行い、この処理結果(属
性値)12の付いたノード11で構成された処理結果付解析
木16とハード状態テーブル13および変数テーブル14を作
成する。この処理結果付解析木16とハード状態テーブル
13および変数テーブル14の情報を出力部9に入力し、最
終的な出力用の言語仕様に合致するように処理結果を編
集して出力言語プログラム6(5)を作成し出力する。
つぎに第1図のプログラム変換器自動生成装置2の詳
細について説明する。
第3図は第1図のプログラム変換器3の処理機能を定
義する変換規則1の具体的な記述例図である。この変換
規則記述1は次のような構成になっている。
この各構成を説明すると次のようになる。
本システムは言語変換器3の入力言語の解析処理部7
を作成するのにUNIX(オペレーティングシステム)の標
準ツールであるLEXとYACCを利用する。したがって入力
言語4を文脈自由文法に従った言語であるとし、その文
法をBNF(Backus notation Form)で表現している。上
記の補助記述部とは、それをプログラムに翻訳したとき
に実行可能な形式にするために必要なソースを直接記述
した部分をいう。上記の構成で下記の部分が本システム
の変換規則記述1の一般的な様式である。
この様式の左部分がBNFで表現された入力言語4の文
法であり、〔%……%〕でかこまれた部分がその文法に
対応して変換処理を行うための手順が書かれる。
ついでこの変換規則記述1をプログラム変換器自動生
成部2で実際のC言語に変換する方法について説明す
る。まずこの変換規則記述1を変換ルール翻訳処理部20
で下記の手順により処理する。
(1)LEXソース翻訳 1.属性記述文のファイル名称に.lexを加えた名称のファ
イルを開く。
2.%#LEX補助記述部 前処理部#%を%{と%}を加
えてファイルに書く。
3.%&LEX補助記述部 中間処理部(1)&%をファイ
ルに書く。
4.%%をファイルに書く。
5.teriminal(token)を『“terminal"{TREE2(termin
al)}¥n』に翻訳してファイルに書く。同じterminal
は加えない。
6.%<LEX補助記述部 中間処理部(2)<%をファイ
ルに書く。
7.%%をファイルに書く。
8.%@LEX補助記述部 後処理部@%の後処理部をファ
イルに書く。
9.ファイルを閉じる。
(2)YACCソース翻訳 1.属性記述文のファイル名称に.yaeを加えた名称のファ
イルを開く。
2.%$YACC補助記述部 前処理部$%の前処理部をファ
イルに書く。%{ %}部に相当する。
3.terminal(token)を『%token terminal ¥n』に翻
訳してファイルに書く。同じterminalは加えない。
4.『%%¥n』を加える。
5.文法定義をファイルに書き{解析木作成のアクショ
ン}を加える。
nonterminal:文法要素 文法要素 ****{解析木作
成のアクション}¥n 6.『%%¥n』を加える。
7.%$YACC補助記述部 後処理部$%をファイルに書
く。
8.ファイルを閉じる。
{解析木作成のアクション}:{$$=TREE1(構文ル
ール番号,子ルール番号);LINK(n);lLINK(TREEn
(n,“delimiter"));} (3)属性計算ソース翻訳 1.属性記述文のファイル名称に.atrを加えた名称のファ
イルを開く。
2.〔!属性計算式補助記述部 前処理部!〕をCソース
に翻訳してファイルに書く。
3.属性値をnonterminalと組み合わせて関数名にする。
関数の型を定義し、staticを加える。
4.〔#属性計算式prologue#〕の同じ属性値の部分をC
ソースに翻訳してファイルに書く。
5.構文ルールの子ルール番号でcase文を作り、〔%属性
計算式case?%〕の同じ属性値の部分をCソースに翻訳
しcase文の一文にする。
6.〔$属性計算式epilogue$〕の同じ属性値の部分をC
ソースに翻訳してファイルに書く。
一つの属性値に対する関数を閉じる。
7.3.,4.,5.,6.について異なる属性値がある場合繰り返
す。
8.3.,4.,5.,6.,7.について異なるnonterminalがある場
合繰り返す。
9.〔@属性計算式補助記述部 後処理部@〕をCソース
に翻訳しファイルに書く。
10.ファイルを閉じる。
上記の構文解釈部のYACC用ソース22の出力結果を下記
に示す。
この語句入力部の字句解析用のLEXソース21と構文解
釈部の構文解析用のYACCソース22をLEXとYACCのコンパ
イラおよびリンケージ24にかけるとC言語ソースを出力
し、これが入力言語4を受理した構文解析木15を作る解
析処理部7になる。上記のYACCのプログラムにあるTREE
1( ),LINK( )などは解析木15を作るためのCソー
スのサブルーチンである。
第4図は第2図の構文解析木15の構造図である。この
解析木15は文法ルール番号(自動的に決める)のそれぞ
れのノード11の親子兄弟関係を表わす部分からなってい
る。たとえば第4図の階層Bは兄弟関係つまり文法則の
右側の文法要素を表わし、階層Aは左側のnonterminal
を表わしている。階層Cは階層Bの右側の文法要素が左
側のnonterminalになっている。つまり階層A,B,C,…の
ように複数段の階層で1つのプログラムを文法的に解釈
する。
第5図(a),(b)は第2図の入力言語4の解析木
15の具体例図である。第5図(a)の入力言語4に対す
る第5図(b)の解析木15の具体例を示し、OYA〜LAST
まで関係ずけられるノード番号になっている。〔 〕で
かこった部分がノード番号である。
ついで変換処理部Cソース23の翻訳処理部8の作成に
ついて説明する。上記の変換規則記述1の構成で、 なる1つのnonterminalについて、1つの処理動作に1
つのC言語の関数を生成する。その様式は下記のようで
ある。
この生成された関数は基本には翻訳処理した文字列の
ポインタを返し、下記のような属性値12としてその解析
木15のノード11に付加する。
属性値:XXXXで表す。(XXXX大文字) :属性計算式epilogueのreturn値である。
:属性計算式をCソースに翻訳したときnonterminalと
組み合わせて関数名になる。
つぎに、変換規則記述1の属性記述文についてC言語
に変換する方法を説明する。この属性記述文は次の種類
がある。
a.<変数定義文>:変数を定義する。変数は内部のみに
有効。
b.<属性定義文>:属性を定義する。属性は外部にも有
効。
c.<テーブル型定義文>:構造を持った属性の型を定義
する。
d.<テーブル生成文>:構造を持った属性を定義する。
e.<テーブル代入文>:構造を持った属性に同じ型の属
性の値を代入する。
f.<テーブル追加文>:構造を持った属性に値を追加す
る。
g.<テーブル内容判定文>:構造を持った属性の内容を
判定する。<条件判定>と同じ機能を持つ。
h.<単純文>:begin end;で括られた文。
i.<関数文>:システムによって用意された関数を用い
た文。
j.<文字列の加算>:文字列の加算を行う。
k.<条件分岐:IF−THEN−ELSE> l.<繰り返し処理:FOR> m.<条件判定> n.<コメント文>:コメント文。無視する。
上記の各属性記述文について、その属性記述形式と翻
訳は下記のようになる。
1.<変数定義文> a.<属性記述形式> 〔<Cソース>〕:C言語の宣言文そのまま <翻訳> Cソース:〔< >〕を外す。
b.<属性記述形式> 属性型名称 変数名称;:内部変数を属性型と同じにす
る。
<翻訳> 属性型名称 変数名称; 〔<C言語の型宣言(Cソース)>〕変数名称; 2.<属性定義文> 3.<テーブル型定義文> <属性記述形式> <属性定義文>と同じ。
<翻訳> <属性定義文>と同じ。
4.<テーブル生成文> <属性記述形式> table属性型名称 テーブル名称〔テーブルサイ
ズ〕; <翻訳> 属性型名称tableテーブル名称〔テーブルサイズ〕; 5.<テーブル代入文> 6.<テーブル追加文>:相続属性のテーブルには追加で
きない。
7.<テーブル内容判定文> <属性記述形式> a.(データ inテーブル名称) b.(データ inテーブル名称〔テーブル位置〕) c.(データ inテーブル名称→メンバ名) d.(データ inテーブル名称〔テーブル位置〕.メンバ
名) <翻訳> a.(tb search(データ,テーブル名称)) b.(tb search(データ,テーブル名称〔テーブル位
置〕)) c.(tb search(データ,テーブル名称→メンバ名)) e.(tb search(データ,テーブル名称〔テーブル位
置〕.メンバ名)) 8.<単純文> <属性記述形式> begin<文>end; <翻訳> {文} 9.<関数文> <属性記述形式> システム関数(引き数,引き数,引き数,***) <翻訳> Cソース関数(引き数(Cソース),引き数(Cソー
ス),***) 10.<文字列の加算> <属性記述形式> <翻訳>文字列の加算はすべてchar型のポインターで行
う。
11.<条件分岐:IF−THEN−ELSE> <属性記述形式> if<条件判定> then<文> else<文> <翻訳> if<条件判定(Cソース)> then<文(Cソース)
> else<文(Cソース)> 12.<条件分岐:SWITCH> 13.<繰り返し処理:FOR> <属性記述形式> for(式(Cソース),式(Cソース),式(Cソー
ス))<文> <翻訳> for(式(Cソース),式(Cソース),式(Cソー
ス)){<文(Cソース)>} 14.<条件判定> <属性記述形式> a.〔<Cソース>〕:条件判定をCソースそのままで記
述する。
b.〔<Cソース>〕<属性記述式>: <属性記述式>〔<Cソース>〕:条件判定をCソース
と属性記述式を組み合わせて記述する関係演算子と論理
演算子はどちらかに記述する。
c.<属性記述式>:条件判定を属性記述式で記述する。
条件判定の属性記述式は1か0をかえす。
<翻訳> a.(Cソース) b.(Cソース<属性記述式(Cソース)>) (<属性記述式(Cソース)>Cソース) c.(<属性記述式(Cソース)>) 15.<コメント文> <属性記述形式> /コメント/ <翻訳> /コメント/ ここでいう関数はnonterminal属性名で表わし、nonte
rminalごとに必要な属性値に対する属性名を持った関数
が1つ以上作成される。その具体例を下記に示す。
ここで<文字列の加算>については通常の加算の算術
式から_OUTという属性値を持つ出力用の文字列を作る関
数であり、この関数を集合すると1つのプログラムにな
る。また<テーブル生成文>、<テーブル追加文>、<
テーブル内容判定文>などを使用して、ハード状態テー
ブル13および変数テーブル14などの翻訳時に必要な情報
を生成することができ、またその内容を判定して翻訳の
条件として用いることができる。
上記の第2図のハード依存変換表は<テーブル生成文
>のときに値を設定するもので、下記のような引数の文
字列のパターンを判定して他の言語のハード依存コマン
ドの引数の表現になおすものである。これも上記の変換
処理記述の内で記述できる。
M(0.8UA)→11 M(8UA)→12 M(80UA)→13 M(800UA)→14 M(8MA)→15 M(80MA)→16 M(300MA)→なし 本システムによれば、出力される言語変換器がC言語
のソースのレベルにあるため自由に変更することができ
る点に効果がある。
〔発明の効果〕
本発明によれば、容易に多数のハードウェアに依存す
るコマンドを持つ言語の変換器が作成でき、またその言
語変換器の動作が明示的な変換規則記述によって決めら
れるため保守が容易になる効果がある。
【図面の簡単な説明】
第1図は本発明による言語変換器およびその生成装置の
一実施例を示すシステム構成図、第2図は第1図の生成
された変換器の構成と動作図、第3図は第1図の変換規
則の記述例図、第4図は第2図の解析木の構造図、第5
図(a),(b)は入力言語と解析木の具体例図であ
る。 1……変換規則(変換ルール) 2……プログラム変換器自動生成部(言語変換器生成装
置) 3……プログラム変換器(言語変換器) 4……入力言語プログラム 5,6……出力言語プログラム 7……解析処理部(入力部) 8……変換処理部、9……出力部 10……ハード依存変換表、11……ノード 12……処理結果(属性)、13……ハード状態テーブル 14……変数テーブル、16……処理結果付解析木 20……変換ルール翻訳処理部 21……語句入力部LEXソース 22……構文解釈部YACCソース 23……変換処理部Cソース 24……コンパイルおよびリンケージ
フロントページの続き (56)参考文献 情報処理学会 第26回 (昭和58年前 期) 全国大会講演論文集、P.433− 434 情報処理学会 第30回 (昭和60年前 期) 全国大会講演論文集、P.817− 818

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】第一の電子機器で使用する第一の言語仕様
    で記述されたプログラムを該第一の電子機器とハード構
    成の異なる第二の電子機器で使用する第二の言語仕様で
    記述されたプログラムに変換する言語変換器であって、 第一の言語仕様で記述された入力プログラムの各々のス
    テップを所定の構文ルールに対応したノードに変換して
    該入力プログラムを該ノードの連結関係で表現し、言語
    仕様の変換処理を実行する実行プログラムと該入力プロ
    グラムの各々のステップを順に実行した場合の第一の電
    子機器のハード状態とを該各ノードに対応づけて記述し
    た構文解析木を生成する手段と、 該第一の言語仕様を該第二の言語仕様に変換する言語変
    換ルールと、該第一の電子機器のハード状態を第二の電
    子機器のハード状態へ変換するハード状態変換ルールと
    を記憶する手段と、 該構文解析木の構成に従って該各ノードに対応づけられ
    た実行プログラムを順に実行することで、該各ノードの
    構文ルールに記述された第一の言語仕様を該言語変換ル
    ールに記述される第二の言語仕様に変換し、該第一の電
    子機器のハード状態を該ハード状態変換ルールに記述さ
    れる第二の電子機器のハード状態へ変換して第二の言語
    仕様で記述されたプログラムを生成する処理手段とを備
    えたことを特徴とする言語変換器。
  2. 【請求項2】第一の電子機器で使用する第一の言語仕様
    で記述されたプログラムを該第一の電子機器とハード構
    成の異なる第二の電子機器で使用する第二の言語仕様で
    記述されたプログラムに変換する言語変換器であって、 第一の言語仕様で記述された入力プログラムの各々のス
    テップを所定の構文ルールに対応したノードに変換して
    該入力プログラムを該ノードの連結関係で表現し、言語
    仕様の変換処理を実行する実行プログラムと該入力プロ
    グラムの各々のステップを順に実行した場合の第一の電
    子機器のハード状態と前記入力プログラムに記述される
    変数とを該各ノードに対応づけて記述した構文解析木を
    生成する手段と、 該第一の言語仕様を該第二の言語仕様に変換する言語変
    換ルールと、該第一の電子機器のハード状態を所定の第
    二の電子機器のハード状態へ変換するハード状態変換ル
    ールと、該入力プログラムに記述される変数を該第二の
    言語仕様で記述されるプログラムの変数へ変換する変数
    変換ルールとを記憶する手段と、 該構文解析木の構成に従って該各ノードにに対応づけら
    れた実行プログラムを順に実行することで、該各ノード
    の構文ルールに記述された第一の言語仕様を該言語変換
    ルールに記述される第二の言語仕様に変換し、該第一の
    電子機器のハード状態を該ハード状態変換ルールに記述
    される第二の電子機器のハード状態へ変換し、前記入力
    プログラムに記述される変数を該変数変換ルールに記述
    される変数へ変換して第二の言語仕様のプログラムを生
    成する処理手段とを備えたことを特徴とする言語変換
    器。
  3. 【請求項3】第一の言語仕様で記述されたプログラムを
    第二の言語仕様で記述されたプログラムに変換する言語
    変換器であって、 第一の言語仕様で記述された入力プログラムの各々のス
    テップを所定の構文ルールに対応したノードに変換して
    該入力プログラムを該ノードの連結関係で表現し、言語
    仕様の変換処理を実行する実行プログラムを該各ノード
    に対応づけた構文解析木を生成する手段と、 該第一の言語仕様を該第二の言語仕様に変換する言語変
    換ルールを記憶する手段と、 該構文解析木の構成に従って該各ノードに対応づけられ
    た実行プログラムを順に実行することで、該各ノードの
    構文ルールに記述された第一の言語仕様を該言語変換ル
    ールに記述される第二の言語仕様に変換して第二の言語
    仕様で記述したプログラムを生成する処理手段とを備え
    たことを特徴とする言語変換器。
  4. 【請求項4】前記構文解析木を生成するためのプログラ
    ムをLEX形式のプログラムとYACC形式のプログラムによ
    り生成し、前記実行プログラムをC形式のプログラムに
    より生成することを特徴とする請求項1から3のいずれ
    かに記載の言語変換器。
  5. 【請求項5】第一の電子機器で使用する第一の言語仕様
    で記述されたプログラムを該第一の電子機器とハード構
    成の異なる第二の電子機器で使用する第二の言語仕様で
    記述されたプログラムに変換する言語変換方法であっ
    て、 該第一の言語仕様を該第二の言語仕様に変換する言語変
    換ルールと、該第一の電子機器のハード状態を第二の電
    子機器のハード状態へ変換するハード状態変換ルールと
    を予め記憶しておき、 該第一の言語仕様で記述された入力プログラムの各々の
    ステップを所定の構文ルールに対応したノードに変換し
    て該入力プログラムを該ノードの連結関係で表現し、か
    つ言語仕様の変換処理を実行する実行プログラムと該入
    力プログラムの各々のステップを順に実行した場合の第
    一の電子機器のハード状態とを該各ノードに対応づけて
    記述した構文解析木を生成し、 該構文解析木の構成に従って該各ノードに対応づけられ
    た実行プログラムを順に実行することで、該各ノードの
    構文ルールに記述された第一の言語仕様を該言語変換ル
    ールに記述される第二の言語仕様に変換し、該第一の電
    子機器のハード状態を該ハード状態変換ルールに記述さ
    れる第二の電子機器のハード状態へ変換して第二の言語
    仕様で記述されたプログラムを生成することを特徴とす
    る言語変換方法。
  6. 【請求項6】第一の電子機器で使用する第一の言語仕様
    で記述されたプログラムを該第一の電子機器とハード構
    成の異なる第二の電子機器で使用する第二の言語仕様で
    記述されたプログラムに変換する言語変換方法であっ
    て、 該第一の言語仕様を該第二の言語仕様に変換する言語変
    換ルールと、該第一の電子機器のハード状態を所定の第
    二の電子機器のハード状態へ変換するハード状態変換ル
    ールと、該入力プログラムに記述される変数を該第二の
    言語仕様で記述されるプログラムの変数へ変換する変数
    変換ルールとを予め記憶しておき、 該第一の言語仕様で記述された入力プログラムの各々の
    ステップを所定の構文ルールに対応したノードに変換し
    て該入力プログラムを該ノードの連結関係で表現し、か
    つ言語仕様の変換処理を実行する実行プログラムと該入
    力プログラムの各々のステップを順に実行した場合の第
    一の電子機器のハード状態と前記入力プログラムに記述
    される変数とを該各ノードに対応づけて記述した構文解
    析木を生成し、 該構文解析木の構成に従って該各ノードにに対応づけら
    れた実行プログラムを順に実行することで、該各ノード
    の構文ルールに記述された第一の言語仕様を該言語変換
    ルールに記述される第二の言語仕様に変換し、該第一の
    電子機器のハード状態を該ハード状態変換ルールに記述
    される第二の電子機器のハード状態へ変換し、前記入力
    プログラムに記述される変数を該変数変換ルールに記述
    される変数へ変換して第二の言語仕様のプログラムを生
    成することを特徴とする言語変換方法。
  7. 【請求項7】第一の言語仕様で記述されたプログラムを
    第二の言語仕様で記述されたプログラムに変換する言語
    変換方法であって、 該第一の言語仕様を該第二の言語仕様に変換する言語変
    換ルールを予め記憶しておき、 該第一の言語仕様で記述された入力プログラムの各々の
    ステップを所定の構文ルールに対応したノードに変換し
    て該入力プログラムを該ノードの連結関係で表現し、か
    つ言語仕様の変換処理を実行する実行プログラムを該各
    ノードに対応づけた構文解析木を生成し、 該構文解析木の構成に従って該各ノードに対応づけられ
    た実行プログラムを順に実行することで、該各ノードの
    構文ルールに記述された第一の言語仕様を該言語変換ル
    ールに記述される第二の言語仕様に変換して第二の言語
    仕様で記述したプログラムを生成することを特徴とする
    言語変換方法。
  8. 【請求項8】前記構文解析木を生成するためのプログラ
    ムをLEX形式のプログラムとYACC形式のプログラムによ
    り生成し、前記実行プログラムをC形式のプログラムに
    より生成したことを特徴とする請求項5から7のいずれ
    かに記載の言語変換方法。
JP63244093A 1988-09-30 1988-09-30 言語変換器及び言語変換方法 Expired - Lifetime JP2675100B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63244093A JP2675100B2 (ja) 1988-09-30 1988-09-30 言語変換器及び言語変換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63244093A JP2675100B2 (ja) 1988-09-30 1988-09-30 言語変換器及び言語変換方法

Publications (2)

Publication Number Publication Date
JPH0293732A JPH0293732A (ja) 1990-04-04
JP2675100B2 true JP2675100B2 (ja) 1997-11-12

Family

ID=17113641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63244093A Expired - Lifetime JP2675100B2 (ja) 1988-09-30 1988-09-30 言語変換器及び言語変換方法

Country Status (1)

Country Link
JP (1) JP2675100B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640319A (en) * 1991-03-18 1997-06-17 Lucent Technologies Inc. Switch control methods and apparatus
JP4724387B2 (ja) * 2004-06-24 2011-07-13 富士通株式会社 プログラム変換プログラム、プログラム変換装置およびプログラム変換方法
JP6906155B2 (ja) * 2016-03-01 2021-07-21 直太 稲本 リバースエンジニアリング可能なソフトウェア自動生成装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
情報処理学会 第26回 (昭和58年前期) 全国大会講演論文集、P.433−434
情報処理学会 第30回 (昭和60年前期) 全国大会講演論文集、P.817−818

Also Published As

Publication number Publication date
JPH0293732A (ja) 1990-04-04

Similar Documents

Publication Publication Date Title
EP1307828B1 (en) Xml-robot
Ranta Grammatical framework
Renggli et al. Embedding languages without breaking tools
Angelov et al. PGF: A portable run-time format for type-theoretical grammars
Wilcock Pipelines, templates and transformations: XML for natural language generation
Tablan et al. User-friendly ontology authoring using a controlled language.
FI111107B (fi) Menetelmä translaattorin kehittämiseksi ja vastaava järjestelmä
EP2096534A1 (en) System representation and handling techniques
JP2007502459A (ja) 対話システム用音声入力インタフェース
JP2675100B2 (ja) 言語変換器及び言語変換方法
Izquierdo et al. Gra2MoL: A domain specific transformation language for bridging grammarware to modelware in software modernization
Jourdan et al. The OLGA attribute grammar description language: Design, implementation and evaluation
Renggli Dynamic language embedding with homogeneous tool support
Mosses Component-based description of programming languages
Bülow Proof visualization for the lean 4 theorem prover
Wąsowski et al. Internal Domain-Specific Languages
Nicolov et al. Approximate generation from non-hierarchical representations
Paige et al. Towards model transformation with TXL
Culpepper et al. From macros to dsls: The evolution of racket
Haddad et al. Extensible dynamic analysis for jml: A case study with loop annotations
Mishchenko et al. New functionalities of the system for processing natural language specifications and its operating environment
Amal et al. Software tool for translating pseudocode to a programming language
Renggli Dynamic Language Embedding
Neto et al. Compiler construction-a pedagogical approach
David Attribute grammars for C++ disambiguation