JPH04278633A - 図形式表現関数型プログラムの編集・実行方法 - Google Patents
図形式表現関数型プログラムの編集・実行方法Info
- Publication number
- JPH04278633A JPH04278633A JP4161391A JP4161391A JPH04278633A JP H04278633 A JPH04278633 A JP H04278633A JP 4161391 A JP4161391 A JP 4161391A JP 4161391 A JP4161391 A JP 4161391A JP H04278633 A JPH04278633 A JP H04278633A
- Authority
- JP
- Japan
- Prior art keywords
- program
- functional program
- execution
- functional
- lambda
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明はソフトウェアの生産性を
向上するための図形式表現関数型プログラムの編集・実
行方法に係り、特に計算機上で関数型プログラムをビジ
ュアル化して編集・実行することにより、プログラムの
開発,保守を効率化するのに好適な図形式表現関数型プ
ログラムの編集・実行方法に関する。
向上するための図形式表現関数型プログラムの編集・実
行方法に係り、特に計算機上で関数型プログラムをビジ
ュアル化して編集・実行することにより、プログラムの
開発,保守を効率化するのに好適な図形式表現関数型プ
ログラムの編集・実行方法に関する。
【0002】
【従来の技術】従来、広く一般に公知な技術として、テ
キスト形式での関数型プログラムの入力・編集が行われ
ていた。また、関数型プログラムのテストにおいては、
関数型プログラムの実行の基本単位である適用の一つを
中断点として設定し、中断点まで実行を行った後は適用
を一つずつ実行するなどの方法で、プログラムの実行が
意図したものであるかどうかを調べていた。
キスト形式での関数型プログラムの入力・編集が行われ
ていた。また、関数型プログラムのテストにおいては、
関数型プログラムの実行の基本単位である適用の一つを
中断点として設定し、中断点まで実行を行った後は適用
を一つずつ実行するなどの方法で、プログラムの実行が
意図したものであるかどうかを調べていた。
【0003】手続き型プログラムに対しては、特開昭6
2−89137 号にあるように、テキスト形式で記述
されたプログラムを図形式で記述されたプログラムに変
換する技術,逆に図形式で記述されたプログラムをテキ
スト形式で記述されたプログラムに変換する技術,図形
式で記述されたプログラムを対話的に編集する技術があ
った。また、特開昭62−231344号にあるように
、手続き型プログラムの実行状況を視覚的にわかりやす
く表示することで、プログラムのテストを容易にする技
術があった。
2−89137 号にあるように、テキスト形式で記述
されたプログラムを図形式で記述されたプログラムに変
換する技術,逆に図形式で記述されたプログラムをテキ
スト形式で記述されたプログラムに変換する技術,図形
式で記述されたプログラムを対話的に編集する技術があ
った。また、特開昭62−231344号にあるように
、手続き型プログラムの実行状況を視覚的にわかりやす
く表示することで、プログラムのテストを容易にする技
術があった。
【0004】また、関数型プログラムの図式表現形式と
しては、雑紙「bit」,Vol.22,No.12,
pp.1281−1289に記載のラムダ図などが提案
されている。
しては、雑紙「bit」,Vol.22,No.12,
pp.1281−1289に記載のラムダ図などが提案
されている。
【0005】
【発明が解決しようとする課題】上記従来の関数型プロ
グラムのテキスト形式表現での入力・編集方法では、プ
ログラム言語の構文で規定される単なる記号に対しても
、オペレータが注意を払う必要がある。関数型プログラ
ムにおいては、一般に、構文上の記号として括弧が多く
現れるため、手続き型プログラムのテキスト形式表現で
の入力・編集の場合以上に注意を払う必要がある,入力
ミスをすることが多いなど、非効率的であった。また、
得られたプログラムも括弧の対応がわかりにくいために
非常に読みにくいといった問題点もあった。さらに、関
数型プログラムの実行の基本単位は適用であるが、上記
従来のテスト方法では、実行された適用が元のプログラ
ムにおけるどの適用であるのかがわかりにくい、関数型
プログラムの実行状況を表す、プログラムの式の形が、
ある適用の実行の前後でどのように変化しているのかを
捉えにくいといった問題点があった。
グラムのテキスト形式表現での入力・編集方法では、プ
ログラム言語の構文で規定される単なる記号に対しても
、オペレータが注意を払う必要がある。関数型プログラ
ムにおいては、一般に、構文上の記号として括弧が多く
現れるため、手続き型プログラムのテキスト形式表現で
の入力・編集の場合以上に注意を払う必要がある,入力
ミスをすることが多いなど、非効率的であった。また、
得られたプログラムも括弧の対応がわかりにくいために
非常に読みにくいといった問題点もあった。さらに、関
数型プログラムの実行の基本単位は適用であるが、上記
従来のテスト方法では、実行された適用が元のプログラ
ムにおけるどの適用であるのかがわかりにくい、関数型
プログラムの実行状況を表す、プログラムの式の形が、
ある適用の実行の前後でどのように変化しているのかを
捉えにくいといった問題点があった。
【0006】上記テキスト形式プログラムを図形式プロ
グラムに変換する技術,図形式プログラムをテキスト形
式プログラムに変換する技術,図形式プログラムを対話
的に編集する技術,実行状況を視覚的にわかりやすく表
示する技術は、手続き型プログラムを対象としたもので
あり、関数型プログラムについては考慮していない。ま
た、上記bit 記載のラムダ図は、単に関数型プログ
ラムの図式表現方法を述べているにすぎず、計算機上で
図形式関数型プログラムを編集・実行する方法について
は何ら述べていない。したがって、関数型プログラムの
開発・保守が効率化されていないという問題点があった
。
グラムに変換する技術,図形式プログラムをテキスト形
式プログラムに変換する技術,図形式プログラムを対話
的に編集する技術,実行状況を視覚的にわかりやすく表
示する技術は、手続き型プログラムを対象としたもので
あり、関数型プログラムについては考慮していない。ま
た、上記bit 記載のラムダ図は、単に関数型プログ
ラムの図式表現方法を述べているにすぎず、計算機上で
図形式関数型プログラムを編集・実行する方法について
は何ら述べていない。したがって、関数型プログラムの
開発・保守が効率化されていないという問題点があった
。
【0007】本発明の目的は、このような従来の問題点
を解決し、関数型プログラムをビジュアル化し、図形式
表現の上で関数型プログラムの編集・実行を行うための
方法を与えることである。
を解決し、関数型プログラムをビジュアル化し、図形式
表現の上で関数型プログラムの編集・実行を行うための
方法を与えることである。
【0008】
【課題を解決するための手段】上記の目的を達成するた
め、関数型プログラムのテキスト形式表現の構文規則に
対応して図形式表現の構文規則を定義するステップと、
これらの構文規則によってテキスト形式表現の関数型プ
ログラムを図形式表現の関数型プログラムに変換するス
テップと、逆に、図形式表現の関数型プログラムをテキ
スト形式表現の関数型プログラムに変換するステップと
、図形式表現の関数型プログラムを対話的に編集するス
テップと、関数の適用の実行の前後における図形式表現
の変形規則を定義し、該規則を用いることによって、あ
るいは図形式表現の関数型プログラムを変換して得られ
るテキスト形式表現の関数型プログラムを、該テキスト
形式に対する実行規則を用いて実行し、その結果である
テキスト表現を変換して得られる図形式表現を表示する
ことによって、関数型プログラムの実行を該関数型プロ
グラムを表す図形の変形として示すステップを有し、ま
た、リダクション戦略を実行の開始時点または実行の任
意の時点で指定するステップ,関数の引数の宣言を指定
すると該引数が束縛している、関数本体中の仮引数の出
現を図形上で示すステップ,実行の任意の時点から過去
の実行過程をさかのぼって該時点よりも以前のプログラ
ムに戻るステップ,実行過程を画面を分割した複数のコ
マに表示するステップ,実行の各ステップにおいて実行
した適用を元のプログラム中で色などを変えて示すステ
ップ,同時に表示された複数の表現の異なるプログラム
の一つにおいてある領域を指定すると、該領域に対応す
る他の表現での領域を色などを変えて表示するステップ
の内のいくつかをも有することを特徴とする図形式表現
関数型プログラムの編集・実行方法。
め、関数型プログラムのテキスト形式表現の構文規則に
対応して図形式表現の構文規則を定義するステップと、
これらの構文規則によってテキスト形式表現の関数型プ
ログラムを図形式表現の関数型プログラムに変換するス
テップと、逆に、図形式表現の関数型プログラムをテキ
スト形式表現の関数型プログラムに変換するステップと
、図形式表現の関数型プログラムを対話的に編集するス
テップと、関数の適用の実行の前後における図形式表現
の変形規則を定義し、該規則を用いることによって、あ
るいは図形式表現の関数型プログラムを変換して得られ
るテキスト形式表現の関数型プログラムを、該テキスト
形式に対する実行規則を用いて実行し、その結果である
テキスト表現を変換して得られる図形式表現を表示する
ことによって、関数型プログラムの実行を該関数型プロ
グラムを表す図形の変形として示すステップを有し、ま
た、リダクション戦略を実行の開始時点または実行の任
意の時点で指定するステップ,関数の引数の宣言を指定
すると該引数が束縛している、関数本体中の仮引数の出
現を図形上で示すステップ,実行の任意の時点から過去
の実行過程をさかのぼって該時点よりも以前のプログラ
ムに戻るステップ,実行過程を画面を分割した複数のコ
マに表示するステップ,実行の各ステップにおいて実行
した適用を元のプログラム中で色などを変えて示すステ
ップ,同時に表示された複数の表現の異なるプログラム
の一つにおいてある領域を指定すると、該領域に対応す
る他の表現での領域を色などを変えて表示するステップ
の内のいくつかをも有することを特徴とする図形式表現
関数型プログラムの編集・実行方法。
【0009】
【作用】関数型プログラムは、引数への関数の適用,関
数の引数の抽象化および変数・定数を基本要素として帰
納的に構成されている。したがって、それらに対して図
形式シンボルを定義することにより、与えられたテキス
ト形式の関数型プログラムと等価な情報を持つ図形式の
関数型プログラムをボトムアップに構成することができ
る。したがって、テキスト形式表現の基本要素と図形式
表現の基本要素との対応を与える規則を用意することに
より、両表現間の相互変換が可能である。図形式の関数
型プログラムの編集では、図形式表現の構文を定義する
規則を用いることにより、対話的な編集が可能となる。 また、関数型プログラムの実行の基本単位である適用の
実行に対して、図形式表現上の変形操作を対応づける変
形規則を用意することにより、あるいは、図形式表現の
関数型プログラムを変換して得られるテキスト形式表現
の関数型プログラムを該テキスト形式に対する実行規則
を用いて実行し、その結果であるテキスト表現を変換し
て得られる図形式表現を表示することにより、関数型プ
ログラムの実行状況を図形式のプログラムの変形として
視覚的にわかりやすく表現することができる。さらに、
各表現に対する構文規則と変形規則を用いることにより
、関数の引数の宣言を指定すると該引数が束縛している
、関数本体中の仮引数の出現を図形上で示すことができ
る。また、実行の1ステップの実行毎に、プログラム表
現の変形操作の内容とその結果であるプログラム表現を
実行履歴として記憶することにより、実行過程をさかの
ぼること,実行過程をコマ分割表示すること,実行の各
ステップにおいて実行した適用を元のプログラム中で示
すことができる。さらに、表現の異なる複数のプログラ
ムのプログラム要素の対応を表すプログラム要素対応表
を、表現間の変換時に作成,記憶することにより、ある
一つのプログラム表現において指定した領域に対応する
、他のプログラム表現における領域を表示することがで
きる。また、同一のモデルに基づくテキスト形式表現と
図形式表現に限らず、一般に複数の表現の間の相互変換
規則を用意することにより、ある任意の表現のプログラ
ムを、指定された他の表現のプログラムに変換すること
が可能である。
数の引数の抽象化および変数・定数を基本要素として帰
納的に構成されている。したがって、それらに対して図
形式シンボルを定義することにより、与えられたテキス
ト形式の関数型プログラムと等価な情報を持つ図形式の
関数型プログラムをボトムアップに構成することができ
る。したがって、テキスト形式表現の基本要素と図形式
表現の基本要素との対応を与える規則を用意することに
より、両表現間の相互変換が可能である。図形式の関数
型プログラムの編集では、図形式表現の構文を定義する
規則を用いることにより、対話的な編集が可能となる。 また、関数型プログラムの実行の基本単位である適用の
実行に対して、図形式表現上の変形操作を対応づける変
形規則を用意することにより、あるいは、図形式表現の
関数型プログラムを変換して得られるテキスト形式表現
の関数型プログラムを該テキスト形式に対する実行規則
を用いて実行し、その結果であるテキスト表現を変換し
て得られる図形式表現を表示することにより、関数型プ
ログラムの実行状況を図形式のプログラムの変形として
視覚的にわかりやすく表現することができる。さらに、
各表現に対する構文規則と変形規則を用いることにより
、関数の引数の宣言を指定すると該引数が束縛している
、関数本体中の仮引数の出現を図形上で示すことができ
る。また、実行の1ステップの実行毎に、プログラム表
現の変形操作の内容とその結果であるプログラム表現を
実行履歴として記憶することにより、実行過程をさかの
ぼること,実行過程をコマ分割表示すること,実行の各
ステップにおいて実行した適用を元のプログラム中で示
すことができる。さらに、表現の異なる複数のプログラ
ムのプログラム要素の対応を表すプログラム要素対応表
を、表現間の変換時に作成,記憶することにより、ある
一つのプログラム表現において指定した領域に対応する
、他のプログラム表現における領域を表示することがで
きる。また、同一のモデルに基づくテキスト形式表現と
図形式表現に限らず、一般に複数の表現の間の相互変換
規則を用意することにより、ある任意の表現のプログラ
ムを、指定された他の表現のプログラムに変換すること
が可能である。
【0010】
【実施例】以下、本発明のいくつかの実施例を図面を用
いて詳細に説明する。以下では、関数型プログラム記述
のためのテキスト形式表現としてラムダ式を、図形式表
現としてラムダ図を採用した実施例について述べる。
いて詳細に説明する。以下では、関数型プログラム記述
のためのテキスト形式表現としてラムダ式を、図形式表
現としてラムダ図を採用した実施例について述べる。
【0011】図1は、本発明の第1の実施例を示す、関
数型プログラム図式表示編集実行システムの機能構成図
である。入力装置101は、ユーザがシステムに対して
コマンドなどを入力するためのものであり、入力コマン
ド解析機能102は、ユーザからの入力を解析して、ユ
ーザの要求を各処理機能に伝える。表示装置103は、
後述する図4や図5のようなプログラムを表示するため
の装置であり、表示機能104は表示対象の位置や、色
などの属性を決定する。ラムダ式構文規則105,ラム
ダ図構文規則106はそれぞれ、プログラムの記述に使
用するラムダ式,ラムダ図の構文を定義する規則である
。ラムダ式プログラム記憶機能107,ラムダ図プログ
ラム記憶機能108はそれぞれ、ラムダ式,ラムダ図で
記述された関数型プログラムを記憶し、必要に応じてそ
れを取り出す。ラムダ式実行規則109,ラムダ図実行
規則110はそれぞれ、ラムダ式,ラムダ図について、
関数型プログラムの実行の単位である関数の適用に対す
る式,図形の変形を定義する規則である。ラムダ式・ラ
ムダ図変換規則111は、プログラムの各構成要素に対
して、ラムダ式とラムダ図との間の対応を定義する規則
である。 編集機能112は、ラムダ式プログラム記憶機能107
またはラムダ図プログラム記憶機能108に記憶されて
いるプログラムを、それぞれ、ラムダ式構文規則105
,ラムダ図構文規則106に基づいて対話的に編集する
。変換機能113は、ラムダ式プログラム記憶機能10
7またはラムダ図プログラム記憶機能108に記憶され
ているプログラムを、ラムダ式・ラムダ図変換規則11
1に基づいて、ラムダ式プログラムからラムダ図プログ
ラムへ、あるいはラムダ図プログラムからラムダ式プロ
グラムへ変換する。実行機能114は、ラムダ式プログ
ラム記憶機能107またはラムダ図プログラム記憶機能
108に記憶されているプログラムを、それぞれ、ラム
ダ式実行規則109,ラムダ図実行規則110に基づい
て、プログラムを表す式,図形を変形する。
数型プログラム図式表示編集実行システムの機能構成図
である。入力装置101は、ユーザがシステムに対して
コマンドなどを入力するためのものであり、入力コマン
ド解析機能102は、ユーザからの入力を解析して、ユ
ーザの要求を各処理機能に伝える。表示装置103は、
後述する図4や図5のようなプログラムを表示するため
の装置であり、表示機能104は表示対象の位置や、色
などの属性を決定する。ラムダ式構文規則105,ラム
ダ図構文規則106はそれぞれ、プログラムの記述に使
用するラムダ式,ラムダ図の構文を定義する規則である
。ラムダ式プログラム記憶機能107,ラムダ図プログ
ラム記憶機能108はそれぞれ、ラムダ式,ラムダ図で
記述された関数型プログラムを記憶し、必要に応じてそ
れを取り出す。ラムダ式実行規則109,ラムダ図実行
規則110はそれぞれ、ラムダ式,ラムダ図について、
関数型プログラムの実行の単位である関数の適用に対す
る式,図形の変形を定義する規則である。ラムダ式・ラ
ムダ図変換規則111は、プログラムの各構成要素に対
して、ラムダ式とラムダ図との間の対応を定義する規則
である。 編集機能112は、ラムダ式プログラム記憶機能107
またはラムダ図プログラム記憶機能108に記憶されて
いるプログラムを、それぞれ、ラムダ式構文規則105
,ラムダ図構文規則106に基づいて対話的に編集する
。変換機能113は、ラムダ式プログラム記憶機能10
7またはラムダ図プログラム記憶機能108に記憶され
ているプログラムを、ラムダ式・ラムダ図変換規則11
1に基づいて、ラムダ式プログラムからラムダ図プログ
ラムへ、あるいはラムダ図プログラムからラムダ式プロ
グラムへ変換する。実行機能114は、ラムダ式プログ
ラム記憶機能107またはラムダ図プログラム記憶機能
108に記憶されているプログラムを、それぞれ、ラム
ダ式実行規則109,ラムダ図実行規則110に基づい
て、プログラムを表す式,図形を変形する。
【0012】図2は、本発明を実施するためのシステム
の構成を示すブロック図である。入力装置101および
表示装置103は、図1におけるものと同一である。主
記憶装置201,外部記憶装置202は、共にプログラ
ムなどを記憶するためのものである。CPU203は本
発明を実施するための各処理を行う。
の構成を示すブロック図である。入力装置101および
表示装置103は、図1におけるものと同一である。主
記憶装置201,外部記憶装置202は、共にプログラ
ムなどを記憶するためのものである。CPU203は本
発明を実施するための各処理を行う。
【0013】図3は、図1の機能構成図の各機能に基づ
いて行う処理の全体を示したフローチャートである。入
力装置101から入力コマンドを受け取って(301)
コマンドを判定(302)する。その判定結果に基づい
て、プログラムの編集を行うための処理(303),ラ
ムダ式プログラムからラムダ図プログラムへまたはラム
ダ図プログラムからラムダ式プログラムへ変換するため
の処理(304),プログラムを実行,表示するための
処理(305)およびプログラムを外部記憶装置に格納
するなどを行ってシステムを終了する処理(306)を
行う。処理303,304,305は、それぞれ、図1
の機能112,113,114を用いる。また、処理3
06は機能107および108を用いる。
いて行う処理の全体を示したフローチャートである。入
力装置101から入力コマンドを受け取って(301)
コマンドを判定(302)する。その判定結果に基づい
て、プログラムの編集を行うための処理(303),ラ
ムダ式プログラムからラムダ図プログラムへまたはラム
ダ図プログラムからラムダ式プログラムへ変換するため
の処理(304),プログラムを実行,表示するための
処理(305)およびプログラムを外部記憶装置に格納
するなどを行ってシステムを終了する処理(306)を
行う。処理303,304,305は、それぞれ、図1
の機能112,113,114を用いる。また、処理3
06は機能107および108を用いる。
【0014】図4はラムダ式で記述されたプログラムの
例であり、図5はラムダ図で記述されたプログラムの例
である。図4と図5は同一のプログラムを表している。
例であり、図5はラムダ図で記述されたプログラムの例
である。図4と図5は同一のプログラムを表している。
【0015】図6,図7は、それぞれ、ラムダ式構文規
則105,ラムダ図構文規則106の具体的な内容を示
している。図6および図7において、“<関数>”のよ
うに“<>”で囲まれたものは非終端記号であり、必要
なプログラム要素の種類を表す。また、実際には<変数
名>,<定数名>に対して、プログラム中で使用される
個々の具体的な変数名,定数名の集合を定義する規則(
終端規則)があるが、図においては省略している。図6
の規則601は、プログラムが関数から成ることを定義
する規則である。規則602は、二つの関数を並べ、丸
括弧で囲んだものが関数であることを表し、引数である
関数に対する関数の適用を意味する。規則603は、“
λ”,変数名,“.”,関数をこの順序で並べて丸括弧
で囲んだものが関数であることを表し、関数の引数の抽
象化を意味する。規則604,605はそれぞれ、変数
名,定数名が関数であることを示している。図7の規則
701〜705はそれぞれ、ラムダ式に関する規則60
1〜605と同様の意味を持つ、ラムダ図に関する構文
規則である。
則105,ラムダ図構文規則106の具体的な内容を示
している。図6および図7において、“<関数>”のよ
うに“<>”で囲まれたものは非終端記号であり、必要
なプログラム要素の種類を表す。また、実際には<変数
名>,<定数名>に対して、プログラム中で使用される
個々の具体的な変数名,定数名の集合を定義する規則(
終端規則)があるが、図においては省略している。図6
の規則601は、プログラムが関数から成ることを定義
する規則である。規則602は、二つの関数を並べ、丸
括弧で囲んだものが関数であることを表し、引数である
関数に対する関数の適用を意味する。規則603は、“
λ”,変数名,“.”,関数をこの順序で並べて丸括弧
で囲んだものが関数であることを表し、関数の引数の抽
象化を意味する。規則604,605はそれぞれ、変数
名,定数名が関数であることを示している。図7の規則
701〜705はそれぞれ、ラムダ式に関する規則60
1〜605と同様の意味を持つ、ラムダ図に関する構文
規則である。
【0016】図8は、編集機能112の実現の一例を示
すフローチャートであり、図3の処理303の詳細であ
る。この実現では、ラムダ式構文規則105またはラム
ダ図構文規則106を用いて、既に入力されたプログラ
ムの部分に対して、さらに入力が必要なプログラムの構
成要素の種類とその位置を表示することにより、ユーザ
を誘導して編集を行う。ここでは、未入力であるプログ
ラム要素の種類とそのプログラム中の位置を記憶するた
めにスタックを用いている。以下、図8に従って説明す
る。
すフローチャートであり、図3の処理303の詳細であ
る。この実現では、ラムダ式構文規則105またはラム
ダ図構文規則106を用いて、既に入力されたプログラ
ムの部分に対して、さらに入力が必要なプログラムの構
成要素の種類とその位置を表示することにより、ユーザ
を誘導して編集を行う。ここでは、未入力であるプログ
ラム要素の種類とそのプログラム中の位置を記憶するた
めにスタックを用いている。以下、図8に従って説明す
る。
【0017】まず、編集対象が新たなプログラムである
のかそれとも既存プログラムであるのかをユーザに指定
させる(801)。新規プログラムの作成の場合、入力
すべきプログラム要素としてプログラム,入力位置とし
てプログラム全体を表す初期位置をスタックにプッシュ
する(802)。既存プログラムの編集の場合、まずユ
ーザから編集プログラム名を受け取り(803)、ラム
ダ式プログラム記憶機能107またはラムダ図プログラ
ム記憶機能108から指定プログラムを読み込み、表示
機能104によって表示する(804)。次に、プログ
ラム中のどの箇所を変更するのかをユーザから受け取る
(805)。そして、プログラムをラムダ式構文規則1
05またはラムダ図構文規則106を用いて構文解析す
ることにより、変更箇所の非終端記号を求め(806)
、求めた非終端記号と変更位置をスタックにプッシュす
る(807)。新規プログラムの作成,既存プログラム
の変更のいずれの場合も、スタックをポップして、次に
ユーザが入力すべき非終端記号とそのプログラム中での
位置を得る(808)。続いて、得られた非終端記号を
左辺に持つ構文規則をラムダ式構文規則105またはラ
ムダ図構文規則106から求める(809)。このとき
、一般には同一のプログラム要素を左辺に持つ構文規則
は複数存在するので、ユーザに問い合わせることにより
一つに決定する。得られた構文規則の右辺に括弧や、線
,箱などの図形要素(終端記号)がある場合には、それ
を処理808で得た位置に表示する(810)。また、
右辺に非終端記号がある場合には、それが表すプログラ
ム要素の種類とその位置をスタックにプッシュする(8
11)。処理811の後でスタックが空であるか否かを
判定し(812)、スタックが空であれば更に入力すべ
きプログラム要素はなく、処理を終える。スタックが空
でない場合には、808〜812の一連の処理を繰り返
す。
のかそれとも既存プログラムであるのかをユーザに指定
させる(801)。新規プログラムの作成の場合、入力
すべきプログラム要素としてプログラム,入力位置とし
てプログラム全体を表す初期位置をスタックにプッシュ
する(802)。既存プログラムの編集の場合、まずユ
ーザから編集プログラム名を受け取り(803)、ラム
ダ式プログラム記憶機能107またはラムダ図プログラ
ム記憶機能108から指定プログラムを読み込み、表示
機能104によって表示する(804)。次に、プログ
ラム中のどの箇所を変更するのかをユーザから受け取る
(805)。そして、プログラムをラムダ式構文規則1
05またはラムダ図構文規則106を用いて構文解析す
ることにより、変更箇所の非終端記号を求め(806)
、求めた非終端記号と変更位置をスタックにプッシュす
る(807)。新規プログラムの作成,既存プログラム
の変更のいずれの場合も、スタックをポップして、次に
ユーザが入力すべき非終端記号とそのプログラム中での
位置を得る(808)。続いて、得られた非終端記号を
左辺に持つ構文規則をラムダ式構文規則105またはラ
ムダ図構文規則106から求める(809)。このとき
、一般には同一のプログラム要素を左辺に持つ構文規則
は複数存在するので、ユーザに問い合わせることにより
一つに決定する。得られた構文規則の右辺に括弧や、線
,箱などの図形要素(終端記号)がある場合には、それ
を処理808で得た位置に表示する(810)。また、
右辺に非終端記号がある場合には、それが表すプログラ
ム要素の種類とその位置をスタックにプッシュする(8
11)。処理811の後でスタックが空であるか否かを
判定し(812)、スタックが空であれば更に入力すべ
きプログラム要素はなく、処理を終える。スタックが空
でない場合には、808〜812の一連の処理を繰り返
す。
【0018】図9に、図8のフローチャートによる編集
機能112を用いて、ラムダ図プログラムを新規作成す
る時の対話の例を示す。画面表示では、スタックされて
いるプログラム要素を点線角括弧で示し、処理808で
ポップして得られたプログラム要素を実線角括弧で示し
ている。
機能112を用いて、ラムダ図プログラムを新規作成す
る時の対話の例を示す。画面表示では、スタックされて
いるプログラム要素を点線角括弧で示し、処理808で
ポップして得られたプログラム要素を実線角括弧で示し
ている。
【0019】まず、処理802でプッシュされたプログ
ラム要素<プログラム>が処理808でポップされ、画
面に表示される(901)。処理809では構文規則7
01が一意に選ばれ、処理811によって右辺のプログ
ラム要素<関数>がプッシュされる。これが処理808
でポップされて画面に表示される(902)が、処理8
09では<関数>を左辺に持つ構文規則は702〜70
5があり、一意に決定できない。そこで、ユーザが抽象
化を意味する規則703を指定している(903)。こ
れを受けて、処理810で画面に箱と線を表示する。処
理811では規則703の右辺のプログラム要素<関数
>,<変数名>をこの順でプッシュする。処理808で
は<変数名>がポップされるが、処理809では変数名
を与える終端規則は一般に多数あり、一意には決定でき
ない。 従って、画面では変数名の入力をユーザに促す(904
)。これに対してユーザが変数名“x”を入力し(90
5)、それが処理810で画面に表示される。また、終
端規則は右辺にプログラム要素を持たないので、処理8
11でプッシュされるプログラム要素はない。次の処理
808では、903で指定された規則703に対する<
関数>がポップされる(906)。以下、同様に処理8
08〜812を、判定812においてスタックが空にな
るまで繰り返す。
ラム要素<プログラム>が処理808でポップされ、画
面に表示される(901)。処理809では構文規則7
01が一意に選ばれ、処理811によって右辺のプログ
ラム要素<関数>がプッシュされる。これが処理808
でポップされて画面に表示される(902)が、処理8
09では<関数>を左辺に持つ構文規則は702〜70
5があり、一意に決定できない。そこで、ユーザが抽象
化を意味する規則703を指定している(903)。こ
れを受けて、処理810で画面に箱と線を表示する。処
理811では規則703の右辺のプログラム要素<関数
>,<変数名>をこの順でプッシュする。処理808で
は<変数名>がポップされるが、処理809では変数名
を与える終端規則は一般に多数あり、一意には決定でき
ない。 従って、画面では変数名の入力をユーザに促す(904
)。これに対してユーザが変数名“x”を入力し(90
5)、それが処理810で画面に表示される。また、終
端規則は右辺にプログラム要素を持たないので、処理8
11でプッシュされるプログラム要素はない。次の処理
808では、903で指定された規則703に対する<
関数>がポップされる(906)。以下、同様に処理8
08〜812を、判定812においてスタックが空にな
るまで繰り返す。
【0020】図10にラムダ式・ラムダ図変換規則11
1の具体的な内容を示す。各プログラム要素の種類に対
して、ラムダ式での表現とラムダ図での表現との間の対
応を示し、それらの間が相互に変換可能であることを表
している。
1の具体的な内容を示す。各プログラム要素の種類に対
して、ラムダ式での表現とラムダ図での表現との間の対
応を示し、それらの間が相互に変換可能であることを表
している。
【0021】図11は、変換機能113の実現の一例を
示すフローチャートであり、図3の処理304の詳細で
ある。この実現では、ラムダ式・ラムダ図変換規則11
1を用いて、ラムダ式,ラムダ図の一方の表現の変換元
プログラムを、他方の変換先形式のプログラムへボトム
アップに変換する。以下、図11に従って説明する。ま
ず、変換元プログラムの名前を受け取る(1101)。 そのプログラムが以前の処理によって既に読み込まれて
いるか否かを判定し(1102)、読み込まれていなけ
れば読み込む(1103)。次に、読み込んだプログラ
ムから、部分表現を持たないか、または部分表現全てが
変換先の表現のプログラム要素を一つ選ぶ(1104)
。続いて、選択したプログラム要素をラムダ式・ラムダ
図変換規則111に基づいて、変換先の表現のプログラ
ム要素に変換する(1105)。そして、処理1104
で選択したプログラム要素を処理1105の変換結果で
置き換え(1106)、それを画面に表示する(110
7)。以上で得られたプログラムは、一般には変換元の
表現のプログラム要素と変換先の表現のプログラム要素
が混在しているので、変換先の表現のプログラム要素の
みであるか否かを判定する(1108)。変換先の表現
のプログラム要素のみである場合には、プログラム全体
の変換が完了しているので、処理を終える。そうでない
場合には、得られたプログラムに対して、1104〜1
108の一連の処理を繰り返す。
示すフローチャートであり、図3の処理304の詳細で
ある。この実現では、ラムダ式・ラムダ図変換規則11
1を用いて、ラムダ式,ラムダ図の一方の表現の変換元
プログラムを、他方の変換先形式のプログラムへボトム
アップに変換する。以下、図11に従って説明する。ま
ず、変換元プログラムの名前を受け取る(1101)。 そのプログラムが以前の処理によって既に読み込まれて
いるか否かを判定し(1102)、読み込まれていなけ
れば読み込む(1103)。次に、読み込んだプログラ
ムから、部分表現を持たないか、または部分表現全てが
変換先の表現のプログラム要素を一つ選ぶ(1104)
。続いて、選択したプログラム要素をラムダ式・ラムダ
図変換規則111に基づいて、変換先の表現のプログラ
ム要素に変換する(1105)。そして、処理1104
で選択したプログラム要素を処理1105の変換結果で
置き換え(1106)、それを画面に表示する(110
7)。以上で得られたプログラムは、一般には変換元の
表現のプログラム要素と変換先の表現のプログラム要素
が混在しているので、変換先の表現のプログラム要素の
みであるか否かを判定する(1108)。変換先の表現
のプログラム要素のみである場合には、プログラム全体
の変換が完了しているので、処理を終える。そうでない
場合には、得られたプログラムに対して、1104〜1
108の一連の処理を繰り返す。
【0022】図12に、図4のラムダ式プログラムを変
換して図5のラムダ図プログラムを得る過程の画面表示
例を示す。なお、処理1104において選択可能なプロ
グラム要素は複数あり、図ではそれら全てを波線によっ
て示し、一度に変換,置換したように示している。
換して図5のラムダ図プログラムを得る過程の画面表示
例を示す。なお、処理1104において選択可能なプロ
グラム要素は複数あり、図ではそれら全てを波線によっ
て示し、一度に変換,置換したように示している。
【0023】図13,図14は、それぞれ、ラムダ式実
行規則109,ラムダ図実行規則110の具体的な内容
を示している。規則1301,規則1401は引数が抽
象化された関数の適用を表す規則(β規則)であり、右
辺の表す式は、それぞれ、規則1303〜1308,規
則1403〜1408で定義される。また、規則130
2,規則1402は算術演算などの組込関数の適用を表
す規則(δ規則)であり、実際には個々の組込関数に対
して定義する。このように、各実行規則では、プログラ
ムの実行単位である関数の適用を、プログラムの部分式
または部分を表す図形の変形として定義する。なお、図
14では、図13の対応する規則にある注釈を省略して
いる。
行規則109,ラムダ図実行規則110の具体的な内容
を示している。規則1301,規則1401は引数が抽
象化された関数の適用を表す規則(β規則)であり、右
辺の表す式は、それぞれ、規則1303〜1308,規
則1403〜1408で定義される。また、規則130
2,規則1402は算術演算などの組込関数の適用を表
す規則(δ規則)であり、実際には個々の組込関数に対
して定義する。このように、各実行規則では、プログラ
ムの実行単位である関数の適用を、プログラムの部分式
または部分を表す図形の変形として定義する。なお、図
14では、図13の対応する規則にある注釈を省略して
いる。
【0024】図15は、実行機能114の実現の一例を
示すフローチャートであり、図3の処理305の詳細で
ある。プログラム中の実行可能な部分(レデックス)を
選び出し、ラムダ式実行規則109あるいはラムダ図実
行規則110に従ってその部分を変形する。関数型プロ
グラムの実行においては、レデックスの選び方(リダク
ション戦略)が問題となり、いくつかのバリエーション
がある。図15に示す実現は、プログラムの実行の開始
時点または実行の1ステップ毎にリダクション戦略を指
定できるようにしたものである。以下、図15に従って
説明する。
示すフローチャートであり、図3の処理305の詳細で
ある。プログラム中の実行可能な部分(レデックス)を
選び出し、ラムダ式実行規則109あるいはラムダ図実
行規則110に従ってその部分を変形する。関数型プロ
グラムの実行においては、レデックスの選び方(リダク
ション戦略)が問題となり、いくつかのバリエーション
がある。図15に示す実現は、プログラムの実行の開始
時点または実行の1ステップ毎にリダクション戦略を指
定できるようにしたものである。以下、図15に従って
説明する。
【0025】まず、実行プログラムの名前を受け取る(
1501)。そのプログラムが以前の処理によって既に
読み込まれているか否かを判定し(1502)、読み込
まれていなければ読み込む(1503)。次に、リダク
ション戦略を1ステップ毎に指定するか否かをユーザと
の対話によって決定し(1504)、それに応じてフラ
グ変数の値をセットする(1505,1506)。そし
て、リダクション戦略を決定し(1507)、それに基
づいて実行するレデックスを選択する(1508)。こ
こでレデックスがない場合にはプログラムはそれ以上実
行できないので処理を終え、レデックスがある場合には
処理1510以降を行う(1509)。処理1510で
は、選択したレデックスをラムダ式実行規則109また
はラムダ式実行規則110に基づいて変形する。そして
、レデックス変形後のプログラムを画面に表示する(1
511)。以上の処理1508〜1511の一連の処理
が1ステップの実行に相当する。その後、リダクション
戦略を1ステップ毎に指定するか否かを表す、先のフラ
グの値を調べ(1512)、1ステップ毎に指定する場
合にはレデックスの指定以降の1507〜1512の処
理を、そうでない場合には1508〜1511の処理を
繰り返す。
1501)。そのプログラムが以前の処理によって既に
読み込まれているか否かを判定し(1502)、読み込
まれていなければ読み込む(1503)。次に、リダク
ション戦略を1ステップ毎に指定するか否かをユーザと
の対話によって決定し(1504)、それに応じてフラ
グ変数の値をセットする(1505,1506)。そし
て、リダクション戦略を決定し(1507)、それに基
づいて実行するレデックスを選択する(1508)。こ
こでレデックスがない場合にはプログラムはそれ以上実
行できないので処理を終え、レデックスがある場合には
処理1510以降を行う(1509)。処理1510で
は、選択したレデックスをラムダ式実行規則109また
はラムダ式実行規則110に基づいて変形する。そして
、レデックス変形後のプログラムを画面に表示する(1
511)。以上の処理1508〜1511の一連の処理
が1ステップの実行に相当する。その後、リダクション
戦略を1ステップ毎に指定するか否かを表す、先のフラ
グの値を調べ(1512)、1ステップ毎に指定する場
合にはレデックスの指定以降の1507〜1512の処
理を、そうでない場合には1508〜1511の処理を
繰り返す。
【0026】図16に、図5のラムダ図プログラムを実
行した場合の画面表示の例を示す。ここではリダクショ
ン戦略として、最左リダクション戦略と最内リダクショ
ン戦略を考える。画面1601のラムダ図には、160
2,1603の二つのレデックスがある。最左リダクシ
ョン戦略ではレデックス1602が実行規則1401で
変形され、画面1604のラムダ図となる。このラムダ
図には唯一のレデックス1605があり、これを規則1
402(組込関数“*”に対する規則)で変形すると、
画面1608のラムダ図となる。また、画面1601の
ラムダ図に対する最内リダクション戦略による実行では
、レデックス1603が変形されて画面1606のラム
ダ図となる。そして、レデックス1607を変形して画
面1608のラムダ図となる。画面1608のラムダ図
は、レデックス1609の変形により、プログラムの最
終実行結果を表す、画面1610のラムダ図となり、実
行が終了する。
行した場合の画面表示の例を示す。ここではリダクショ
ン戦略として、最左リダクション戦略と最内リダクショ
ン戦略を考える。画面1601のラムダ図には、160
2,1603の二つのレデックスがある。最左リダクシ
ョン戦略ではレデックス1602が実行規則1401で
変形され、画面1604のラムダ図となる。このラムダ
図には唯一のレデックス1605があり、これを規則1
402(組込関数“*”に対する規則)で変形すると、
画面1608のラムダ図となる。また、画面1601の
ラムダ図に対する最内リダクション戦略による実行では
、レデックス1603が変形されて画面1606のラム
ダ図となる。そして、レデックス1607を変形して画
面1608のラムダ図となる。画面1608のラムダ図
は、レデックス1609の変形により、プログラムの最
終実行結果を表す、画面1610のラムダ図となり、実
行が終了する。
【0027】以上に示すように、関数型プログラムのテ
キスト形式表現,図形式表現のそれぞれに対する構文規
則,実行規則および両表現間の変換規則を与えることに
より、テキスト形式表現の関数型プログラムを図形式表
現の関数型プログラムに変換すること,逆に図形式表現
の関数型プログラムをテキスト形式表現の関数型プログ
ラムに変換すること,図形式表現の関数型プログラムを
対話的に編集することおよび関数型プログラムの実行を
図形の変形として示すことが可能となる。
キスト形式表現,図形式表現のそれぞれに対する構文規
則,実行規則および両表現間の変換規則を与えることに
より、テキスト形式表現の関数型プログラムを図形式表
現の関数型プログラムに変換すること,逆に図形式表現
の関数型プログラムをテキスト形式表現の関数型プログ
ラムに変換すること,図形式表現の関数型プログラムを
対話的に編集することおよび関数型プログラムの実行を
図形の変形として示すことが可能となる。
【0028】ラムダ式プログラム,ラムダ図プログラム
の実行では、それぞれ構文規則603,703の構文を
用いて宣言された関数の仮引数が、関数本体の仮引数の
どの出現を束縛しているのかが問題となる。これを定義
しているのが、それぞれ実行規則1303〜1307,
1403〜1407である。これらの規則を用い、ある
仮引数の宣言に対して、該変数が束縛している関数本体
中の出現を、他の部分とは色などの属性を変えて表示す
ることにより、図形上でわかりやすく示すことが可能で
ある。この例を、図17に示す。図17では、他の部分
とは色を変えて表示している部分を太線によって示して
いる。ユーザが仮引数の宣言である箱1701を指定し
たのに対し、その箱の持つ変数が束縛する束縛変数を持
つ箱1702を、色を変えて表示している。
の実行では、それぞれ構文規則603,703の構文を
用いて宣言された関数の仮引数が、関数本体の仮引数の
どの出現を束縛しているのかが問題となる。これを定義
しているのが、それぞれ実行規則1303〜1307,
1403〜1407である。これらの規則を用い、ある
仮引数の宣言に対して、該変数が束縛している関数本体
中の出現を、他の部分とは色などの属性を変えて表示す
ることにより、図形上でわかりやすく示すことが可能で
ある。この例を、図17に示す。図17では、他の部分
とは色を変えて表示している部分を太線によって示して
いる。ユーザが仮引数の宣言である箱1701を指定し
たのに対し、その箱の持つ変数が束縛する束縛変数を持
つ箱1702を、色を変えて表示している。
【0029】ラムダ図実行規則110を与えずに、ラム
ダ図プログラムの実行をラムダ図上の変形として表す処
理の実現を図18に示す。ここで、図15と同じ参照番
号は同じものを指す。実行プログラムの読み込みとリダ
クション戦略の指定方法の決定(1501〜1506)
の後、与えられたラムダ図を変換機能を用いてラムダ式
に変換する(1801)。そうして得られたラムダ式に
対して、レデックスの選択とラムダ式実行規則109に
基づく実行を行う(1508〜1510)。そして、実
行結果であるラムダ式を変換機能を用いて再びラムダ図
に変換し(1802)、変換結果のラムダ図を表示する
(1803)。以上の処理がラムダ図プログラムの1ス
テップの実行であり、処理1510の結果のラムダ式に
レデックスがある限り,そのラムダ式に対して1508
以降の処理を繰り返す。
ダ図プログラムの実行をラムダ図上の変形として表す処
理の実現を図18に示す。ここで、図15と同じ参照番
号は同じものを指す。実行プログラムの読み込みとリダ
クション戦略の指定方法の決定(1501〜1506)
の後、与えられたラムダ図を変換機能を用いてラムダ式
に変換する(1801)。そうして得られたラムダ式に
対して、レデックスの選択とラムダ式実行規則109に
基づく実行を行う(1508〜1510)。そして、実
行結果であるラムダ式を変換機能を用いて再びラムダ図
に変換し(1802)、変換結果のラムダ図を表示する
(1803)。以上の処理がラムダ図プログラムの1ス
テップの実行であり、処理1510の結果のラムダ式に
レデックスがある限り,そのラムダ式に対して1508
以降の処理を繰り返す。
【0030】図19に、図18に示した処理によって図
5のラムダ式を実行した例を示す。画面1901のラム
ダ図を処理1801によって変換すると、ラムダ式19
02が得られる。これをラムダ式実行規則に基づいて実
行すると、1903〜1905のようになるが、その実
行の1ステップ毎のラムダ式をラムダ図に変換して表示
したのが、画面1906〜1908である。
5のラムダ式を実行した例を示す。画面1901のラム
ダ図を処理1801によって変換すると、ラムダ式19
02が得られる。これをラムダ式実行規則に基づいて実
行すると、1903〜1905のようになるが、その実
行の1ステップ毎のラムダ式をラムダ図に変換して表示
したのが、画面1906〜1908である。
【0031】このように、図形式表現に対する実行規則
を与えない場合には、変換機能によるテキスト形式・図
形式間の相互変換と,テキスト形式表現に対する実行規
則に基づくテキスト形式プログラムの実行により、プロ
グラムの実行を図形式表現の変形として示すことが可能
である。
を与えない場合には、変換機能によるテキスト形式・図
形式間の相互変換と,テキスト形式表現に対する実行規
則に基づくテキスト形式プログラムの実行により、プロ
グラムの実行を図形式表現の変形として示すことが可能
である。
【0032】上記の実施例により、関数型プログラムの
実行を図形の変形として視覚的にわかりやすく表現する
ことが可能である。しかし、単にプログラムの実行を図
形の変形として表示するだけでは、実行の各ステップで
の実行内容が捉えにくい、元のプログラム全体と各ステ
ップで実行されるプログラム要素との関係がわかりにく
い、といった問題がある。次の実施例は、このような問
題を考慮したものである。
実行を図形の変形として視覚的にわかりやすく表現する
ことが可能である。しかし、単にプログラムの実行を図
形の変形として表示するだけでは、実行の各ステップで
の実行内容が捉えにくい、元のプログラム全体と各ステ
ップで実行されるプログラム要素との関係がわかりにく
い、といった問題がある。次の実施例は、このような問
題を考慮したものである。
【0033】図20に示す実施例は、基本的には図1に
示した実施例に実行履歴記憶機能2001を加えたもの
である。実行履歴記憶機能は、1ステップの実行毎の実
行内容すなわちプログラム表現の変形操作、および実行
結果であるプログラム表現を記憶する。
示した実施例に実行履歴記憶機能2001を加えたもの
である。実行履歴記憶機能は、1ステップの実行毎の実
行内容すなわちプログラム表現の変形操作、および実行
結果であるプログラム表現を記憶する。
【0034】実行機能2002は図1の実行機能114
の機能に加え、1ステップの実行毎に、変形操作と実行
結果を実行履歴記憶機能に渡す機能を持つ。図21は、
実行機能2002の実現の一例を示すフローチャートで
ある。図21のフローチャートにおいて、図15と同じ
参照番号は同じものを指す。処理2101は、それ以前
に実行履歴記憶機能2001に記憶されている実行履歴
に、プログラム表現の変形操作の内容とその結果である
プログラム表現を(但し、プログラムの読み込みの直後
は読み込んだプログラムのみを)追加する処理である。
の機能に加え、1ステップの実行毎に、変形操作と実行
結果を実行履歴記憶機能に渡す機能を持つ。図21は、
実行機能2002の実現の一例を示すフローチャートで
ある。図21のフローチャートにおいて、図15と同じ
参照番号は同じものを指す。処理2101は、それ以前
に実行履歴記憶機能2001に記憶されている実行履歴
に、プログラム表現の変形操作の内容とその結果である
プログラム表現を(但し、プログラムの読み込みの直後
は読み込んだプログラムのみを)追加する処理である。
【0035】図22に、図5のラムダ図プログラムを最
左リダクション戦略を用いて実行したときの、実行終了
時点における実行履歴記憶機能2001の記憶内容を示
す。例えば、ステップ1の変形操作では、ステップ0の
プログラム表現中の2202を2203以下の部分表現
で置換することによってステップ1のプログラム表現中
の2206となり、ステップ0のプログラム表現中の2
201はそのままステップ1の2205となっているこ
となどを表している。なお、図22の変形操作の欄では
、変化のないプログラム要素についての記述を一部省略
している。
左リダクション戦略を用いて実行したときの、実行終了
時点における実行履歴記憶機能2001の記憶内容を示
す。例えば、ステップ1の変形操作では、ステップ0の
プログラム表現中の2202を2203以下の部分表現
で置換することによってステップ1のプログラム表現中
の2206となり、ステップ0のプログラム表現中の2
201はそのままステップ1の2205となっているこ
となどを表している。なお、図22の変形操作の欄では
、変化のないプログラム要素についての記述を一部省略
している。
【0036】関数型プログラムでは、手続き型プログラ
ムの変数への値の代入文のように副作用をもたらすこと
がなく、式やプログラムが表す値は、それが現れる環境
に依存しない(参照透明性を持つ)ので、実行履歴記憶
機能で記憶しているプログラム表現は、それ自体プログ
ラムとみなすことができる。したがって、編集機能11
2,変換機能113,実行機能2002に対する対象プ
ログラムの指定において、実行履歴記憶機能に記憶され
ているプログラム表現を指定することにより、実行過程
をさかのぼって、実行の任意の時点のプログラム表現に
対して編集,変換,実行を行うことが可能である。
ムの変数への値の代入文のように副作用をもたらすこと
がなく、式やプログラムが表す値は、それが現れる環境
に依存しない(参照透明性を持つ)ので、実行履歴記憶
機能で記憶しているプログラム表現は、それ自体プログ
ラムとみなすことができる。したがって、編集機能11
2,変換機能113,実行機能2002に対する対象プ
ログラムの指定において、実行履歴記憶機能に記憶され
ているプログラム表現を指定することにより、実行過程
をさかのぼって、実行の任意の時点のプログラム表現に
対して編集,変換,実行を行うことが可能である。
【0037】実行履歴記憶機能に記憶されているプログ
ラム表現の表示法の一例を図23に示す。表示装置の画
面を、プログラムの実行が終了した時点で記憶されてい
るプログラム表現の個数のコマに分割し、それぞれのコ
マに一つのプログラム表現を表示するものである。図2
2では、表示装置の画面を2301〜2304の4つの
コマに分割し、図22に示した実行履歴記憶機能に記憶
されているプログラム表現を表示している。コマ230
1に表示されたプログラム表現は実行機能に与えられた
元のプログラムであり、コマ2302以降に表示された
プログラム表現は、その実行過程を1ステップ毎に表示
したものである。これにより、編集機能112,変換機
能113,実行機能2002に対する対象プログラムの
指定で、実行履歴記憶機能に記憶されているプログラム
表現を指定するためには、画面のコマのいずれか一つを
指定すれば良く、実行過程をさかのぼって、実行の任意
の時点のプログラム表現表現に対して編集,変換,実行
を行うことが容易になる。実行履歴を用いた実行過程の
他の表示例として、実行の各ステップが元のプログラム
のどのプログラム要素の実行であるかを、元のプログラ
ムにおいて、実行されたプログラム要素に対応するプロ
グラム要素の部分を、他の部分とは色などの属性を変え
て表示することにより示すことがある。これは、実行履
歴に加えられるプログラム表現を逐次的にコマに表示す
ると共に、それ以前の実行履歴中の変形操作をさかのぼ
り、実行したプログラム要素が対応する、元のプログラ
ムにおけるプログラム要素を求めることで可能である。
ラム表現の表示法の一例を図23に示す。表示装置の画
面を、プログラムの実行が終了した時点で記憶されてい
るプログラム表現の個数のコマに分割し、それぞれのコ
マに一つのプログラム表現を表示するものである。図2
2では、表示装置の画面を2301〜2304の4つの
コマに分割し、図22に示した実行履歴記憶機能に記憶
されているプログラム表現を表示している。コマ230
1に表示されたプログラム表現は実行機能に与えられた
元のプログラムであり、コマ2302以降に表示された
プログラム表現は、その実行過程を1ステップ毎に表示
したものである。これにより、編集機能112,変換機
能113,実行機能2002に対する対象プログラムの
指定で、実行履歴記憶機能に記憶されているプログラム
表現を指定するためには、画面のコマのいずれか一つを
指定すれば良く、実行過程をさかのぼって、実行の任意
の時点のプログラム表現表現に対して編集,変換,実行
を行うことが容易になる。実行履歴を用いた実行過程の
他の表示例として、実行の各ステップが元のプログラム
のどのプログラム要素の実行であるかを、元のプログラ
ムにおいて、実行されたプログラム要素に対応するプロ
グラム要素の部分を、他の部分とは色などの属性を変え
て表示することにより示すことがある。これは、実行履
歴に加えられるプログラム表現を逐次的にコマに表示す
ると共に、それ以前の実行履歴中の変形操作をさかのぼ
り、実行したプログラム要素が対応する、元のプログラ
ムにおけるプログラム要素を求めることで可能である。
【0038】図24に図22の実行履歴に従って実行状
況を表示した例を示す。図24では、他の部分とは色を
変えて表示している部分を太線によって示している。ま
た、元のプログラムのみではなく、画面を分割したコマ
に表示された実行履歴内のプログラム表現における、実
行したプログラム要素に対応するプログラム要素も太線
によって示している。画面2401の太線で示した引数
を抽象化した関数の適用を実行して、画面2402のス
テップ1のラムダ図となる。次に、画面2402の太線
で示した乗算の実行によって、画面2403のステップ
2のラムダ図となる。同様に、画面2403の太線部の
実行で、画面2404のステップ3のラムダ図となる。
況を表示した例を示す。図24では、他の部分とは色を
変えて表示している部分を太線によって示している。ま
た、元のプログラムのみではなく、画面を分割したコマ
に表示された実行履歴内のプログラム表現における、実
行したプログラム要素に対応するプログラム要素も太線
によって示している。画面2401の太線で示した引数
を抽象化した関数の適用を実行して、画面2402のス
テップ1のラムダ図となる。次に、画面2402の太線
で示した乗算の実行によって、画面2403のステップ
2のラムダ図となる。同様に、画面2403の太線部の
実行で、画面2404のステップ3のラムダ図となる。
【0039】上記の実施例により、関数型プログラムの
実行を視覚的にわかりやすく表示することができる。し
かし、上記の実施例においては、あるプログラムのテキ
スト形式表現と図形式表現との対応が明確ではない。次
の実施例は、このような問題を考慮したものである。
実行を視覚的にわかりやすく表示することができる。し
かし、上記の実施例においては、あるプログラムのテキ
スト形式表現と図形式表現との対応が明確ではない。次
の実施例は、このような問題を考慮したものである。
【0040】図25に示す実施例は、基本的には図20
に示した実施例にプログラム要素対応記憶機能2501
を加えたものである。プログラム要素対応記憶機能は、
テキスト形式表現のプログラムのプログラム要素と、図
形式表現のプログラムのプログラム要素との対応を、プ
ログラム要素対応表の形で記憶する。プログラム要素対
応表は、テキスト形式表現から図形式表現,または図形
式表現からテキスト形式表現への変換時に、変換機能2
502によって作成される。
に示した実施例にプログラム要素対応記憶機能2501
を加えたものである。プログラム要素対応記憶機能は、
テキスト形式表現のプログラムのプログラム要素と、図
形式表現のプログラムのプログラム要素との対応を、プ
ログラム要素対応表の形で記憶する。プログラム要素対
応表は、テキスト形式表現から図形式表現,または図形
式表現からテキスト形式表現への変換時に、変換機能2
502によって作成される。
【0041】プログラム要素対応表の例を図26に示す
。図26(c)のプログラム要素対応表は、図26(a
)のラムダ式プログラムと図26(b)のラムダ図プロ
グラムに対するものである。要素番号#1は、図26(
a)のラムダ式プログラムにおける定数“+”であり、
図26(b)のラムダ図プログラムにおける箱2601
と対応すること,要素番号#7は、要素番号#1の要素
の、要素番号#2の要素に対する適用であり、図26(
b)のラムダ図プログラムにおいては適用2607と対
応することなどを表す。また、2613の項目は、プロ
グラム全体が要素番号#12の要素である適用から成る
ことを表す。
。図26(c)のプログラム要素対応表は、図26(a
)のラムダ式プログラムと図26(b)のラムダ図プロ
グラムに対するものである。要素番号#1は、図26(
a)のラムダ式プログラムにおける定数“+”であり、
図26(b)のラムダ図プログラムにおける箱2601
と対応すること,要素番号#7は、要素番号#1の要素
の、要素番号#2の要素に対する適用であり、図26(
b)のラムダ図プログラムにおいては適用2607と対
応することなどを表す。また、2613の項目は、プロ
グラム全体が要素番号#12の要素である適用から成る
ことを表す。
【0042】変換機能2502は図1の変換機能113
に加え、1プログラム要素を変換する度に、変換元プロ
グラム要素と変換結果プログラム要素との対応を表す項
目をプログラム要素対応表に加える機能を持つ。図27
は、変換機能2502の実現の一例を示すフローチャー
トである。図27のフローチャートにおいて、図11と
同じ参照番号は同じものを指す。処理2701は、処理
1104で選択したプログラム要素と、それを処理11
05で変換して得られたプログラム要素との対応を表す
項目をプログラム要素対応表に加える処理である。また
、処理2702は、変換の終了に際して、処理2701
で最後に加えた項目に対する要素番号を、プログラム全
体を表す要素番号(例えば図26の項目2613におけ
る#12)とする処理である。
に加え、1プログラム要素を変換する度に、変換元プロ
グラム要素と変換結果プログラム要素との対応を表す項
目をプログラム要素対応表に加える機能を持つ。図27
は、変換機能2502の実現の一例を示すフローチャー
トである。図27のフローチャートにおいて、図11と
同じ参照番号は同じものを指す。処理2701は、処理
1104で選択したプログラム要素と、それを処理11
05で変換して得られたプログラム要素との対応を表す
項目をプログラム要素対応表に加える処理である。また
、処理2702は、変換の終了に際して、処理2701
で最後に加えた項目に対する要素番号を、プログラム全
体を表す要素番号(例えば図26の項目2613におけ
る#12)とする処理である。
【0043】表示機能によってプログラムを表示する際
に、テキスト形式表現,図形式表現のプログラムを両方
表示し、その一方のプログラムのある部分を指定すると
、他方のプログラムにおける、該指定された部分に対応
する部分を他の部分とは色などの属性を変えて表示する
ことにより、その対応を視覚的にわかりやすく示すこと
が可能となる。
に、テキスト形式表現,図形式表現のプログラムを両方
表示し、その一方のプログラムのある部分を指定すると
、他方のプログラムにおける、該指定された部分に対応
する部分を他の部分とは色などの属性を変えて表示する
ことにより、その対応を視覚的にわかりやすく示すこと
が可能となる。
【0044】図28に、ラムダ式プログラムとラムダ図
プログラムの、対応するプログラム部分の表示例を示す
。図28では、他の部分とは色を変えて表示している部
分を、太線によって示している。分割された同一画面上
にラムダ式プログラムとラムダ図プログラムが表示され
、前者に対してユーザがラムダ式プログラムのプログラ
ム部分2801を指定すると、ラムダ図プログラムにお
いて対応するプログラム部分2802を、他の部分とは
色を変えて表示する。
プログラムの、対応するプログラム部分の表示例を示す
。図28では、他の部分とは色を変えて表示している部
分を、太線によって示している。分割された同一画面上
にラムダ式プログラムとラムダ図プログラムが表示され
、前者に対してユーザがラムダ式プログラムのプログラ
ム部分2801を指定すると、ラムダ図プログラムにお
いて対応するプログラム部分2802を、他の部分とは
色を変えて表示する。
【0045】以上の実施例では、同一の計算モデルに基
づくテキスト形式表現と図形式表現、特にラムダ計算に
基づいたラムダ式とラムダ図を扱っている。関数型プロ
グラムにはその他に、データフローモデル,コンビネー
タモデルなど、多くの計算モデルがある。次の実施例は
、一つのモデルに基づくテキスト形式表現と図形式表現
に限らず、一般に異なるモデルに基づく、複数の関数型
プログラムの表現形式を扱うものである。
づくテキスト形式表現と図形式表現、特にラムダ計算に
基づいたラムダ式とラムダ図を扱っている。関数型プロ
グラムにはその他に、データフローモデル,コンビネー
タモデルなど、多くの計算モデルがある。次の実施例は
、一つのモデルに基づくテキスト形式表現と図形式表現
に限らず、一般に異なるモデルに基づく、複数の関数型
プログラムの表現形式を扱うものである。
【0046】図29に示す実施例は、関数型プログラム
の表現形式として、ラムダ図と、コンビネータモデルに
基づくテキスト形式表現,図形式表現であるコンビネー
タ項,コンビネータグラフとを有するものである。
の表現形式として、ラムダ図と、コンビネータモデルに
基づくテキスト形式表現,図形式表現であるコンビネー
タ項,コンビネータグラフとを有するものである。
【0047】図30(a)にコンビネータ項,図30(
b)にコンビネータグラフによるプログラムの例を示す
。いずれも、基本コンビネータとしてS,K,Iの三つ
のコンビネータを採用した場合の、図5のラムダ図プロ
グラムと同一の処理を表すプログラムである。
b)にコンビネータグラフによるプログラムの例を示す
。いずれも、基本コンビネータとしてS,K,Iの三つ
のコンビネータを採用した場合の、図5のラムダ図プロ
グラムと同一の処理を表すプログラムである。
【0048】このようなモデルの異なる表現形式に対し
ても、構文規則,実行規則および表現形式間の変換規則
を用意することにより、同一の枠組みで扱うことが可能
である。
ても、構文規則,実行規則および表現形式間の変換規則
を用意することにより、同一の枠組みで扱うことが可能
である。
【0049】
【発明の効果】本発明によれば、計算機上での関数型プ
ログラムの入力・編集に際して、関数型プログラムを図
形式でビジュアルに表現することにより、テキスト形式
で入力・編集を行う場合に比較して、括弧などの構文上
の記号の必要がなく入力ミスを防げる点で効率よく作業
を行うことができ、得られた図形式表現の関数型プログ
ラムもテキスト形式表現の関数型プログラムに比較して
読みやすい。さらに、プログラム開発に不可欠なプログ
ラムのテストにおいても、プログラムの実行が図形式表
現上で行われるので実行状況の把握が容易になり、テス
トの効率が改善される。また、元のプログラムと各ステ
ップで実行される適用との関係,実行の各ステップでの
実行内容,テキスト形式表現の関数型プログラムと図形
式表現の関数型プログラムとの対応を図形式表現上で示
すことができる。したがって、関数型プログラムの開発
および保守全体の効率を向上することができるという効
果がある。
ログラムの入力・編集に際して、関数型プログラムを図
形式でビジュアルに表現することにより、テキスト形式
で入力・編集を行う場合に比較して、括弧などの構文上
の記号の必要がなく入力ミスを防げる点で効率よく作業
を行うことができ、得られた図形式表現の関数型プログ
ラムもテキスト形式表現の関数型プログラムに比較して
読みやすい。さらに、プログラム開発に不可欠なプログ
ラムのテストにおいても、プログラムの実行が図形式表
現上で行われるので実行状況の把握が容易になり、テス
トの効率が改善される。また、元のプログラムと各ステ
ップで実行される適用との関係,実行の各ステップでの
実行内容,テキスト形式表現の関数型プログラムと図形
式表現の関数型プログラムとの対応を図形式表現上で示
すことができる。したがって、関数型プログラムの開発
および保守全体の効率を向上することができるという効
果がある。
【図1】本発明の第1実施例を示す関数型プログラムの
図式表示編集実行システムの機能ブロック図である。
図式表示編集実行システムの機能ブロック図である。
【図2】本発明を実施するためのシステム構成を示すブ
ロック図である。
ロック図である。
【図3】本発明による処理の全体的なフローチャートで
ある。
ある。
【図4】ラムダ式プログラムの例を示す図である。
【図5】ラムダ図プログラムの例を示す図である。
【図6】ラムダ式の構文規則を示す図である。
【図7】ラムダ図の構文規則を示す図である。
【図8】編集機能の処理を示すフローチャートである。
【図9】ラムダ図の新規編集時の対話例を示す図である
。
。
【図10】ラムダ式とラムダ図との間の変換規則を示す
図である。
図である。
【図11】変換機能の処理を示すフローチャートである
。
。
【図12】ラムダ式からラムダ図への変換時の表示例を
示す図である。
示す図である。
【図13】ラムダ式の実行規則を示す図である。
【図14】ラムダ図の実行規則を示す図である。
【図15】実行機能の処理を示すフローチャートである
。
。
【図16】ラムダ図プログラムの実行時の表示例を示す
図である。
図である。
【図17】ラムダ図上の、引数の宣言に対する束縛変数
の表示例を示す図である。
の表示例を示す図である。
【図18】ラムダ図の実行規則を用いない場合の、ラム
ダ図の実行処理を示すフローチャートである。
ダ図の実行処理を示すフローチャートである。
【図19】ラムダ図の実行規則を用いない場合の、ラム
ダ図の実行時の表示例を示す図である。
ダ図の実行時の表示例を示す図である。
【図20】本発明の第2実施例を示す関数型プログラム
の図式表示編集実行システムの機能ブロック図である。
の図式表示編集実行システムの機能ブロック図である。
【図21】第2実施例における、実行機能の処理を示す
フローチャートである。
フローチャートである。
【図22】実行履歴の例を示す図である。
【図23】画面のコマ分割による実行過程の表示例を示
す図である。
す図である。
【図24】実行位置の元のラムダ図上での表示例を示す
図である。
図である。
【図25】本発明の第3実施例を示す関数型プログラム
の図式表示編集実行システムの機能ブロック図である。
の図式表示編集実行システムの機能ブロック図である。
【図26】プログラム要素対応表の例を示す図である。
【図27】第3実施例における、実行機能の処理を示す
フローチャートである。
フローチャートである。
【図28】ラムダ式の部分に対応する、ラムダ図の部分
の表示例を示す図である。
の表示例を示す図である。
【図29】本発明の第4実施例を示す関数型プログラム
の図式表示編集実行システムの機能ブロック図である。
の図式表示編集実行システムの機能ブロック図である。
【図30】コンビネータ項とコンビネータグラフの例を
示す図である。
示す図である。
105…ラムダ式構文規則、106…ラムダ図構文規則
、109…ラムダ式実行規則、110…ラムダ図実行規
則、111…ラムダ式・ラムダ図変換規則、112…編
集機能、113…変換機能、114…実行機能。
、109…ラムダ式実行規則、110…ラムダ図実行規
則、111…ラムダ式・ラムダ図変換規則、112…編
集機能、113…変換機能、114…実行機能。
Claims (9)
- 【請求項1】計算機および対話用端末を有する情報処理
装置において、関数型プログラムのテキスト形式表現の
構文規則に対応して図形式表現の構文規則を定義し登録
するステップと、これらの構文規則によってテキスト形
式表現の関数型プログラムを図形式表現の関数型プログ
ラムに変換するステップあるいは、図形式表現の関数型
プログラムをテキスト形式表現の関数型プログラムに変
換するステップと、図形式表現の関数型プログラムを対
話的に編集するステップと、関数の適用の実行の前後に
おける図形式表現の変形規則を定義し、該変形規則を用
いることによって、関数型プログラムの実行を該関数型
プログラムを表す図形の変形として示すステップとを有
することを特徴とする図形式表現関数型プログラムの編
集・実行方法。 - 【請求項2】請求項1において、図形式表現の関数型プ
ログラムとして、ラムダ計算モデル,データフローモデ
ル,コンビネータモデルなどの異なるモデルに基づく関
数型プログラムの図形式表現を有し、各モデルに基づく
テキスト形式を含めて、ある任意の表現の関数型プログ
ラムから、指定された他の表現の関数型プログラムに変
換するステップを有することを特徴とする図形式表現関
数型プログラムの編集・実行方法。 - 【請求項3】請求項1および2の、関数型プログラムの
実行を該関数型プログラムを表す図形の変形として示す
ステップにおいて、関数型プログラムの実行の開始時点
または実行の任意の時点において、リダクション戦略を
指定するステップを有することを特徴とする図形式表現
関数型プログラムの編集・実行方法。 - 【請求項4】請求項1から3の図形式表現の関数型プロ
グラムを対話的に編集するステップにおいて、ある関数
の引数の宣言を指定すると、該引数が束縛している、関
数本体中の仮引数の出現を図形上で示すステップを有す
ることを特徴とする図形式表現関数型プログラムの編集
・実行方法。 - 【請求項5】請求項1から4の、関数型プログラムの実
行を該関数型プログラムを表す図形の変形として示すス
テップにおいて、図形式に対して、関数の適用の実行の
前後における図形式表現の変形規則が与えられていない
場合、図形式表現の関数型プログラムを同意のテキスト
形式表現の関数型プログラムに変換し、該テキスト形式
表現に対する実行規則を用いて実行し、その結果得られ
たテキスト形式表現の関数型プログラムを同意の図形式
表現の関数型プログラムに変換して表示することにより
、図形式の関数型プログラムの実行を図形の変形として
示すステップを有することを特徴とする図形式表現関数
型プログラムの編集・実行方法。 - 【請求項6】請求項1から5において、関数型プログラ
ムの実行の履歴を記憶するステップを有し、該記録によ
り実行の任意の時点から過去の実行過程をさかのぼって
、該時点よりも以前の図形式表現に戻るステップを有す
ることを特徴とする図形式表現関数型プログラムの編集
・実行方法。 - 【請求項7】請求項1から6の、関数型プログラムの実
行を該関数型プログラムを表す図形の変形として示すス
テップにおいて、実行の過程を表示する画面を複数のコ
マに分割し、各コマに関数型言語の実行の1ステップで
ある一つの関数の適用の結果を表す図形式表現を表示す
ることにより、関数型プログラムの実行過程の各段階を
一度に表示し、該図形式表現のそれぞれに対して編集す
るステップを有することを特徴とする図形式表現関数型
プログラムの編集・実行方法。 - 【請求項8】請求項1から7の、関数型プログラムの実
行を該関数型プログラムを表す図形の変形として示すス
テップにおいて、実行を図形の変形として示すと共に、
図形式表現の元の関数型プログラムにおいて、実行した
適用を色などの図形の属性の変更によって示すステップ
を有することを特徴とする図形式表現関数型プログラム
の編集・実行方法。 - 【請求項9】請求項1から8において、対応する複数の
表現の関数型プログラムを同時に表示するステップと、
該複数の表現の関数型プログラムのうちの一つの表現の
関数型プログラムにおいて特定の領域を指定すると、他
の表現の関数型プログラムにおいて、該指定された領域
に対応する領域を、色などの属性を変えることによって
示すステップを有することを特徴とする図形式表現関数
型プログラムの編集・実行方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4161391A JPH04278633A (ja) | 1991-03-07 | 1991-03-07 | 図形式表現関数型プログラムの編集・実行方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4161391A JPH04278633A (ja) | 1991-03-07 | 1991-03-07 | 図形式表現関数型プログラムの編集・実行方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04278633A true JPH04278633A (ja) | 1992-10-05 |
Family
ID=12613191
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4161391A Pending JPH04278633A (ja) | 1991-03-07 | 1991-03-07 | 図形式表現関数型プログラムの編集・実行方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04278633A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05224906A (ja) * | 1991-11-12 | 1993-09-03 | Internatl Business Mach Corp <Ibm> | 図形的照会システム |
| JPH05224907A (ja) * | 1991-11-08 | 1993-09-03 | Internatl Business Mach Corp <Ibm> | 図形的照会システム |
| ES2166279A1 (es) * | 1999-09-09 | 2002-04-01 | Univ Valencia Politecnica | Un metodo y sistema para la optimizacion de programas multiparadigma por transformacion automatica. |
| JP2013222465A (ja) * | 2012-04-16 | 2013-10-28 | Toyota Motor Engineering & Manufacturing North America Inc | 階層的蓄積型妥当性確認システム及び方法 |
-
1991
- 1991-03-07 JP JP4161391A patent/JPH04278633A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05224907A (ja) * | 1991-11-08 | 1993-09-03 | Internatl Business Mach Corp <Ibm> | 図形的照会システム |
| JPH05224906A (ja) * | 1991-11-12 | 1993-09-03 | Internatl Business Mach Corp <Ibm> | 図形的照会システム |
| ES2166279A1 (es) * | 1999-09-09 | 2002-04-01 | Univ Valencia Politecnica | Un metodo y sistema para la optimizacion de programas multiparadigma por transformacion automatica. |
| JP2013222465A (ja) * | 2012-04-16 | 2013-10-28 | Toyota Motor Engineering & Manufacturing North America Inc | 階層的蓄積型妥当性確認システム及び方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Javanbakht et al. | Advanced finite element simulation with MSC Marc | |
| US5469538A (en) | Mathematical document editor and method performing live symbolic calculations for use with an electronic book | |
| US7584420B2 (en) | Graphical authoring and editing of mark-up language sequences | |
| CN106648662B (zh) | 基于工程造价计算描述语言bcl的报表生成装置及生成方法 | |
| US20030177441A1 (en) | Method and system for stylesheet execution interactive feedback | |
| US20090183066A1 (en) | Automatically generating dynamic documentation from product configuration | |
| JP5147240B2 (ja) | リバーシブルなデザイン・ツリーの変換のための方法とシステム | |
| CN112825038B (zh) | 基于通用组件语言规范的可视化页面制作方法和相关产品 | |
| US9378562B1 (en) | Management of variants in a graphical modeling environment | |
| Freeman | Essential TypeScript 5 | |
| JPH04278633A (ja) | 図形式表現関数型プログラムの編集・実行方法 | |
| Djukić et al. | Handling complex representations in visual modeling tools for MDSD/DSM by means of code generator languages | |
| CN115344248A (zh) | 一种rpa开发字段编辑多样化方法 | |
| US20070038947A1 (en) | Method and device for generation of a parametric model associated with a 3D geometry | |
| JPH0916382A (ja) | プログラム開発支援システム | |
| JPH07508844A (ja) | ユーザのマシン制御ステートメント集合の生成を容易にするための方法,および装置 | |
| Freeman | Pro Angular 16 | |
| CN115268907A (zh) | 一种使用json数据生成软件系统控件交互逻辑的方法 | |
| EP0410062B1 (en) | Dynamic selection of logical element data format | |
| CN120631339B (zh) | 一种混合开发的表格编辑器开发方法、设备、介质及产品 | |
| JPH09330212A (ja) | プログラミング言語処理システム | |
| Krieger | HyLiMo: a textual DSL and hybrid editor for efficient modular diagramming | |
| JP2000242477A (ja) | ソフトウエアの作成支援ツールおよび仕様検証ツール | |
| Brumbaugh et al. | The Lua Programming Language | |
| Moreira et al. | Explaining temporal logic model checking counterexamples through the use of structured natural language |