JP7310943B2 - プログラム生成装置、プログラム生成方法及びプログラム - Google Patents
プログラム生成装置、プログラム生成方法及びプログラム Download PDFInfo
- Publication number
- JP7310943B2 JP7310943B2 JP2021577768A JP2021577768A JP7310943B2 JP 7310943 B2 JP7310943 B2 JP 7310943B2 JP 2021577768 A JP2021577768 A JP 2021577768A JP 2021577768 A JP2021577768 A JP 2021577768A JP 7310943 B2 JP7310943 B2 JP 7310943B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- unit
- value
- input
- output
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Biology (AREA)
- Genetics & Genomics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Description
本発明は、プログラム生成装置、プログラム生成方法及びプログラムに関する。
近年、社会全体のIT化が進む一方で、IT人材の不足が大きな問題となっている。経済産業省の試算によると、2025年には約36万人のIT人材が不足すると予測されている。特に専門的な知識を必要とする実装工程におけるIT人材の不足は喫緊の課題であり、自動でプログラミングを行う自動プログラミング技術の研究開発が求められている。
従来、自動プログラミング技術としては、ユーザがプログラムの入出力例を与え、それを満たすようにプログラムの部品を合成する技術が有る。
例えば、非特許文献1には、入出力例とプログラムの部品の関係性を学習し、与えられた入出力例に対して使用される確率の高いプログラムの部品を推定して、当該部品をプログラムの合成に用いることで、効率的なプログラム合成を実現する技術が開示されている。
また、非特許文献2には、Excel(登録商標)の入出力例からそれを満たすExcel(登録商標)関数を自動合成する技術が開示されている。
Matej Balog, Alexander L. Gaunt, Marc Brockschmidt, Sebastian Nowozin, Daniel Tarlow、 " DeepCoder: Learning to Write Programs" Proceedings of ICLR'17、[online]、インターネット<URL:https://www.microsoft.com/en-us/research/publication/deepcoder-learning-write-programs/>
Sumit Gulwani、"Automating String Processing in Spreadsheets Using Input-Output Examples" POPL '11 Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages Pages 317-330、[online]、インターネット<URL:https://dl.acm.org/citation.cfm?id=1926423>
しかしながら、入出力例は、プログラムが満たす仕様の一例にすぎず、情報量が少ないといった欠点がある。そのため入出力例にオーバーフィッティングしたプログラムが生成されてしまうことがあり、ユーザの所望するプログラムが生成されないという課題が存在する。
本発明は、上記の点に鑑みてなされたものであって、所望のプログラムが自動生成される可能性を高めることを目的とする。
そこで上記課題を解決するため、プログラム生成装置は、値及び前記値の単位を入力とするプログラムであって、前記値に関する計算と前記計算に対応した前記単位に関する計算とを実行して前記値の計算結果及び前記単位の計算結果を出力するプログラムを、複数のプログラム部品を用いて生成する生成部と、前記プログラムを変更して、1以上の入力値及び単位と出力値及び単位との組を満たすプログラムを生成する変更部と、を有する。
所望のプログラムが自動生成される可能性を高めることができる。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるプログラム生成装置10のハードウェア構成例を示す図である。図1のプログラム生成装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
プログラム生成装置10での処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってプログラム生成装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
図2は、本発明の実施の形態におけるプログラム生成装置10の機能構成例を示す図である。図2において、プログラム生成装置10は、プログラム合成部11、合成プログラム実行部12及び入出力結果判定部13を有する。これら各部は、プログラム生成装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
以下、プログラム生成装置10が実行する処理手順について説明する。図3は、プログラム生成装置10が実行する処理手順の一例を説明するためのフローチャートである。
ステップS101において、プログラム合成部11は、例えば、補助記憶装置102に記憶されているプログラム部品リストの中の1以上のプログラム部品を、例えば、ランダムに組み合わせて合成することで、複数(N個)のプログラムのソースコード(以下、「合成コード」という。)を生成する。
図4は、プログラム部品リストの一例を示す図である。図4に示されるプログラム部品リストのデータ構造をBNF(Backus-Naur form)記法に基づく形式によって記すと以下の通りである。
<プログラム部品リスト>::=プログラム部品+
すなわち、プログラム部品リストは、1以上のプログラム部品(のソースコード)を含む。図4では、定数とメソッドとにプログラム部品が分類されている。ここで、1つの定数が1つのプログラム部品に相当し、1つのメソッドが1つのプログラム部品に相当する。すなわち、図4において破線で囲まれた単位が、1つのプログラム部品の単位に相当する。
<プログラム部品リスト>::=プログラム部品+
すなわち、プログラム部品リストは、1以上のプログラム部品(のソースコード)を含む。図4では、定数とメソッドとにプログラム部品が分類されている。ここで、1つの定数が1つのプログラム部品に相当し、1つのメソッドが1つのプログラム部品に相当する。すなわち、図4において破線で囲まれた単位が、1つのプログラム部品の単位に相当する。
本実施の形態では、各メソッドの各引数について、値だけでなく当該値の単位も入力可能なように構成されている。例えば、図4において最上段のメソッドの引数は、[x_value,x_unit]、[y_value,y_unit]である。ここで、[]で囲まれた範囲は、1つの配列を示す。当該配列において、第1要素は値(数値)であり、第2要素は当該値の単位を示す文字列である。すなわち、1つの引数は、値及び単位の組によって構成される。具体的には、x_value及びy_valueは、本来の計算対象の引数の値である。一方、x_unitは、x_valueの値の単位を示す文字列であり、y_unitは、y_valueの値の単位を示す文字列である。
また、各メソッドの定義は、当該配列の計算方法を示す。具体的には、当該配列の計算方法において、第1要素は値の計算方法を示し、第2要素は第1要素の計算方法に対応した単位の計算方法を示す。すなわち、各メソッドの定義には、引数に指定された値(x_value、y_value)に関する計算方法のみではなく、値に関する計算方法に対応した、引数に指定された単位(x_unit、y_unit)に関する計算方法も含まれている。したがって、各プログラム部品は、入力された値に関する計算に対応して、入力された単位に関する計算を行い、値の計算結果及び単位の計算結果を出力するように定義されている。
値の計算に対応した単位の計算方法は、基本的に以下のルールに従う。但し、例外がある場合は、別途ルールが設けられてもよい。以下のルールでは、値の計算が、加算又は減算、乗算又は除算の場合について、当該値の単位の計算方法が示されている。
[加算、減算の場合]
(1)単位が同一の値同士の加算、減算では、当該単位を加算結果又は減算結果の単位とする。
例:1[m]+2[m]=3[m]
(2)単位が異なる変数同士の加算又は減算がソースコード中に存在した場合、当該ソースコードは不適切なソースコードとする。
(1)単位が同一の値同士の加算、減算では、当該単位を加算結果又は減算結果の単位とする。
例:1[m]+2[m]=3[m]
(2)単位が異なる変数同士の加算又は減算がソースコード中に存在した場合、当該ソースコードは不適切なソースコードとする。
[乗算、除算の場合]
単位が同一、不同一に関わらず値の乗算、除算と同様に計算する。
例:1[m]*2[m]=2[m*m]
例:1[m]*2=2[m]
例:1[m]*2[g]=2[m*g]
例:1[m]/2[m]=1/2
ステップS101では、ランダムに複数のプログラム部品を選択し、当該複数のプログラム部品を合成することで1つの合成コードを生成するといった処理がN回繰り返される。その結果、N個の合成コードが生成される。なお、プログラム部品の合成とは、複数のプログラム部品の計算が組み合わされることをいい、例えば、非特許文献1に記載された技術等、公知技術を用いて行うことができる。例えば、各プログラム部品を、演算子を親ノードとし、当該演算子による演算対象である変数、定数、又は演算子を子ノードとする木構造によって表現し、いずれかのプログラム部品の木構造のノードを、他のプログラム部品の木構造によって置換することで、これらのプログラム部品を合成することができる。なお、合成コードは、プログラム部品と同様に、値及び単位の組を入力とし、入力された値に関する計算に対応して入力された単位に関する計算を実行し、値の計算結果及び単位の計算結果を出力するといった定義を含む。
単位が同一、不同一に関わらず値の乗算、除算と同様に計算する。
例:1[m]*2[m]=2[m*m]
例:1[m]*2=2[m]
例:1[m]*2[g]=2[m*g]
例:1[m]/2[m]=1/2
ステップS101では、ランダムに複数のプログラム部品を選択し、当該複数のプログラム部品を合成することで1つの合成コードを生成するといった処理がN回繰り返される。その結果、N個の合成コードが生成される。なお、プログラム部品の合成とは、複数のプログラム部品の計算が組み合わされることをいい、例えば、非特許文献1に記載された技術等、公知技術を用いて行うことができる。例えば、各プログラム部品を、演算子を親ノードとし、当該演算子による演算対象である変数、定数、又は演算子を子ノードとする木構造によって表現し、いずれかのプログラム部品の木構造のノードを、他のプログラム部品の木構造によって置換することで、これらのプログラム部品を合成することができる。なお、合成コードは、プログラム部品と同様に、値及び単位の組を入力とし、入力された値に関する計算に対応して入力された単位に関する計算を実行し、値の計算結果及び単位の計算結果を出力するといった定義を含む。
続いて、合成コードごとにステップS102及びS103を含むループ処理L1が実行される。以下、ループ処理L1において処理対象とされている合成コードを「対象コード」という。
ステップS102において、合成プログラム実行部12は、対象コードをコンパイル及びリンク等することで、実行形式のプログラム(以下「合成プログラム」という。)を生成する。
続いて、合成プログラム実行部12は、当該合成プログラム(以下「対象合成プログラム」という。)に対し、予め用意されている入出力例セットに含まれる各入出力例を入力して対象合成プログラムを実行し、入出力例ごとに出力を得る(S103)。入出力例セットは、入出力に関して生成対象のプログラム(以下「対象プログラム」という。)が満たすべき条件を示す情報であり、例えば、予め設定されて補助記憶装置102に記憶されている。
図5は、入出力例セットの一例を示す図である。図5に示される入出力例セットのデータ構造をBNF記法に基づく形式によって記すと以下の通りである。
<入出力例セット>::=<入出力例>+
<入出力例>::=<入力例><出力例>
<入力例>::=<入力値 単位>+
<出力例>::=<出力値 単位>+
すなわち、入出力例セットは1以上の入出力例を含む。1つの入出力例は入力例及び出力例の組である。入力例とは入力値(数値)及び当該入力値の単位の1以上の組をいい、出力例とは出力値(数値)及び当該出力値の単位の1以上の組をいう。
<入出力例セット>::=<入出力例>+
<入出力例>::=<入力例><出力例>
<入力例>::=<入力値 単位>+
<出力例>::=<出力値 単位>+
すなわち、入出力例セットは1以上の入出力例を含む。1つの入出力例は入力例及び出力例の組である。入力例とは入力値(数値)及び当該入力値の単位の1以上の組をいい、出力例とは出力値(数値)及び当該出力値の単位の1以上の組をいう。
例えば、入出力例セットに含まれる入出力例がM個である場合、合成プログラム実行部12は、ステップS103において、M個の入力例ごとに当該入力値及び単位を入力として対象合成プログラムを実行し、M個の出力値及び単位を得る。
ループ処理L1が終了すると、入出力結果判定部13は、全ての出力値及び単位の組が当該出力値及び単位に対応する入力値が属する入出力例の出力例(出力値及び単位の組)に一致する合成プログラムの有無を判定する(S104)。すなわち、ループ処理L1において処理対象とされた合成プログラムの中で、ステップS103において得られた全ての出力値及び単位が期待通りであった(正しかった)合成プログラムの有無が判定される。
該当する合成プログラムが無い場合(S104でNo)、プログラム合成部11は、合成コードの変更処理を実行する(S105)。合成コードの変更処理では、元の合成コードの一部を変更して、複数(N個)の合成コードが生成される。合成コードの一部の変更には、例えば、遺伝的アルゴリズムが用いられてもよい。すなわち、前世代の合成コードに対してN回の遺伝的操作が行われて、N個の次世代の合成コードが生成されてもよい。ここで、Nは、遺伝的アルゴリズムの一世代における個体(ソースコード)の個数である。この際、遺伝的アルゴリズムの適用対象とされる各合成コードは、例えば、演算子を親ノードとし、当該演算子による演算対象である変数、定数、又は演算子を子ノードとする木構造によって表現され、木構造の部分木が遺伝的操作の対象とされる。N回の遺伝的操作において対象とされる個体の選択のための評価には、出力の合格率(出力(出力値及び単位)が正解だった割合)が用いられてもよい。
また、突然変異において前世代の合成コードの一部に置き換わる候補として、例えば、プログラム部品リストに含まれるプログラム部品が用いられる。
図6は、合成コードの変更処理によって生成される合成コードの一例を示す図である。図6に示されるように、1回の合成処理によってN個の合成コードが生成される。
なお、遺伝的アルゴリズムを用いたプログラムの合成処理には、DEAP(https://deap.readthedocs.io/en/master/)等、既存のライブラリを用いられてもよい。
続いて、N個の合成コードについてループ処理L1以降が実行される。したがって、この場合、ステップS102及びS103はN回実行される。
一方、ステップS104の条件を満たす合成プログラムが1以上有る場合(S104でYes)、ループ処理L1が終了し、ステップS106へ進む。すなわち、ループ処理L1では、予め生成された入出力例を満たすプログラム生成されるまで合成コードの一部の変更が繰り返される(合成コードが一部ずつ累積的に変更される)ことで、入出力例セットを満たすような対象プログラムが自動生成される。
ステップS106において、入出力結果判定部13は、当該合成プログラムのソースコード(合成コード)から、単位の計算部分の記述を除去(削除)する。なお、ステップS104の条件を合成プログラムが複数有る場合、それぞれの合成プログラムのソースコードがステップS106の処理対象とされればよい。
図7は、合成コードからの単位の計算部分の記述の除去の一例を示す図である。図7において、合成コードc1は、ステップS104の条件を満たす合成コードの一例である。合成コードc2は、合成コードc1から単位の計算部分の記述を除去することで得られる合成コードの一例である。すなわち、合成コードc2では、合成コードc1において単位に対応する変数(x_unit,y_unit)に関連する記述が除去されている。
続いて、入出力結果判定部13は、単位の計算部分の記述が除去された合成コードを出力する(S107)。すなわち、当該合成コードに係る合成プログラムが対象プログラムであると判定される。
上述したように、本実施の形態によれば、入出力例に対して値に加えて単位の情報が含められ、値及び単位の双方について入出力を満たすことが期待されるプログラム(数値計算系のプログラム)が自動生成される。すなわち、プログラム部品を合成して得られたプログラム、及び当該プログラムの一部を変更することで得られるプログラムに対して入出力例を適用した計算時に、数値計算だけでなく単位の計算も行い、出力値だけでなく単位も予め与えられた出力例の単位と一致するかどうかが確認される。
例えば、正方形の面積を求めるプログラムが所望のプログラムであるとする。ユーザが入出力例として、入力値2、出力値4を与えたとする。この場合、x*xというプログラムが出力されるべきだが、x+xというプログラムでも入出力例を満たすため出力されうる。一方、本実施の形態では、入力値2[m]、出力値4[m*m]のように単位の情報も追加され、計算時の数値だけでなく単位の計算も実行される。すると、x+xというプログラムの出力する値は4[m]となるため、不適切であると判定することができる。その結果、不適切なプログラムを弾くことができ、所望のプログラムが自動生成される可能性を高めることができる。
なお、本実施の形態において、プログラム合成部11は、生成部及び変更部の一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 プログラム生成装置
11 プログラム合成部
12 合成プログラム実行部
13 入出力結果判定部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
B バス
11 プログラム合成部
12 合成プログラム実行部
13 入出力結果判定部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
B バス
Claims (5)
- 値及び前記値の単位を入力とするプログラムであって、前記値に関する計算と前記計算に対応した前記単位に関する計算とを実行して前記値の計算結果及び前記単位の計算結果を出力するプログラムを、複数のプログラム部品を用いて生成する生成部と、
前記プログラムを変更して、1以上の入力値及び単位と出力値及び単位との組を満たすプログラムを生成する変更部と、
を有することを特徴とするプログラム生成装置。 - 前記変更部は、前記1以上の入力値及び単位と出力値及び単位との組を満たすプログラムが生成されるまで、前記プログラムの一部の変更を累積的に繰り返す、
ことを特徴とする請求項1記載のプログラム生成装置。 - 値及び前記値の単位を入力とするプログラムであって、前記値に関する計算と前記計算に対応した前記単位に関する計算とを実行して前記値の計算結果及び前記単位の計算結果を出力するプログラムを、複数のプログラム部品を用いて生成する生成手順と、
前記プログラムを変更して、1以上の入力値及び単位と出力値及び単位との組を満たすプログラムを生成する変更手順と、
をコンピュータが実行することを特徴とするプログラム生成方法。 - 前記変更手順は、前記1以上の入力値及び単位と出力値及び単位との組を満たすプログラムが生成されるまで、前記プログラムの一部の変更を累積的に繰り返す、
ことを特徴とする請求項3記載のプログラム生成方法。 - 請求項3又は4記載のプログラム生成方法をコンピュータに実行させることを特徴とするプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/005385 WO2021161426A1 (ja) | 2020-02-12 | 2020-02-12 | プログラム生成装置、プログラム生成方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2021161426A1 JPWO2021161426A1 (ja) | 2021-08-19 |
JP7310943B2 true JP7310943B2 (ja) | 2023-07-19 |
Family
ID=77292205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021577768A Active JP7310943B2 (ja) | 2020-02-12 | 2020-02-12 | プログラム生成装置、プログラム生成方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230107200A1 (ja) |
JP (1) | JP7310943B2 (ja) |
WO (1) | WO2021161426A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11934801B2 (en) * | 2021-12-07 | 2024-03-19 | Microsoft Technology Licensing, Llc | Multi-modal program inference |
WO2024075160A1 (ja) * | 2022-10-03 | 2024-04-11 | 日本電信電話株式会社 | データ変換装置、データ変換方法及びプログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030035087A (ko) | 2001-10-30 | 2003-05-09 | 에프이에이소프트(주) | 공학용 해석시뮬레이션 소프트웨어의 단위환산방법 및 장치 |
JP2003323413A (ja) | 2002-05-01 | 2003-11-14 | Hiroshi Tsuchida | 単位操作機能を持つ数式演算処理プログラム |
JP2004280714A (ja) | 2003-03-18 | 2004-10-07 | Hitachi Ltd | 設計支援管理方法及び設計支援管理システム並びに設計支援管理のためのプログラム |
JP4033018B2 (ja) | 2003-03-31 | 2008-01-16 | 三菱電機株式会社 | 温度制御装置 |
JP4135235B2 (ja) | 1998-11-17 | 2008-08-20 | 凸版印刷株式会社 | 積層体およびその製造方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2828735B2 (ja) * | 1990-05-24 | 1998-11-25 | 科学技術庁航空宇宙技術研究所長 | 複合プログラム用入出力データの物理単位系自動変換方式 |
JPH04135235A (ja) * | 1990-09-27 | 1992-05-08 | Shimadzu Corp | プログラム部品合成システム |
US20050065970A1 (en) * | 2003-08-20 | 2005-03-24 | King Anthony Graham | System, method and apparatus for developing software |
US6876314B1 (en) * | 2004-02-18 | 2005-04-05 | Robocoder Corporation | Self-generating automatic code generator |
JP6521565B2 (ja) * | 2014-01-20 | 2019-05-29 | Dmg森精機株式会社 | 省電力を考慮したncプログラム生成装置 |
US10289962B2 (en) * | 2014-06-06 | 2019-05-14 | Google Llc | Training distilled machine learning models |
US11307962B2 (en) * | 2018-07-09 | 2022-04-19 | United States Of America As Represented By The Secretary Of The Navy | Method for semantic preserving transform mutation discovery and vetting |
US11775352B1 (en) * | 2022-11-28 | 2023-10-03 | Fmr Llc | Automated prediction of computing resource performance scaling using reinforcement learning |
-
2020
- 2020-02-12 JP JP2021577768A patent/JP7310943B2/ja active Active
- 2020-02-12 WO PCT/JP2020/005385 patent/WO2021161426A1/ja active Application Filing
- 2020-02-12 US US17/798,880 patent/US20230107200A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4135235B2 (ja) | 1998-11-17 | 2008-08-20 | 凸版印刷株式会社 | 積層体およびその製造方法 |
KR20030035087A (ko) | 2001-10-30 | 2003-05-09 | 에프이에이소프트(주) | 공학용 해석시뮬레이션 소프트웨어의 단위환산방법 및 장치 |
JP2003323413A (ja) | 2002-05-01 | 2003-11-14 | Hiroshi Tsuchida | 単位操作機能を持つ数式演算処理プログラム |
JP2004280714A (ja) | 2003-03-18 | 2004-10-07 | Hitachi Ltd | 設計支援管理方法及び設計支援管理システム並びに設計支援管理のためのプログラム |
JP4033018B2 (ja) | 2003-03-31 | 2008-01-16 | 三菱電機株式会社 | 温度制御装置 |
Non-Patent Citations (1)
Title |
---|
内藤 圭吾 ほか,企業のソフトウェア開発に対する自動プログラム修正技術適用の試み,情報処理学会 ソフトウェアエンジニアリングシンポジウム 2018 論文集,日本,一般社団法人情報処理学会,2018年08月29日,pp.139-147 |
Also Published As
Publication number | Publication date |
---|---|
US20230107200A1 (en) | 2023-04-06 |
JPWO2021161426A1 (ja) | 2021-08-19 |
WO2021161426A1 (ja) | 2021-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101279179B1 (ko) | 병렬 프로그램 생성 방법 | |
JP7310943B2 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
JP7351352B2 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
JP4886838B2 (ja) | 並列化方法、システム、及びプログラム | |
JPH0667868A (ja) | アルゴリズムを記号評価する方法およびアルゴリズムをトランスレートする装置 | |
US20100199269A1 (en) | Program optimization device and program optimization method | |
WO2010113330A2 (en) | Method and apparatus for design space exploration in high level synthesis | |
JP2009181446A (ja) | プログラム生成装置およびブロック線図生成装置 | |
JP5479942B2 (ja) | 並列化方法、システム、及びプログラム | |
JP2005242569A (ja) | データ処理装置設計方法、データ処理装置設計装置及びプログラム | |
JP6366033B2 (ja) | プログラム中のif文の最適化方法 | |
Mosaner et al. | Using machine learning to predict the code size impact of duplication heuristics in a dynamic compiler | |
JP7131277B2 (ja) | システム移行支援装置、システム移行支援方法及びプログラム | |
JP4770657B2 (ja) | パイプライン合成システム、方法及びプログラム | |
JP7279822B2 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
JP7468209B2 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
JP2012238235A (ja) | プログラム検証装置及びプログラム | |
WO2022249255A1 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
KR101867866B1 (ko) | 프로그램의 동적 최적화 방법 및 장치 | |
WO2021161428A1 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
JP5275087B2 (ja) | プログラム生成装置およびブロック線図生成装置 | |
Trevisan Jost et al. | Gpu code generation of cardiac electrophysiology simulation with mlir | |
WO2022230190A1 (ja) | プログラム生成装置、プログラム生成方法及びプログラム | |
JP7059827B2 (ja) | ソースコード生成装置 | |
JP2023003531A (ja) | プログラム生成装置、プログラム生成方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220607 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230606 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230619 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7310943 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |