JP7450565B2 - コンパイル方法、開発支援装置および制御システム - Google Patents

コンパイル方法、開発支援装置および制御システム Download PDF

Info

Publication number
JP7450565B2
JP7450565B2 JP2021014739A JP2021014739A JP7450565B2 JP 7450565 B2 JP7450565 B2 JP 7450565B2 JP 2021014739 A JP2021014739 A JP 2021014739A JP 2021014739 A JP2021014739 A JP 2021014739A JP 7450565 B2 JP7450565 B2 JP 7450565B2
Authority
JP
Japan
Prior art keywords
source code
directed graph
nodes
modified
edges
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
Application number
JP2021014739A
Other languages
English (en)
Other versions
JP2022118310A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2021014739A priority Critical patent/JP7450565B2/ja
Publication of JP2022118310A publication Critical patent/JP2022118310A/ja
Application granted granted Critical
Publication of JP7450565B2 publication Critical patent/JP7450565B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Description

本願は、コンパイル方法、開発支援装置および制御システムに関するものである。
計装制御システムにおいて、計装機器の制御装置は原則連続稼働する。そのため、制御装置に使用されているソフトウエアのソースコードの論理式等(ロジック)の修正(変更または更新)が必要な場合に限り、開発支援装置などの保守ツールを用いて、変更されたソースコードのコンパイルを行い、制御装置への転送処理が行われる。
このようなプログラムのコンパイル中は客先作業が停止するので、必要に応じて最小限の変更を高速に行うことが求められる。このため、作業の大部分は、局部的な修正で対応可能であるため、修正箇所を含む一部だけをコンパイルし、必要最低限の機械語オブジェクトを生成してプログラムを更新する方法が知られている(例えば、特許文献1参照)。
特開2016-151973号公報
特許文献1のコンパイル方法は、テキスト形式の中間言語を用い、コンパイラ成果物としての機械語を出力することで、入力言語または中間言語の修正のあった箇所のみをコンパイル対象とすることができる。しかし、場合分けの中身を入れ替えるような修正をした場合、ロジックの差分としては少量であるにもかかわらず、入力言語のテキストとしては大きな差分が生じることがある。計装制御ではこのような差分の修正は頻繁に行われるため、コンパイルを行うために計装制御を中止するための時間が増加し、客先作業に支障が生じるなどの問題があった。
本願は、上述のような問題を解決するためになされたもので、ソースコードの修正によるコンパイルの時間を短縮することができるコンパイル方法、開発支援装置および制御システムを提供することを目的とする。
本願に開示されるコンパイル方法は、
ソースコードの入力言語から、ノードとエッジからなる複数のグループに分類された有向グラフを中間言語として生成し、ソースコードを修正するとき、修正前のソースコードの有向グラフと修正後のソースコードの有向グラフを、ノードおよびエッジごとに比較し、修正されたノードおよびエッジのいずれかを含むグループをコンパイルするコンパイル方法。
本願に開示されるコンパイル方法によれば、有向グラフの内、修正されたノードおよびエッジのいずれかを含むグループをコンパイルするので、コンパイルの時間を短縮することができる。
実施の形態1に係る制御システムの構成図である。 実施の形態1に係る開発支援装置のハードウエア構成図である。 実施の形態1に係るコンパイラ機能部の処理を説明する図である。 実施の形態1に係るソースコードと中間言語の例を説明する図である。 実施の形態1に係る実施例1を説明する図である。 実施の形態1に係る実施例2を説明する図である。 実施の形態1に係る実施例3を説明する図である。 実施の形態1に係る実施例4を説明する図である。 実施の形態1に係る実施例5を説明する図である。 実施の形態2に係る動作ロジックの転送を説明する図である。 実施の形態3に係るソースコードのロジック等価性を説明する図である。 実施の形態3に係るロジック等価性に基づいたソースコードの変換を説明する図である。 実施の形態4に係るロジック等価性に基づいた静的解析を説明する図である。
以下、本願に係るコンパイル方法の好適な実施の形態について、図面を参照して説明する。なお、同一内容および相当部については同一符号を配し、その詳しい説明は省略する。以降の実施形態も同様に、同一符号を付した構成について重複した説明は省略する。
実施の形態1.
<制御システムの構成>
図1は、本実施の形態に係る制御システムの構成図である。本システムは、開発支援装置10、計装機器を制御する制御装置30などを有する。開発支援装置10は、制御装置30用の制御プログラムのソースコード21をユーザに作成させるインターフェース機能部11を有する。制御装置30は、例えばPLC(プログラマブルコントローラ)、DCS(Distributed Control System:分散制御システム)などであってもよい。
また、ユーザが作成したソースコード21を、制御装置30上で動作する機械語24に変換するコンパイラ機能部13(フロントエンドコンパイラ13a、バックエンドコンパイラ13b)を有する。これは、一旦、中間言語22に変換した後に機械語24に変換するものである。
フロントエンドコンパイラ13aが、ソースコード21を解析して中間言語22に変換する。続いて、バックエンドコンパイラ13bが、この中間言語22を制御装置30で動作する機械語24に変換する。
開発支援装置10は、通信機能部12を有する。通信機能部12により、無線あるいは通信線などを介して制御装置30の通信機能部31と通信を行うことができる。例えば、コンパイル処理により生成された機械語24等を、通信機能部12によって制御装置30にダウンロードする。ダウンロードされた機械語24は、プログラム実行管理機能部32に記憶されて処理され、制御装置30は機械語24に応じた動作を行う。さらに、ディスプレイなどの画面15、キーボードおよびマウスなどの入力装置16を備えている。
開発支援装置10および制御装置30は、例えば、パソコンなどの汎用のコンピュータ上で実現されるものであってもよく、図2にハードウエア構成を示す。プロセッサ100と記憶装置200から構成され、図示していないが、記憶装置はランダムアクセスメモリ等の揮発性記憶装置と、フラッシュメモリ等の不揮発性の補助記憶装置とを具備する。また、フラッシュメモリの代わりにハードディスクの補助記憶装置を具備してもよい。プロセッサ100は、記憶装置200から入力されたアプリケーションプログラムを実行することにより、コンパイルを行う。この場合、補助記憶装置から揮発性記憶装置を介してプロセッサ100にプログラムが入力される。また、プロセッサ100は、演算結果等のデータを記憶装置200の揮発性記憶装置に出力してもよいし、揮発性記憶装置を介して補助記憶装置にデータを保存してもよい。
図3は実施の形態1における開発支援装置10内のコンパイラ機能部13での処理を説明する図である。例えば、図に示すように、ソースコード21をコンパイルする場合(1回目)、フロントエンドコンパイラ13aに入力されたソースコード21から中間言語である有向グラフの動作ロジックを生成する。有向グラフは、後述するように、ロジックで使用されるデータをデータフローと制御フローとで表す。データフローと制御フローは、それぞれノードとエッジから構成される。その後、バックエンドコンパイラ13bで、有向グラフを入力として、機械語24を生成する。
次に、ソースコード21の修正があった場合、機械語を書き換える必要があるため、修正があったソースコード21aをコンパイルする(2回目)。入力された修正ソースコード21aから有向グラフの動作ロジックを生成した後、1回目に行ったコンパイルの有向グラフとコンパイル2回目の有向グラフとの差分をフロントエンドコンパイラ13aにより生成する。生成された有向グラフの差分から差分箇所のみの機械語24aを生成し、コンパイル1回目に生成された機械語24を、バックエンドコンパイラ13bにより変更する(機械語24b)。これによりコンパイルの時間は短縮される。
<実施例1>
図4に具体的なソースコードとソースコードから生成した中間言語の例を示す。ソースコードはST(Structured Text)言語を例に説明するがこれに限るものではない。また、中間言語は簡易化した表現としている。図1に示されたインターフェース機能部11から、図4の版1に示されたソースコードがコンパイラ機能部13に入力され、1回目のコンパイルが行われる。コンパイラ機能部13のフロントエンドコンパイラ13aにより、ソースコードから、ノードとエッジで構成される有向グラフの中間言語を生成する(図4の版1の中間言語を参照)。生成された中間言語22の有向グラフは、図1の差分情報管理部14に記憶される。
次に、図4中、版2で示された、修正ソースコードがインターフェース機能部11を介してコンパイラ機能部13に入力され、2回目のコンパイルが行われる。版2の修正ソースコードは、版1のソースコードと同様、フロントエンドコンパイラ13aにより、ノードとエッジで構成される有向グラフの中間言語を生成する。(図4の版2の中間言語を参照)。生成された中間言語の有向グラフは、版1の場合同様、差分情報管理部14に記憶される。
差分情報管理部14に記憶されている1回目のコンパイルによる版1の中間言語の有向グラフと、2回目のコンパイルが行われた版2の有向グラフの中間言語とをフロントエンドコンパイラ13aで比較し、差分を抽出する。差分の抽出は、それぞれの有向グラフを構成するノードとエッジの同一性を比較することにより行う。
比較した結果、図4中、版1から版2への有向グラフの変更点は、要素のノードBと要素のノードCを加算する「加算演算子」のノードを、「減算演算子」のノードに変更している。従って、有向グラフの中間言語上では、演算子を表す1つのノードのみが差分となる。
さらに、版2のソースコードを、版3のソースコードに修正する場合、上述と同様の手順により、版3の中間言語の有向グラフを生成する。生成された中間言語の有向グラフは、版1の場合同様、差分情報管理部14に記憶される。版2の中間言語の有向グラフと、版3の有向グラフの中間言語を、それぞれのノードとエッジを比較し、差分を抽出する。
版2の有向グラフから版3の有向グラフへの変更点は、IF文の分岐先が異なるのみであるので、制御エッジの繋ぎ替えのみが差分となる。このように、中間言語である有向グラフで表した動作ロジックの差分は、コーディング変更量に対して比較的小さくなる傾向がある。有向グラフの差分比較は、有向グラフ間の編集距離(ノードおよびエッジの追加/編集/削除の回数)を求めることにより実現する。以降のバックエンドコンパイラ13bのコンパイル処理では中間言語の各ノードを順に処理していくが、この結果を利用すれば、ソースコードの変更点については差異のあった有向グラフのノードまたはエッジのみを処理すれば良く、処理が高速化する。
図5(a)は、図4における、版3で示した有向グラフの中間言語である。版2から版3のソースコードの変更について、中間言語にテキスト形式を使用したコンパイル(比較例1)と有向グラフを使用したコンパイル(実施例1)のそれぞれの処理ステップ数の比較を図5(b)に示す。中間言語のコンパイルは、図5(a)に示すように、ノードから次のノードへ接続されるエッジまたは末端までを1グループとした単位で処理される。従って、図6には、8つのグループが示されている。
各グループのコンパイルに掛かる処理時間を処理ステップ数で表す。処理ステップ数をそれぞれ平均10ステップとすると、8つのグループの処理に合計80ステップを要する。比較例1ではテキスト形式で差分比較をするので、図4の版3に示すように、差分として、「D:=B-C;」および「D:=A;」を検出する。ここで、テキストの差分比較に掛かる時間は無視できるものとする。すると、これらの差分に相当するグループは、グループ3~8の6グループあるので、合計60ステップ掛かる。
一方、実施例1の有向グラフの中間言語に対して差分比較を行う。前述したように、差分比較は、ノード、エッジなどすべての要素を対象として行う。1要素の比較に掛かる時間を平均1ステップとすると、図5(b)の場合は19要素あるので、19ステップ掛かる。差分比較の結果、図5(a)中、実線で囲んだグループ2のみをコンパイルすればよいので、処理時間は10ステップで済み、合計29ステップとなる。従って比較例1に比べ、コンパイル時間が48%に短縮されている。
<実施例2>
図6(a)は、代入文の例である。テキスト形式で差分比較をした比較例2では、差分として「B:=C;」を検出する。テキストの差分比較に掛かる時間は無視できるものとする。これらの差分に相当するグループは、グループ1~3の3グループであるので、合計30ステップ掛かる。
一方、有向グラフの中間言語に対して差分比較を行う実施例2において、図6(b)に示すように、各ノードおよび各エッジ、合わせて5要素を差分比較するので、5ステップ掛かる。差分比較の結果、図6(a)中、実線で囲んだグループ1のみをコンパイルすればよいので、処理時間は10ステップで済み、合計15ステップとなる。従って、比較例2に比べ、コンパイル時間は50%に短縮されている。
<実施例3>
図7(a)は、四則演算の例である。テキスト形式で差分比較をした比較例3では、差分として、「D:=(A-B)/C;」を検出する。テキストの差分比較に掛かる時間は無視できるものとする。これらの差分に相当するグループは、グループ1~7の7グループであるので、合計70ステップ掛かる。
一方、有向グラフの中間言語に対して差分比較を行う実施例3において、図7(b)に示すように、ノードとエッジを合わせて13要素を差分比較するので、13ステップ掛かる。差分比較の結果、図7(a)中、実線で囲んだグループ3およびグループ5をコンパイルすればよいので、処理時間は20ステップで済み、合計33ステップとなる。従って、比較例3に比べ、コンパイル時間は47%に短縮される。
<実施例4>
図8(a)は、FOR文の例である。テキスト形式で差分比較をした比較例4では、差分として、「A:=0;」「FOR I:=(4 TO 8 DO)」「A:A+I-3;」「END_FOR;」を検出する。テキストの差分比較に掛かる時間は無視できるものとする。これらの差分に相当するグループは、グループ4~14の11グループであるので、合計110ステップ掛かる。
一方、有向グラフの中間言語に対して差分比較を行う実施例4において、図8(b)に示すように、ノードとエッジ合わせて27要素を差分比較するので、27ステップ掛かる。差分比較の結果、図8(a)中、実線で囲んだグループ5、6、10、13、およびグループ14をコンパイルすればよいので、処理時間は50ステップで済み、合計77ステップとなる。従って、比較例4に比べ、コンパイル時間は70%に短縮される。
<実施例5>
図9(a)は、WHILE文の例である。テキスト形式で差分比較をした比較例5では、差分として、「A:=5;」「WHILE A<10 DO)」「A:A+I;」「END_WHILE」を検出する。テキストの差分比較に掛かる時間は無視できるものとする。これらの差分に相当するグループは、グループ4~12の9グループであるので、合計90ステップ掛かる。
一方、有向グラフの中間言語に対して差分比較を行う実施例5において、図9(b)に示すように、ノードとエッジ合わせて23要素を差分比較するので、23ステップ掛かる。差分比較の結果、図9(a)中、実線で囲んだグループ5、6、およびグループ10をコンパイルすればよいので、処理時間は30ステップで済み、合計53ステップとなる。従って、比較例5に比べ、コンパイル時間は59%に短縮される。
以上説明したように、テキスト形式での差分比較に比べ本実施の形態による中間言語に有向グラフを使用した動作ロジックの差分比較によるコンパイルは、処理時間を半分程度に短縮できる。
実施の形態2.
実施の形態1で使用した有向グラフによる動作ロジックを、コンパイルだけではなく、図1に示す制御装置30への転送処理にも適用する。この場合、制御装置30内のプログラム実行管理機能部32が動作ロジックを有向グラフの構造で認識出来ることを前提とする。
例えば、図10において、実施の形態1同様、ユーザが作成したソースコード21を、開発支援装置10のフロントエンドコンパイラ13aで、中間言語の有向グラフによる動作ロジックにコンパイルする(1回目)。この動作ロジックを差分情報管理部14に記憶するとともに、制御装置30に転送する。次に、ソースコード21の修正があった場合、制御装置30の機械語を書き換える必要があるため、修正があったソースコード21aをコンパイルする(2回目)、1回目のコンパイルと同様に、入力されたソースコードから有向グラフの動作ロジックをコンパイルした後、差分情報管理部に記憶されている1回目の動作ロジックと比較し、差分をフロントエンドコンパイラ13aにより生成する。生成された動作ロジックの差分箇所のみを通信機能部12、31を介して制御装置30に転送する。転送された修正部分の動作ロジックをプログラム実行管理機能部32で併合し、併合されたプログラムにより、制御装置は動作する。差分比較については、実施の形態1で説明した実施例1~5と同様に行う。
このように、中間言語に有向グラフで構成した動作ロジックを使用し、ソースコードの修正部分を有向グラフの差分で制御装置に転送することにより、転送時間を短縮することが可能となる。
実施の形態3.
実施の形態1で適用した有向グラフによるロジック差分比較法を、ロジックの等価性確認に適用することもできる。例えば、旧機種の制御装置から新機種の制御装置へソースコードを移植する場合、移植に伴い、変更部分の機械語を書き換える必要があるが、ソースコードの入力言語の文法あるいはデータ構造には変化があるが、ロジックには変化が無い場合がある。このように、機種変更または言語変更の際のロジックの変化の有無の分析をコンパイルを行う際の1つのステップに組み入れてもよい。
例えば、図11に示すように旧機種のソースコードである、「ADD(IN:=A,IN2:=B,OUT=>C);」と新機種のソースコード「C=A+B」は、実施の形態1で説明した方法で有向グラフを作成し、比較差分を行うと、変更されたノードおよびエッジの要素は無く、ロジックの等価性が確認できる。これにより、機種の変更によるコンパイルを行う必要がないことがわかる。
このように、機種または言語の変更による機械語の変更が必要ないことが、ロジック差分比較法により認められた場合、ロジックの等価性を担保したまま、他言語間、または新旧機種間のソースコードの変換機能に適用することができる。すなわち、コンパイラ機能部13により、図12に示すように、旧機種のソースコードを、有向グラフの中間言語が一致する種類の異なる新機種のソースコードに逆変換することもできる。
以上のように、有向グラフによるロジック差分比較法を用いることで、ロジックの等価性を確認するとともに、有向グラフが一致する別種のソースコードに変換することができる。
実施の形態4.
実施の形態3で適用したロジック等価性を応用して、あるロジックを変更したときに、他のロジックへどのように影響するかの確認を、プログラムを実際に実行しない、静的解析に適用する。図13は、IF文の「YES」の場合の処理と「NO」の場合の処理を入れ替えた例である。有向グラフによる中間言語の差分は、IF文の接続先のみである。従って、影響を確認する場合にはIF文の接続先が変わった点を起点とし、静的解析を開始すれば良いので、全体のロジックを確認する必要がなく、解析時間を短縮可能である。
本願は、様々な例示的な実施の形態及び実施例が記載されているが、1つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。
従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
10:開発支援装置、11:インターフェース機能部、12:通信機能部、13:コンパイラ機能部、14:差分情報管理部、15:画面、16:入力装置、30:制御装置、31:通信機能部、32:プログラム実行管理機能部、100:プロセッサ、200:記憶装置。

