JPS6288033A - ソフトウエアプログラムを生成するための装置及びその方法 - Google Patents

ソフトウエアプログラムを生成するための装置及びその方法

Info

Publication number
JPS6288033A
JPS6288033A JP61238162A JP23816286A JPS6288033A JP S6288033 A JPS6288033 A JP S6288033A JP 61238162 A JP61238162 A JP 61238162A JP 23816286 A JP23816286 A JP 23816286A JP S6288033 A JPS6288033 A JP S6288033A
Authority
JP
Japan
Prior art keywords
generic
software
statements
indirect
statement
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.)
Granted
Application number
JP61238162A
Other languages
English (en)
Other versions
JP2609093B2 (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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Publication of JPS6288033A publication Critical patent/JPS6288033A/ja
Application granted granted Critical
Publication of JP2609093B2 publication Critical patent/JP2609093B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はソフトウェア生成システム、よシ詳細にはソフ
トウェアの幾つかの部分が何回も生成されることが要求
されるようなソフトウェアの生成システムに関する。
〔従来技術とその問題点〕
ソフトウェア システムは、各々が特定のタスクを遂行
する複数の要素あるいはモジュールから構成される。こ
れら要素は、通常、1つあるいは複数の機能を実現し、
及び/あるいはソフトウェア システム全体として全体
的なタスクを遂行するために保持、更新及び検索される
情報のある構造を持つ部分を構成する。
ソフトウェア システムには2つのタイプのモジュール
、つまり、1)そのタスクを遂行するために設計された
システムによって特にそのタスクのために要求される動
作を遂行する動作モジュール、及び2)第1のタイプの
ソフトウェア モジュールを支援するために必要とされ
る一般的なデータ処理動作を遂行するための支援モジュ
ールが存在する。典型的なシステムにおいては、大多数
のモジュールが、第2のタイプ、つまり、支援タイプに
属する。
異なるソフトウェア システムの支援モジュールの間に
は多くの類似点が存在する。例えば、全てのオペレーテ
ィング システムは、ある方法によって、項目のスタッ
ク、待ち行列及びテーブルを保持及び処理することを要
求される。例えば、項目のテーブルを処理するための必
要とされる動作はテーブル内になにが格納されていても
同じである。しかし1つのオペレーティング システム
が、個々が異なるタイプの項目を含む複数の独立したテ
ーブルを処理するために要求されることも、さらに、異
なるオペレーティング システムが異なるタイプの項目
を処理し、従って、これら項目に対する異なるテーブル
を必要とする場合もある。
現在のソフトウェア開発技術においては、ソフトウェア
 システムのモジュールは全てスクラッチから開発され
る。この作業が殆んどのモジュールが他の類似のソフト
ウェアシステムに対して既に開発されているのにもかか
わらず行なわれている。前に開発されたソフトウェア要
素を再使用することができないのは、現在のソフトウェ
ア開発ツールでは総称モジュールの指定及び生成が不可
能なためである。今日の技術においては、モジュールは
単に1つの特定のフオームの構造の特定のタイプの特定
の項目に関しての特定の動作を遂行するためにのみ開発
される。このため、例えば、あるタイプの項目のテーブ
ルを支援するソフトウニ“ア モジュールは別のタイプ
の項目のテーブルを支援するために使用できない。また
、別の例として、テーブル内の項目を検出するための特
定の捜索方法を使用するモジュールは異なる捜索方法が
必要とされる場合には使用できない。従って、ソフトウ
ェア開発者によって指定される要件に従ってソフトウェ
アの部分を自動的に生成するシステムに対する需要が存
在する。
〔発明の概要〕
本発明のシステムによると、頻繁に使用されるソフトウ
ェア要素が一度のみ設計及び開発され、これらが異なる
背景及び異なる要件を持つ異なるシステム内で何度も再
使用される。これは設計者にその要素が使用される特定
の背景と基本的に独立したソフトウェア要素を指定する
ことができる機能を提供することによって達成される。
このモジュールを新たなシステムにそのシステム固有の
要件を持たせて統合したい場合、本発明によるシステム
はこのモジュールのその新たなシステムの要件に合った
具体的バージョンを自動的に生成する。
ソフトウェア再使用のためのこのシステムは以下の可視
的要素から構成される。
■、吃称モジュールを指定するための形式2、第1項の
指定言語にて書かれた仕様を処理するためのコンパイラ
3、総称モジュールからそれぞれが与えられた特定の背
景内でその背景の要件に基づいて機能する複数の具体的
ソフトウェア モジュールを自動的に生成するためのイ
ンスタンシエータ。
このシステムによって処理される論理実体は汎用要素(
GPC)と呼ばれる。1つのGCPは総称プログラミン
グ サービスの集合を提供する。例えば、cpcは特定
のソフトウェア テーブルを保持及び処理し、ある特定
のタイプの項目を格納するために必要とされる全ての動
作及びデータ定義を提供する。
このGPCによって提供される(集合的に1サービス“
と呼ばれる)これら動作及び定義はこれらが9テーブル
“の動作及び定義の基本のみを把握し、これらが特定の
タイプの項目あるいは特定の処理方法に具体的に連結さ
れないという意味にお鈷て総称的である。
従って、これらサービスは、原形のままでは、どのプロ
グラムにも使用できない。
しかし、この総称サービスが、それらが意図された環境
の背景及び要件が入力されると、本発明によるシステム
は、これらを具体的プログラミング サービスに生成す
る。例えば、プログラマがテーブル内に格納されるべき
項目のタイプを決定し、この情報を本発明によるシステ
ムに送ると、インスタンシエータを使用してGPCの具
体的、つまシ、翻訳されたバージョンが自動的に生成さ
れる。このソフトウェア コードの生成されたバージョ
ンは、プログラマによってスクラッチから書かれたもの
と全く同様である。この総称バージョンから具体的バー
ジョンを生成するプロセスはインスタンシェーション 
プロセスと呼ばれる。
同一のGPCを使用して異なるソフトウェア システム
に対する異なる具体的バージョンを生成することができ
る。つまり、本発明によるシステムにおいては、ソフト
ウェア要素が一度のみ生成され、これが何回でも必要に
応じて異なるソフトウェア システムに合うように自動
的に修正される。
〔実施例の説明〕
本発明のこれら及び他の目的及び特徴、並びに動作及び
用途は、−例としての実施態様を図面を参照して読むこ
とによって一層明白となるものである。
上に説明され、また第1図に示されるごとく、ここに示
される実施態様は汎用コンピュータ、例えば、VAXI
 1/78oとともに使用される。さらに、ここに説明
