Project/Area Number |
04650303
|
Research Category |
Grant-in-Aid for General Scientific Research (C)
|
Allocation Type | Single-year Grants |
Research Field |
電子機器工学
|
Research Institution | The University of Electro-Communications |
Principal Investigator |
吉田 利信 電気通信大学, 電気通信学部, 助教授 (30114341)
|
Project Period (FY) |
1992
|
Project Status |
Completed (Fiscal Year 1992)
|
Budget Amount *help |
¥700,000 (Direct Cost: ¥700,000)
Fiscal Year 1992: ¥700,000 (Direct Cost: ¥700,000)
|
Keywords | 自動微分法 / プログラム変換 / 計算量 |
Research Abstract |
研究代表者はLispを用いて偏導関数自動導出システム(ADDS)を既に作成している。このADDSに対して、本研究では入力する言語とその処理システムについて検討を加え、それに基づいて試作システムを作成した。 ADDSの言語は専用言語であり、数式処理システムREDUCEの言語に近いインタープリタ言語であった。それに対して、数式中にベクトル変数、配列変数および微分演算子を記述できるように既存言語Cを拡張し、コンパイラ言語とすることを提案した。 条件分岐や繰り返しを用いて定義される関数を、これらを含まない直線的プログラム部分から再帰的に構成されているものとして分解する方法、その内部表現、微分操作について検討した。微分操作には順モードと逆モードがあり、それらを組合わせることによって、計算量・記憶量を削減できることを示した。変数の依存関係の分析から、逆モードの微分が関数計算と並行して行え、記憶量の大幅な削減が可能となる場合があることなどを示した。 上記の拡張C言語に対する構文解析、内部表現について検討した。試作システムとし、コンパイラではなくプレコンパイラとし、拡張C言語をC言語に変換するものとした。YaccおよびLexを用いて構文解析部を作成した。微分操作については、直線的プログラムおよび条件文について、順モード、逆モードの微分ができるようになった。 繰り返し文の微分操作ができるようにすること、変数の依存関係の分析から、順・逆モードの組み合せ、実行順序などを計算量、記憶量が少なくなるように自動的に決定する方法を開発することなどが、今後の課題である。
|