Claims (5)

  1. ソースコードから、ノードとエッジからなる複数のグループに分類された有向グラフを中間言語として生成し、前記ソースコードを修正するとき、修正前のソースコードの有向グラフと修正後のソースコードの有向グラフを、前記ノードおよび前記エッジごとに比較し、修正された前記ノードおよび前記エッジのいずれかを含む前記グループをコンパイルするコンパイル方法。
  2. 第1のソースコードから、ノードとエッジからなる複数のグループに分類された第1の有向グラフを生成し、第2のソースコードから、ノードとエッジからなる複数のグループに分類された第2の有向グラフを生成し、前記第1の有向グラフと前記第2の有向グラフとをノードおよびエッジごとに比較し、比較した全てのノードとエッジが一致した場合に、前記第1のソースコードと前記第2のソースコードに等価性があると判断するステップを有するコンパイル方法。
  3. ソースコードを入力するためのインターフェース機能部、前記ソースコードを、ノードとエッジからなる複数のグループに分類された有向グラフを生成するコンパイラ機能部、前記有向グラフを記憶する差分情報管理部を備え、前記コンパイラ機能部は、修正されたソースコードが入力された場合、前記修正されたソースコードの修正有向グラフを生成するとともに、前記差分情報管理部に記憶された修正前の有向グラフと前記修正有向グラフとをノードおよびエッジごとに比較することにより、修正されたノードおよびエッジのいずれかを含むグループをコンパイルして機械語を生成することを特徴とする開発支援装置。
  4. 請求項3の開発支援装置と前記開発支援装置と通信で接続される制御装置とを備え、前記開発支援装置でコンパイルされたソースコードの修正部分の機械語を前記制御装置に送信することを特徴とする制御システム。
  5. 請求項3の開発支援装置と前記開発支援装置と通信で接続される制御装置とを備え、前記制御装置は、中間言語としての有向グラフの構造を認識可能なプログラム実行管理機能部を有し、前記開発支援装置から送信される修正されたノードおよびエッジのいずれかを含む有向グラフのグループの情報を前記プログラム実行管理機能部で処理することを特徴とする制御システム。