のシステムはパーソナル コンピュータ、側光ば、AT
&T  PC6300を含む任意のコンピュータでも使
用できる。
内部的には、このシステムは関連する4つの要素、つ−
まり:ユーザが汎用要素(GPC)仕様101を生成す
るために使用する仕様記述言語、この仕様言語を処理す
るためのGPCコンパイラ102、コンパイルされたG
PC仕様のための記憶領域1o4、及びインスタンシエ
ータ106から構成される。
必須要件ではないが、GPC仕様からGPCの英語によ
る説明を抽出し、これを後に他のユーザが前に書かれた
GPCを調べ再使用できるように別個のデータ ベース
103に格納しておくと便利である。
GPCの設計者は仕様記述言語を使用してGPCを総称
的背景自由形式にて指定する。
設計者は次にこのGPC仕様をコンピュータ内のファイ
ル101に格納し、次にGPCコンパイラ102を1呼
び出してこのファイルを処理する。この処理の結果、コ
ンパイルされたGPC仕様が記憶領域104内に格納さ
れる。
GPCのユーザはユーザによって開発中のソース プロ
グラム105に適当な呼び出し命令文を挿入する。この
呼び出し命令文に応答して、後に説明されるように、シ
ステムはまず最初に適当なプログラム セグメントを生
成し、次に生成されたプログラム セグメントをユーザ
 プログラムに挿入及び/あるいはユーザ プログラム
を修正することによって拡張されたプログラム101を
生成する。
この拡張されたプログラムはコンパイラ108によって
周知の方法でコンパイルされ、コンパイルされたプログ
ラム109を生成する。
そしてこのプログラムによってコンピュータが動作され
る。
仕様記述言語 本発明は全てのコンピュータ言語に使用できるが、説明
の目的上、周知のC言語が想定される。この言語の説゛
萌に関しては、1978年に合衆国、ニューシャーシー
州、エンジェルウッド クリフ(Englewood 
C11ffs s N−J、 U、 S、 A、 )所
在プレンテイスーヘイル(Prentice −Hal
e )社から出版された;ソフトウェア シリーズ:B
、W、カーニハン(B、 W、 Kernighan 
)及びり、 M、ライチェ(D、 M、 Rithie
 )著1Cプログラミング言語(The CProgr
amming Language )“を参照すること
。この仕様において太文字は言語キーワードを表わする
に使用され:イタリック体はユーザ供給文字列を表わす
のに使用され;曲った括弧“)““(“はオプションの
項目を囲むのに使用され:垂直バー91 “は代替を分
離するのに使用され;そしてチ(及びチ)は引用のため
に使用されるキーワードである。
この仕様記述言語はGPC仕様を書くのに使用される。
個々の仕様は3つの主な部分、つまり:記述部分、宣言
部分、及び定義部分から構成される。GPC仕様の一般
的なフオームが第1表に示される。尚、第1表から第1
5表は汎用要素(GPC)のフォーマットを示す。又、
以後表示される表に関しては本欄の最後にまとめて表示
する。
最初のチの前の全てのものは記述部分201と呼ばれ、
コンパイル プロセスによって無視される。ただし、本
発明によるシステムのユーザは記述部分が機械的に処理
されカタログ103内に格納されるようにテンプレート
+Vparameter “(パラン“り) 、’ 5
ervice’(サービス)あるいは’ hidden
“ (ハイド)を宣言できる。パラメータ宣言の構文が
第2表に示され、サービス宣言の構文が第3表に示され
、モしてハイド宣言の構文が第4表に示される。
パラメータはGPCユーザによって指定されるものであ
り、一方、5ervice (サービス)はGPCによ
ってユーザに提供されるものであるo  parame
ter (パラメータ)Fi、type(タイプ)、v
alue C値)(オブジェクトのサイズ、あるいはエ
ラー リターン コードを定義する定数)、optio
n  (オプション)(例えば、 異なるアルゴリズム
を選択するために使用)、operation (動作
)(例えば、ハツシュ機能あるいはエラー処理ルーチン
)、あるいはproge (プローグ)(任意のテキス
ト)であシえる。5ervice (サービス)は、t
ype (タイプ)% value (値)、oper
ation(動作)・あるいはprose (プローグ
)でありえる。hidden (ハイド)に関しては後
に説明される。
1dentifier (識別子)は文字から開始する
一連の文字あるいは数字である。下線N−“け1文字と
してカウントされる。大文字と小文字は区別される。最
初の12文字以下のみが有効である。ただし、最つと多
くすることも可能である。
type  Cタイプ)は以下の一般フオームにて使用
できる任意のC言語である。
type  VariableName ;タイプの一
例としては、’ int*“、’ float“、’ 
5truct (int varl ; long v
ar2 ;l  “、及び’ MyType “等を挙
げることができる。
ここで、MyTypeは前に、例えば、以下のように定
義される。
typedef char *  Mytype() 
1value C値)は、例えば、′25〃、ゝゝ 1
\0331 “、及び“1.9E−6ttなどノヨうな
任意のC言語である。
オプションはそのオプションに対して有効な事前に定義
された文字列の1つに対応する文字の任意のシーケンス
である。
operation (動作)は構文的にC言語機能の
名称と等しい名称である。これは、1つのtype (
タイプ)、cast (カースト)を持つ。
prose (プローグ)はテキスト セグメントの名
称である。
hidden  (ハイド)はユーザによってアクセス
することはできないが1つあるいは複数のユーザによっ
てアクセス可能なサービスによって必要とされるサービ
スである。
第5表及び第6表に宣言の例が示される。
GPC仕様の実現部分205は個々の宣言された5er
vice (サービス)あるいはhidden(ハイド
)に対する1つのプログラムから構成される。このプロ
グラムはインスタンシェータ106にユーザ プログラ
マのコード内に対応するサービスに対する呼(call
 )  が発見されたとき何なすべきかを命令する。例
えば1第12表に示される非常に簡単なプロダラムはサ
ービス’ node “ (ノード)への呼が検出され
たときのインスタンシエータ106の動作を定義する。
つまシ、このプログラムはインスタンシエータ106に
C言語タイプを定義し、それにこのサービス’node
 〃(ノード)に対してユーザが指定する名称を与える