JP2021014739A 2021-02-02 2021-02-02 コンパイル方法、開発支援装置および制御システム Active JP7450565B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021014739A JP7450565B2 (ja) 2021-02-02 2021-02-02 コンパイル方法、開発支援装置および制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021014739A JP7450565B2 (ja) 2021-02-02 2021-02-02 コンパイル方法、開発支援装置および制御システム

Publications (2)

Publication Number Publication Date
JP2022118310A JP2022118310A (ja) 2022-08-15
JP7450565B2 true JP7450565B2 (ja) 2024-03-15

Family

ID=82839975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021014739A Active JP7450565B2 (ja) 2021-02-02 2021-02-02 コンパイル方法、開発支援装置および制御システム

Country Status (1)

Country Link
JP (1) JP7450565B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290656A (ja) 2000-04-07 2001-10-19 Hitachi Ltd 差分コンパイル方式
JP2016151973A (ja) 2015-02-18 2016-08-22 富士電機株式会社 制御コントロールシステム、その開発支援装置、制御装置
CN106462434A (zh) 2014-06-25 2017-02-22 微软技术许可有限责任公司 整个程序代码的增量式编译
JP2018151936A (ja) 2017-03-14 2018-09-27 オムロン株式会社 プログラム作成装置およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290656A (ja) 2000-04-07 2001-10-19 Hitachi Ltd 差分コンパイル方式
CN106462434A (zh) 2014-06-25 2017-02-22 微软技术许可有限责任公司 整个程序代码的增量式编译
JP2016151973A (ja) 2015-02-18 2016-08-22 富士電機株式会社 制御コントロールシステム、その開発支援装置、制御装置
JP2018151936A (ja) 2017-03-14 2018-09-27 オムロン株式会社 プログラム作成装置およびプログラム

Also Published As

Publication number Publication date
JP2022118310A (ja) 2022-08-15

Similar Documents

Publication Publication Date Title
CN109254776B (zh) 多语言代码编译方法及编译器
CN110825384A (zh) 一种基于llvm的st语言编译方法及编译***和编译器
JPH0561683A (ja) オブジエクトに基づく情報処理システム及びソフトウエア保守システム
JP2004295398A (ja) コンパイラ、コンパイル方法、及びプログラム開発ツール
US11656592B2 (en) Analysis device, analysis method, and recording medium
US20170177313A1 (en) Method for compiling a source code
US20190012168A1 (en) Program generating apparatus
JP7450565B2 (ja) コンパイル方法、開発支援装置および制御システム
JP5405684B1 (ja) ソースプログラムのプログラミング言語変換装置
CN110472411B (zh) 一种内存溢出处理方法、装置、设备及可读存储介质
CN114691151A (zh) 一种基于深度学习的优化代码反编译方法和***
CN113448851A (zh) 一种rust编程语言编译器的自动化测试方法及***
Moyen et al. Loop quasi-invariant chunk motion by peeling with statement composition
JP5908374B2 (ja) コンパイラ評価装置、方法及びプログラム
KR101658795B1 (ko) 중간언어 생성기를 포함한 로봇 프로그래밍 툴과 그 중간 언어 코드를 수행할 수 있는 버츄얼 머신을 기반으로 하는 로봇 프로그래밍 방법
JP2016151973A (ja) 制御コントロールシステム、その開発支援装置、制御装置
Kats et al. Interactive disambiguation of meta programs with concrete object syntax
CN109814869B (zh) 应用于机器人的解析方法、***及计算机可读存储介质
WO2022190418A1 (ja) 開発支援装置、開発支援方法および開発支援プログラム
WO2021161428A1 (ja) プログラム生成装置、プログラム生成方法及びプログラム
JP2002312167A (ja) 変数の値をコンピュータに算出させるためのプログラム、コンパイルプログラム、変数値確定方法およびプログラム生成方法
EP4369187A1 (en) Method and system for implementing a virtual assistant for automatic configuration of engineering objects
JP5181788B2 (ja) ソースプログラムの言語変換装置、方法及びプログラム
JP6944838B6 (ja) 変換装置および変換方法
JP2007133622A (ja) エンジニアリングツール及びプログラム変換方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230119

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240305

R151 Written notification of patent or utility model registration

Ref document number: 7450565

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151