ように命令する。タイプの個々の定義はユーザによって
選択された連結法(シングルあるいはダブル)に依存す
る。
句”requires Always”は” node
 ”がインスタンシェード(1nstantiate 
)されるたびに、インスタンシエータ106は、まず最
初にもう1つの’ Always ” と呼ばれるサー
ビスが既にインスタンシェードされていることを確保し
なければならないことを記述する。
オプションの句’ requires 1dentif
ier’は、異なる値の1dentifier (識別
子)に対して何度も反復することができる。ここで、1
dentifier (識別子)はhidden (ハ
イド)、あるいは他の5ervice (サービス)の
名称である。
3つの命令、つまり、replace (置換え)11
header (見出し)、及びoppend (附加
)、並びに1つのフロー構造if −then −el
se −endifのみが存在する。
命令は、if −then −else −endif
構造によってグループ化されたときを除いてそれらが書
かれたのと同一シーケンスによって実行される。
replace (置換え)命令は第7表に示されるよ
うな一般フオームを持つ。このreplace(置換え
)命令が実行されると、インスタンシエータ106は呼
のテキストを任意のC言語セグメントによって置換する
。1つの動作に対する呼のテキストは開始ドル信号、サ
ービスの名称、終端ドル記号、及び左右の括弧及び括弧
間の中身から構成される。他のサービスでは、呼のテキ
サスはサービスの名称及ヒドル記号の囲いベアから構成
される。この命令はハイドに対しては許されないことは
勿論である。
置換えプロセスの際に、C言語セグメント内の全ての文
字は以下のケースを除いて変換されないまま出力に伝送
される。
一一フオーム\$ Name $のシーケンスは$ N
ame $  に変換される。(これによってGPCを
他のGPCによって指定することが可能となる)。
一一フオーム$ Name $  のシーケンスは総称
名”Name″を持つ〔サービス呼ではなく)サービス
のリファレンスとみなされ、単に、そのサービスに対す
るユーザ定義名に変換される。
一一フオーム$o$のシーケンスは指定中のプログラム
を持つサービスのユーザによって既知の名称に変換され
る。
一一タイブoperation (動作)の動作サービ
スでは、nが1から20の間の数字から成るフオーム$
n$のシーケンスはそのサービス呼のn番目の引数の(
拡張された)テキストのリファレンスとみなされ、この
シーケンスは対応する文字列に変換される。あるサービ
ス呼の引数はそれ自体サービス呼である場合もあること
に注意する。
append (附加)命令は第8表に示される一般フ
オームを持つ。この命令が実行されると、インスタンシ
エータ106は与えられたC言語セグメントをユーザ 
ンース ファイルの(現在の)終端に附加する。このC
言語セグメントの$n$及び$ Name $ 文字列
の変換も遂行される。修飾子multiple (複数
)が存在する場合は、そのC言語セグメントがサービス
呼が処理されるたびに附加され。
once (一度)が存在する場合、あるいは修飾子が
全く存在しない場合は、C言語セグメントは最高でも一
度のみ附加される。
header  (見出し)命令1−を第9表に示され
る一般フオームを持つ。この命令が実行されると、イン
スタンシエータ106はユーザソース ファイル内の与
えられたC言語セグメントを対応するGPC要求ライン
の立置(あるいは同−GPCの他のheader  (
見出し)命令の最後に挿入されたC言語セグメントの後
)に挿入する。このC言語セグメントの処理は上に説明
のごとくである。
if −then −elle −endif  制御
フロー構造は第10表に示される一般フオームを持つ。
フオーム1101において、” 1nstructio
ns”(命令)は” condition ’ (条件
)が真であるときにのみ遂行される。フオーム1102
においては、キーワードthenと613eの間の命令
は“condition“が真であるときにのみ遂行さ
れ、キーワードelBeとendifの間の命令は“c
ondition ’が真でないときにのみ遂行される
。if −then −else −endif構造は
構文的[1つの命令に等しく、従って、別のif −t
hen −else −endffのif−あるいは6
11e−ブロック内に現れることがある。
このendifのあいまいさFilつのendifを最
後に遭遇されるifと結ぶことによって解決される。
” conditiorl ” (条件)は第11表に
示される一般フオームを持つ。’ 1dentifie
r ’(識別子)はサービスあるいはパラメータの総称
名である。フオーム1201及び1202はユーザが与
えられたパラメータあるいはサービスの省略時の値(d
efault value )に代わる値を指定したか
否かをテストする。ユーザが省略時と異なる値Cdef
ault value )を指定した場合は、第1の条
件が真であり、第2の条件は真でなく、異なる値を指定
しない場合は、第1の条件は真でなく、第2の条件が真
である。
フオーム1203及び1204は与えられた文字列(s
tring )  に対して与えられたパラメータある
いはサービスの値をテストする。
−==#は等しいことを意味し“ 1=”は等しくない
ことを意味する。
第12表の例では、ライン1302はインスタンシエー
タ10Gにこのサービスのユーザによって既知の名称を
優(及び悌)のペアによって囲まれたセグメントの内容
と置換するように命令する。このケースでは、置換テキ
ストは単に($0$によって指定される)ユーザによっ
て既知の名称である。つまり、この命令は実際には”e
cho″ (エコー)命令である。
命令1303はif −then −else −en
fif構造を使用して、制御フローをユーザによってo
ption (オプション)SINGLY が要求され
るか否かに対応する2つの経路に分割する。異なるのは
、総称名”ノード″を持つタイプがいかに定義されるか
である。いずれのケースにおいても、たった1つの命令
、つまり、インスタンシエータ106によって実行され
るべきheader (見出し)命令が存在するのみで
ある。header (見出し)命令を実行すると、結
果として、ユーザ ファイルのGPCが要求されたライ
ンの所に与えられたセグメントが挿入される。$ Da
te $及び$ node $  はそれぞれパラメー
ダ’ data ”、及びサービス”node”に対す
るユーザの名称を表わす。修飾子0neeはサービス”
mode”が何度呼び出されてもセグメントの挿入を一
度のみ行なうべきであることを指定する。
0nce は省略時の値(default value
 )であり、これは修飾子multiple  によっ
て書き変えることができる。
前述したごとく、GPCの宣言部分内には、もう1つの
クラスのオブジェクト、つまり、hidden  (ハ
イド)として宣言されたオブジェクトが存在する。hi
dden (ハイド)はユーザ プログラマによっては
認識されないが、1つあるいは複数の他のサービスある
いはハイドを実現するのに使用されるサービスである。
ハイドのインスタンシェーションは必ずrequire
s  機構によって呼び出される。この例では、ライン
606内に宣言された隠れた“Always ’ に対
するプログラムが第13表及び第14表に示される。
GPC仕様記述言語の1つの興味深い特徴としてope
ration (動作〕タイプのサービスがいかに使用
されるかを挙げることができる。
GPC設計者F′iC言語セグメントをそのパラメータ
の1つとみなす1つのoperation (動作〕を
指定するととができる。例えば、リスト、そのリストの
個々の要素内のデータを表わす名称、及びコードの1つ
のセグメントをそのパラメータとみなす。perati
on (動作)forall ”を指定し、そのリスト
内の全ての要素に対するセグメントを最初から最後まで
実行することができる。この動作の仕様が第15表に示
される。
コンパイラ GPCコンパイラ102はGPC仕様をインスタンシエ
ータ106に適するフォーマットに翻訳する役割を持つ
。これはGPC仕様を読み、これはGPC仕様を読み、
これが構文的に正常であるかチェックする。GPCコン
パイラによって遂行されるチェックには以下が含まれる
一一仕様内の全ての命令文が構文的に正常であるか。
一一全ての宣言されたサービス及びハイドが正常に定義
されているか。
m−存在ループが存在しないか。あるサービスあるいは
ハイドが別のサービスあるいはハイドのインスタンシェ
ーションを要求 (requires )  する場合は、後者のサービ
スあるいはハイドはrequires  命令のチェー
ンを介して前のサービスあるいはハイドのインスタンシ
ェーションを要求(requires )  すること
はない。
GPCコンパイラが異常を検出すると、GPCはエラー
 メツセージを印字することによってGPC設計者にこ
れを通知する。存在しない場合は、これは他のコンパイ
ラと類似の方法でシンボル テーブル及びパース(pa
rse )木を2構成し、これらをコンパイルされたG
PCl 04のための記憶領域に格納する。この情報は
後にインスタンシエータ106によって拡張されたプロ
グラム107を生成するのに使用される。
GPCコンパイラは通常のコンパイラのように機械コー
ドを生成することはないことに注意する。GPCコンパ
イラの出力は、仕様の(2進)符号化されたものであり
、これは後に説明されるように、インスタンシエ・〜り
によってプログラム セグメントを生成するのに使用さ
れる。
GPCの使用 新たなソフトウェア プログラムの作成を開始しようと
するユーザ プログラマはGPCカタログ103内から
開発されるべきプログラムに使用できるGPC(複数)
を捜がす。
発見されたら、ユーザ プログラマはプログラム内に必
要とされるGPC(複数)の名称を指定し、また個々の
GPCが動作する背景に関する情報を提供する”req
uest 1ine”(要求ライン)を挿入する。これ
ら要求ラインは、これらがコンパイラ108にパスされ
ないことから、’ 1ndirect” (間接)命令
文(複数)であるとみなすことができる。一方、変換さ
れないままコンパイラ108にパスされる命令文は直接
命令文であるとみなすことができる。
典型的なGPC要求ラインにおいては、ユーザはパラメ
ータの値及びサービスの名称を指定する。GPC要求ラ
インは第16表に示される一般フオームを持つ。尚、第
16表から第20表は典型的なGPC用途のフォーマッ
トを示す。
Args  はGPCのパラメータ及びサービスに対応
する’ argument −name ”= arg
ument −nalue″(引数−名称=引数−値)
のコンマによって分離されたリストである。
GPCが” l1sthndlr %” と呼ばれるも
のと仮定し、第17表及び第18表は2つのGPC要求
ラインを示す。
第1図のケース(第17表)においては、” MyEl
ementType”がユーザによって前にC言語のt
)’fledef構造によって定義されたタイプの名称
であると仮定される。GPCは、他のサービスとともに
、” MyLi s t T ype”と呼ばれるタイ
プ、及びADD”と呼ばれる動作の定義を提供する。第
2のケース(第18表)においては、” dateHの
定義が与えられた構造の定義であるとみなされ、GPC
によって提供されるサービスはこれらの省略値の名称に
よって呼ばれる。
ユーザは1isthndlrによって提供されるサービ
スが正しく定義されており、GPC要求ライン後のコン
パイル モジュール内のどこでも使用できるものと想定
できる。ユーザはこれらサーザスを” 5ervice
 calls”(サービス呼)によって使用することが
できる。サービスはペアのドル記号($)内に囲まれた
ユーザによって即知の名称を示すことによって呼び出す
ことができる。例えば、第19表(第17表のGPC要
求ラインに対応)は、サービス′″1ist”及び” 
addafter ”を呼び出す。
一例として、ユーザがプログラム内の1つの入力ライン
に対して1つの名称を読み出す1isthndlr G
PCを使用して、入力ストリーム内の名称及びそれらの
相対位置を逆の順序で印刷したいものと仮定する。つま
り、最初に入力された名称を最後に印刷したいものと仮
定する。すると、このユーザ ソース プログラムは第
20表に示されるようなプログラムとなる。ライン21
09から2166がGPC要求ラインを構成し、ライン
2199.2125.2129.2132.2134.
2135、及び2136が各々GPCサービス呼を含む
ことに注意する。
インスタンシェータ インスタンシエータ106は(コンパイルされた)GP
C仕様及びGPC要求ラインの両方に従ってテーラ−メ
イド プログラムあるいはプログラム セグメントを生
成する役割を持つ。インスタンシエータ106は、まず
最初に、ユーザ ソース プログラム105を走査し、
GPC要求ラインを捜がす。発見されると、GPCの名
称を抽出し、コンパイルされたGPC記憶領域104内
の対応する(コンパイラされた)仕様の位置を突きとめ
る。インスタンシエータ106は、次に、ユーザによっ
て指定された値をGPC設計者によって宣言された総称
パラメータに連結する。
この結果、全ての総称パラメータがそれと関連する具体
的値を持つGPC仕様の具体的バージョンが得られる。
上のプロセスが同一〇PCに対して複数の要求が存在す
る場合でも要求された個々のGPCに対して一回遂行さ
れる(ユーザは毎回総称パラメータに対する異なるセッ
トの値を使用して、同一〇PCを数回要求することがで
きることに注意する)。
インスタンシエータ106fl’fだユーザソース プ
ログラムを走査し、サービス呼を捜す。サービス呼が検
出されると、インスタンシエータ106はその内部テー
ブルを使用して、どのGPCがそのサービスの定義を持
つか調べる。これは次に定義(これは、通常、総称パラ
メータとして定義される)並びにその総称パラメータに
対する対応する値の位置を突きとめる。この結果、ユー
ザ プログラムの部分の変更、ユーザ プログラムの部
分のプログラム セグメントによる代用、プログラム 
セグメントのユーザ プログラムのさまざ筐なセクショ
ンへの挿入、全く新たなプログラムの生成、あるいはこ
れらのユーザプログラムへの附加が起こる。これらの具
体的な動作は、勿論、GPC仕様内のサービスの対応す
る定義によって決定される。
最後に、インスタンシエータIQ6は拡張されたファイ
ル107を生成し、このファイルに結果として生成され
たソース プログラム107を格納する。
第20表のプログラムに対応するインスタンシエータ1
06の出力(第1図の拡張されたプログラム107)が
第21表に示される。
尚、第21表は本発明の一例としての出力(生成された
プログラム)を示す。インスタンシエータ106がソー
ス ファイルを幾つかの点で変更していることに注意す
る。2つのtypedef句を7センブルし、これらを
GPCが要求されたラインの所に入力している。
” + 1nclude < memory、 h >
”が加えられている(ライン2209〕。ユーザ ソー
スファイル内の全てのサービス呼が置換されている。よ
り具体的には、動作”PUSH″及び”POP” に対
して完全なプログラムが生成されており、これがユーザ
 コードに加えられている(それぞれライン2243か
ら2262並びにライン2263から2274)。
一方、動作” GET 、 ” ” TOP %” ”
 isempty 、”及びhowmany ”は単に
プログラム セグメントによって置換されている(ライ
ン2229、z233.2236.2238.2239
、及び2240)。
拡張されたプログラム(第21表)はユーザが時間をか
けて全てスクラッチからソースプログラムを設計し、書
いた場合と同様なものとなる。ただし、GPCは任意の
ファミリーのモジュールに対して一度のみの設計が要求
されるため、設計者はモジュールの設計に十分な時間を
費すことができ、結果として、効率が非常に良いソース
 コードを設計することができる。再使用可能なモジュ
ールのもう1つの特徴は、総合的なソフトウェア製造コ
ストを減少できることである。例えば、後の使用のため
のデバッグ時間の短縮、コード修正時間の短縮、あるい
はコードを書く時間の短縮などが実現される。
ここに説明のシステムは上に説明のソフトウェア再使用
以外の用途にも使用できる。実際、総称要素を修正して
特定の要件に合ったものを生成するような全ての用途に
おいて本発明は真価を発揮する・ これら用途において本発明を活用するためには、ユーザ
はGP(1”仕様記述言語を使用して汎用要素を設計し
、欠に、インスタンシエータを使用して要素の複数の特
定のバージョンを生成する。
一例として、銀行が顧客に顧客の信用状態に関する手紙
を送るケースを考えることができる。このような状況に
おいては、GPC設計者は、顧客の名称、顧客が個人で
あるか会社であるか、顧客が銀行とどの程度の期間数シ
引きを行なっているか、顧客の現在及び過去の信用状態
、銀行の現在の方針を反映する変数、その他を総称パラ
メータとして持つ“汎用レター″(general p
urpose 1etter)を作成することができる
個別の顧客ベースの手紙をインスタンシエータによって
個々の顧客に対して指定されたこれら総称パラメータの
値の組合せに基づいて合成することができる。
例えば、過去の信用状態は良くなかったが現在の信用状
態は改善された。顧客と現在も過去も信用状態の良い顧
客とでは異なる手紙が構成できる。
可能性は無限であり、どの程度まで高度なGPCを作成
するかによって、全て同一のレターを使用して、数個の
標準フォーマットから多様の非常に個別化された手紙ま
で作成することができる。
【図面の簡単な説明】
第1図はコンピュータ システムに実現された本発明の
ブロック図を示す。 〔主要部分の符号の説明〕 102・・・コンパイラ(GPCコンパイラ)104・
・・記憶装置(コンパイルされたGPC用記憶装置) FIG、 /

Claims (1)

  1. 【特許請求の範囲】 1、供給される総称仕様からソフトウェア プログラム
    を生成するための装置において、該システムが 総称ソフトウェア要素を指定する言語命令文を受信する
    コンパイラ、 該総称ソフトウェア要素のコンパイルされた要素を格納
    するための記憶装置、及び 特定のソフトウェア アプリケーションを指定する言語
    命令文を受信するための入力を持つ受信装置を含み、 該コンパイラとの関連において、個々の該総称ソフトウ
    ェア要素がプログラム生成のための1つあるいは複数の
    ユーザ要求可能サービスに対応し、該サービスが該サー
    ビスの具体的な特性を決定する言語命令文の集合によつ
    て指定され、与えられた1つの総称ソフトウェア要素が
    総称仕様内の命令文及び総称パラメータに対して特定の
    アプリケーションによつて供給された値の組合せの下で
    具体的ソフトウェア プログラムの生成を制御し、 該記憶装置との関連において、該記憶装置が該コンパイ
    ルされた総称ソフトウェア要素を該格納された指定要素
    が検索できるように格納し、 該受信装置との関連において、該言語命令文が1つの特
    定の総称ソフトウェア要素を指定する直接命令文、間接
    命令文、及び1つの特定の総称ソフトウェア要素内の特
    定のサービスを指定する要求命令文を含み、個々の間接
    命令文がさらに該総称ソフトウェア要素の総称パラメー
    タに対応する特定の値を指定し、該受信装置がさらに 該命令文の間接命令文の受信に応答して該コンパイルさ
    れた総称ソフトウェア要素のための記憶装置から該指定
    された総称ソフトウェア要素のコード化された仕様の位
    置を突きとめるための検出装置、 該検出されたコード化された仕様と該対応する間接命令
    文からの該指定されたパラメータ値とを互いに関連させ
    るための関連装置、 1つの要求命令文の受信に応答して該検出された該総称
    ソフトウェア要素の1つの中の該要求命令文と関連する
    サービスに対応する命令文の集合の位置を検出するため
    の第2の検出装置、及び 該検出された命令文の集合による制御下においてその出
    力の所に間接及び要求命令文を含まない言語命令文を持
    つ該特定のソフトウェア アプリケーションの具体的バ
    ージョンを生成するための生成装置を含むことを特徴と
    するソフトウェア プログラムを生成するための装置。 2、特許請求の範囲第1項に記載の装置において、 該特定のソフトウェア アプリケーションが個々が同一
    の総称ソフトウェア要素を引用する複数の間接命令文を
    含み、これら個々の間接命令文が異なるセットの総称パ
    ラメータ値を指定し、 該特定のソフトウェア アプリケーションを指定する言
    語命令文を受信する該受信装置が個々の該引用された総
    称ソフトウェア要素に対して同一の総称ソフトウェア要
    素の複数の異なる実例を生成するための装置、及び該総
    称ソフトウェア要素の個々の実例によつて提供される同
    一サービスに対して後に提供されるユーザ要求が個々の
    サービスの個々の実例を一意的に引用できるように異な
    る名称を与えるための装置を含むことを特徴とする装置
    。 3、特許請求の範囲第1項に記載の装置において、 該言語命令文の集合が間接命令文及びそれらの同一ある
    いは別の総称ソフトウェア要素を引用する要求命令文を
    挿入する命令を含み、該受信装置が該生成されたソフト
    ウェア アプリケーション内に加えられた間接命令文あ
    るいは要求命令文が存在しないか監視し、該生成された
    ソフトウェア アプリ・ケーションを該受信装置の該入
    力に再び加えるための装置を含むことを特徴とする装置
    。 4、供給される総称仕様からソフトウェア プログラム
    を生成するための方法において、該方法が総称ソフトウ
    ェア要素を指定する受信された言語命令文をコンパイル
    するステップ、該総称ソフトウェア要素のコンパイルさ
    れた要素を格納するステップ、及び 特定のソフトウェア アプリケーションを指定する言語
    命令文を受信するステップを含み、 該コンパイルするステップとの関連において、個々の総
    称ソフトウェア要素がプログラム生成のための1つある
    いは複数のユーザ要求可能サービスに対応し、該サービ
    スが該サービスの具体的な特性を決定する言語命令文の
    集合によつて指定され、与えられた1つの総称ソフトウ
    ェア要素が総称仕様内の命令文及び総称パラメータに対
    して特定のアプリケーションによつて供給された値の組
    合せの下で具体的ソフトウェア プログラムの生成を制
    御し、 該記憶ステップとの関連において、該格納された指定要
    素が検索できるように格納され、 該受信ステップとの関連において、該言語命令文が1つ
    の特定の総称ソフトウェア要素を指定する直接命令文、
    間接命令文、及び1つの特定の総称ソフトウェア要素内
    の特定のサービスを指定する要求命令文を含み、個々の
    間接命令文がさらに該総称ソフトウェア要素の総称パラ
    メータに対応する特定の値を指定し、該受信ステップが
    さらに該命令文の間接命令文の受信に応答して該コンパ
    イルされた総称ソフトウェア要素のための記憶装置から
    該指定された総称ソフトウェア要素のコード化された仕
    様の位置を突きとめるステップ、 該検出されたコード化された仕様と該対応する間接命令
    文からの該指定されたパラメータ値とを互いに関連させ
    るステップ、 1つの要求命令文の受信に応答して該検出された該総称
    ソフトウェア要素の1つの中の該要求命令文と関連する
    サービスに対応する命令文の集合の位置を検出するステ
    ップ、及び 該検出された命令文の集合による制御下において間接及
    び要求命令文を含まない言語命令文を持つ該特定のソフ
    トウェア アプリケーションの具体的バージョンを生成
    するステップを含むことを特徴とするソフトウェア プ
    ログラムを生成するための方法。 5、特許請求の範囲第4項に記載の方法において、 該特定のソフトウェア アプリケーションが、個々が同
    一の総称ソフトウェア要素を引用する複数の間接命令文
    が異なるセットの総称パラメータ値を指定し、 該特定のソフトウェア アプリケーションを指定する言
    語命令文を受信するステップが個々の該引用された総称
    ソフトウェア要素に対して同一の総称ソフトウェア要素
    の複数の異なる実例を生成するステップ、及び該総称ソ
    フトウェア要素の個々の実例によつて提供される同一サ
    ービスに対して後に提供されるユーザ要求が個々のサー
    ビスの個々の実例を一意的に引用できるように異なる名
    称を与えるステップを含むことを特徴とする方法。 6、特許請求の範囲第4項に記載の方法において、 該言語命令文の集合が間接命令文及びそれらの同一ある
    いは別の総称ソフトウェア要素を引用する要求命令文を
    挿入する命令を含み、該受信ステップが該生成されたソ
    フトウェア アプリケーション内に加えられた間接命令
    文あるいは要求命令文が存在しないか監視するステップ
    、及び該生成されたソフトウェア アプリケーションを
    該受信装置の該入力に再び加えるステップを含むことを
    特徴とする方法。
JP61238162A 1985-10-08 1986-10-08 ソフトウエアプログラムを生成するための装置及びその方法 Expired - Fee Related JP2609093B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US785787 1985-10-08
US06/785,787 US4734854A (en) 1985-10-08 1985-10-08 System for generating software source code components

Publications (2)

Publication Number Publication Date
JPS6288033A true JPS6288033A (ja) 1987-04-22
JP2609093B2 JP2609093B2 (ja) 1997-05-14

Family

ID=25136617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61238162A Expired - Fee Related JP2609093B2 (ja) 1985-10-08 1986-10-08 ソフトウエアプログラムを生成するための装置及びその方法

Country Status (5)

Country Link
US (1) US4734854A (ja)
EP (1) EP0219993A3 (ja)
JP (1) JP2609093B2 (ja)
KR (1) KR930008769B1 (ja)
CA (1) CA1273708A (ja)

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE467229B (sv) * 1983-08-19 1992-06-15 Kurt Katzeff Anordning foer bildande av en information och/eller instruktion avsedd att inmatas i en datamaskins programminne
US5202996A (en) * 1985-10-11 1993-04-13 Hitachi, Ltd. Software structuring system and method by data table translation
US4860203A (en) * 1986-09-17 1989-08-22 International Business Machines Corporation Apparatus and method for extracting documentation text from a source code program
US5123103A (en) * 1986-10-17 1992-06-16 Hitachi, Ltd. Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts
US5133072A (en) * 1986-11-13 1992-07-21 Hewlett-Packard Company Method for improved code generation in reduced instruction set computers
US5191646A (en) * 1986-11-20 1993-03-02 Hitachi, Ltd. Display method in software development support system
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system
NZ224848A (en) * 1987-07-15 1995-07-26 Computer Associates Internatio Application software created from defined modules of code
JPS6437621A (en) * 1987-07-20 1989-02-08 Ibm Updating of program
US4961133A (en) * 1987-11-06 1990-10-02 Visystems, Inc. Method for providing a virtual execution environment on a target computer using a virtual software machine
US5067072A (en) * 1987-11-06 1991-11-19 Visystems, Inc. Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies
US5099413A (en) * 1987-12-12 1992-03-24 Sadashiro Sakai System which reads type and position of task element marks on a matrix of program tasks for automatically generating programs
JP2624753B2 (ja) * 1988-03-18 1997-06-25 株式会社日立製作所 上位仕様書作成方法
US5117496A (en) * 1988-05-23 1992-05-26 Hewlett-Packard Company Method for recording and replaying mouse commands by recording the commands and the identities of elements affected by the commands
JPH022419A (ja) * 1988-06-10 1990-01-08 Hitachi Ltd プログラム情報管理方式
US5051893A (en) * 1988-07-11 1991-09-24 Digital Equipment Corporation System for processing data to facilitate the creation of executable images
WO1990004227A1 (en) * 1988-10-12 1990-04-19 Expressway, Inc. Software manufacturing system
US5230049A (en) * 1988-11-29 1993-07-20 International Business Machines Corporation Program source code translator
CA2002201C (en) * 1988-12-06 1999-04-27 John Charles Goettelmann Translation technique
US5161216A (en) * 1989-03-08 1992-11-03 Wisconsin Alumni Research Foundation Interprocedural slicing of computer programs using dependence graphs
US5193191A (en) * 1989-06-30 1993-03-09 Digital Equipment Corporation Incremental linking in source-code development system
US5325531A (en) * 1989-06-30 1994-06-28 Digital Equipment Corporation Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
EP0416768B1 (en) * 1989-09-08 1998-06-17 Digital Equipment Corporation Thread private memory storage for multi-thread digital data processors
CA2025131A1 (en) * 1989-09-28 1991-03-29 John W. White Portable and dynamic distributed applications architecture
DE69031936T2 (de) * 1989-11-17 1998-06-10 Digital Equipment Corp System und Verfahren zur Speicherung von Firmware in einem adressunabhängigen Format
JPH05504858A (ja) * 1989-11-30 1993-07-22 シーア テクノロジーズ,インコーポレイティド 計算機支援ソフトウェア工学ファシリティ
US5495610A (en) * 1989-11-30 1996-02-27 Seer Technologies, Inc. Software distribution system to build and distribute a software release
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components
US5204960A (en) * 1990-01-08 1993-04-20 Microsoft Corporation Incremental compiler
US5175856A (en) * 1990-06-11 1992-12-29 Supercomputer Systems Limited Partnership Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution
US5699310A (en) * 1990-06-29 1997-12-16 Dynasty Technologies, Inc. Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications
US5161222A (en) * 1990-08-20 1992-11-03 Human Microprocessing, Inc. Software engine having an adaptable driver for interpreting variables produced by a plurality of sensors
JP2720904B2 (ja) * 1990-08-31 1998-03-04 富士通株式会社 自己記述によるデータベース管理システムの構成方法および開発/変更方法
US5175432A (en) * 1990-10-31 1992-12-29 Gruman Aerospace Corporation Infrared detector module test system
EP0501613A3 (en) * 1991-02-28 1993-09-01 Hewlett-Packard Company Heterogeneous software configuration management apparatus
JPH04280320A (ja) * 1991-03-08 1992-10-06 Nec Corp プログラム自動生成装置
JP2811990B2 (ja) * 1991-04-19 1998-10-15 三菱電機株式会社 プログラム処理装置及びプログラム処理方法
US5333298A (en) * 1991-08-08 1994-07-26 Honeywell Inc. System for making data available to an outside software package by utilizing a data file which contains source and destination information
US5632022A (en) * 1991-11-13 1997-05-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Encyclopedia of software components
CA2077273C (en) * 1991-12-12 1996-12-03 Mike H. Conner Language neutral objects
US5485615A (en) * 1992-06-10 1996-01-16 Telefonaktiebolaget L M Ericsson System and method of interactively developing desired computer programs by using plurality of tools within a process described in graphical language
US5671415A (en) * 1992-12-07 1997-09-23 The Dow Chemical Company System and method for facilitating software development
US5740405A (en) * 1992-12-17 1998-04-14 Microsoft Corporation Method and system for providing data compatibility between different versions of a software program
JPH06332680A (ja) * 1993-05-21 1994-12-02 Tadao Shogetsu プログラム自動生成装置
US6178547B1 (en) 1993-06-17 2001-01-23 Metaware Incorporated Method and apparatus for generating non-redundant symbolic debug information in computer programs
US6425124B1 (en) * 1993-11-08 2002-07-23 Matsushita Electric Industrial Co. Ltd. Resource allocation device for reducing the size and run time of a machine language program
TW295761B (ja) * 1994-06-14 1997-01-11 Ericsson Telefon Ab L M
US5579318A (en) * 1994-06-30 1996-11-26 Bellsouth Corporation Processes and apparatus for maintaining data concurrence between databases in telecommunications networks
US5546574A (en) * 1994-06-30 1996-08-13 At&T Corporation Peer-to-peer data concurrence processes and apparatus
US5748973A (en) * 1994-07-15 1998-05-05 George Mason University Advanced integrated requirements engineering system for CE-based requirements assessment
KR100221374B1 (ko) 1995-01-19 1999-09-15 포만 제프리 엘 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치
US5724556A (en) * 1995-04-14 1998-03-03 Oracle Corporation Method and apparatus for defining and configuring modules of data objects and programs in a distributed computer system
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
US5987247A (en) * 1997-05-09 1999-11-16 International Business Machines Corporation Systems, methods and computer program products for building frameworks in an object oriented environment
US6041332A (en) * 1997-12-31 2000-03-21 Alcatel Usa Sourcing, L.P. Product-independent performance monitoring tool kit
EP1073954A2 (de) * 1998-04-17 2001-02-07 Siemens Aktiengesellschaft System und verfahren zur flexiblen zuordnung von oberflächenkomponenten und verarbeitungsobjekten
IL142587A0 (en) * 1998-10-13 2002-03-10 Codagen Technologies Corp Component-based source code generator
US6742175B1 (en) * 1998-10-13 2004-05-25 Codagen Technologies Corp. Component-based source code generator
DE19907328C2 (de) * 1999-02-20 2002-10-24 Johannes Reichardt Verfahren und System zur visuellen Programmierung
AUPP949599A0 (en) * 1999-03-30 1999-04-22 Griffith University Visual architecture software language
AU4354000A (en) * 1999-04-16 2000-11-02 Woosh! Inc. Adaptable component architecture
US7334216B2 (en) * 2000-04-04 2008-02-19 Sosy, Inc. Method and apparatus for automatic generation of information system user interfaces
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US6505342B1 (en) * 2000-05-31 2003-01-07 Siemens Corporate Research, Inc. System and method for functional testing of distributed, component-based software
US6986148B2 (en) * 2001-07-17 2006-01-10 Appforge, Inc. Methods and systems for providing platform-independent shared software components for mobile devices
US7613716B2 (en) * 2001-07-20 2009-11-03 The Mathworks, Inc. Partitioning for model-based design
US7120898B2 (en) * 2003-06-26 2006-10-10 Microsoft Corporation Intermediate representation for multiple exception handling models
US7707566B2 (en) * 2003-06-26 2010-04-27 Microsoft Corporation Software development infrastructure
US7305666B2 (en) * 2003-07-23 2007-12-04 Microsoft Corporation Description language for an extensible compiler and tools infrastructure
US7685581B2 (en) * 2003-06-27 2010-03-23 Microsoft Corporation Type system for representing and checking consistency of heterogeneous program components during the process of compilation
US7559050B2 (en) * 2003-06-30 2009-07-07 Microsoft Corporation Generating software development tools via target architecture specification
US7086041B2 (en) * 2003-06-27 2006-08-01 Microsoft Corporation Extensible type system for representing and checking consistency of program components during the process of compilation
US7788652B2 (en) * 2003-06-27 2010-08-31 Microsoft Corporation Representing type information in a compiler and programming tools framework
US20060059459A1 (en) * 2004-09-13 2006-03-16 Microsoft Corporation Generating solution-based software documentation
US7802227B1 (en) * 2006-02-23 2010-09-21 Intervoice Limited Partnership Customized control building
US7934193B2 (en) * 2006-04-11 2011-04-26 Rojer Alan S Processing a module specification to produce a module definition
US8091069B2 (en) * 2006-04-11 2012-01-03 Rojer Alan S Module specification language and meta-module
US7962888B2 (en) * 2006-04-11 2011-06-14 Rojer Alan S Producing unitary class definitions from module specifications
US8589869B2 (en) 2006-09-07 2013-11-19 Wolfram Alpha Llc Methods and systems for determining a formula
EP1918812A1 (en) * 2006-11-01 2008-05-07 Hewlett-Packard Development Company, L.P. A software development system
US8490068B1 (en) * 2007-01-26 2013-07-16 Intuit Inc. Method and system for feature migration
US9213768B1 (en) 2009-05-15 2015-12-15 Wolfram Alpha Llc Assumption mechanism for queries
US8601015B1 (en) 2009-05-15 2013-12-03 Wolfram Alpha Llc Dynamic example generation for queries
US8484015B1 (en) 2010-05-14 2013-07-09 Wolfram Alpha Llc Entity pages
US8812298B1 (en) 2010-07-28 2014-08-19 Wolfram Alpha Llc Macro replacement of natural language input
US9053099B2 (en) * 2010-08-10 2015-06-09 International Business Machines Corporation Method for validating equivalent data structures
US9064134B1 (en) * 2010-12-06 2015-06-23 Adobe Systems Incorporated Method and apparatus for mitigating software vulnerabilities
US9069814B2 (en) 2011-07-27 2015-06-30 Wolfram Alpha Llc Method and system for using natural language to generate widgets
US9734252B2 (en) 2011-09-08 2017-08-15 Wolfram Alpha Llc Method and system for analyzing data using a query answering system
US9851950B2 (en) 2011-11-15 2017-12-26 Wolfram Alpha Llc Programming in a precise syntax using natural language
DE102012207668A1 (de) 2012-05-09 2013-11-14 Robert Bosch Gmbh Computerimplementiertes Verfahren zum Generieren von Software, Batterie und Kraftfahrzeug
US9405424B2 (en) 2012-08-29 2016-08-02 Wolfram Alpha, Llc Method and system for distributing and displaying graphical items

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463423A (en) * 1982-07-14 1984-07-31 Burroughs Corporation Method of transforming high level language statements into multiple lower level language instruction sets

Also Published As

Publication number Publication date
KR870004383A (ko) 1987-05-09
JP2609093B2 (ja) 1997-05-14
KR930008769B1 (ko) 1993-09-15
US4734854A (en) 1988-03-29
EP0219993A3 (en) 1990-03-14
CA1273708A (en) 1990-09-04
EP0219993A2 (en) 1987-04-29

Similar Documents

Publication Publication Date Title
JPS6288033A (ja) ソフトウエアプログラムを生成するための装置及びその方法
US10970474B2 (en) Method and system for editing text with a find and replace function leveraging derivations of the find and replace input
Griswold et al. The SNOBOL4 Programming
Holub Compiler design in C
US5701487A (en) Method and apparatus for displaying locations of errors detected inside software macro calls
US5276880A (en) Method for parsing and representing multi-versioned computer programs, for simultaneous and synchronous processing of the plural parses
US20060031820A1 (en) Method for program transformation and apparatus for COBOL to Java program transformation
EP0204942A2 (en) Compiler for a source program, a method of making the same and its use
US20080007779A1 (en) Method and system for generating executable code for formatting and printing complex data structures
JPH0383153A (ja) メツセージ処理システム及び方法
Miecznikowski et al. Decompiling Java using staged encapsulation
JPH1083289A (ja) プログラミング・エイド
US5113342A (en) Computer method for executing transformation rules
Weil et al. Efficient compilation of Esterel for real-time embedded systems
CN114503073A (zh) 将用过程编程语言编写的程序自动转换为数据流图及相关***和方法
US20030196195A1 (en) Parsing technique to respect textual language syntax and dialects dynamically
JP2879099B1 (ja) 抽象構文木処理方法、抽象構文木処理プログラムを記録したコンピュータ読み取り可能な記録媒体、抽象構文木データを記録したコンピュータ読み取り可能な記録媒体、及び、抽象構文木処理装置
JP7059757B2 (ja) Api処理方法、端末、api処理プログラム
GB2351367A (en) Generating code for processing a database
JPH0512034A (ja) 機械で読取り可能な情報の翻訳を可能にする方法
Self A ex {An Ada Lexical Analyzer Generator
CN116701433A (zh) 一种函数文本解析处理方法、***、终端及存储介质
Butler et al. YooccLa: a parser generator for L-attributed grammars
Popovich et al. Experiences with an Environment Generation System.
Gunnerson Other Language Details

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees