JP2018505506A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2018505506A5 JP2018505506A5 JP2017560472A JP2017560472A JP2018505506A5 JP 2018505506 A5 JP2018505506 A5 JP 2018505506A5 JP 2017560472 A JP2017560472 A JP 2017560472A JP 2017560472 A JP2017560472 A JP 2017560472A JP 2018505506 A5 JP2018505506 A5 JP 2018505506A5
- Authority
- JP
- Japan
- Prior art keywords
- function
- candidate
- equivalence
- machine
- replacement
- 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
- 230000001131 transforming Effects 0.000 claims 5
- 238000006243 chemical reaction Methods 0.000 claims 2
- 238000004590 computer program Methods 0.000 claims 1
- 238000000034 method Methods 0.000 claims 1
Claims (15)
- 方法であって、
候補機能(104)を有し人間に可読な第1の機械命令を備えた候補ソースコード(102)を、プロセッサ(106)によりデータリポジトリ(114)から取り出し、
人間に可読な第2の機械命令を備え、命令のセットを含む置換機能(108)であって、前記命令のセットは、機械コードに変換されたときに、前記候補機能(104)よりもさらに最適な方式で前記置換機能(108)を機械に実行させるものである、置換機能(108)に、前記プロセッサ(106)によりデータリポジトリ(114)からアクセスし(504)、
前記プロセッサ(106)により、前記候補機能(104)と前記置換機能(108)の間の等価性を自動的に判断する(506)ことにおいて、前記等価性の判断のために、前記候補機能(104)および前記置換機能(108)に関する論理方程式が決定され、決定された論理方程式が、有限セットの入力において前記候補機能(104)と前記置換機能(108)の等価性を判断するように動作可能な充足可能性モジュロ理論(SMT)ソルバに提供される、等価性の判断を前記プロセッサ(106)により自動的に行い、
等価性が判断されると、前記プロセッサ(106)によって、前記候補機能(104)と前記置換機能(108)に関連付けられた等価のインディシアを自動的に供給し、
前記インディシアが供給されると、前記候補機能(104)を前記置換機能(108)と置換することを含めて、前記プロセッサ(106)によって候補ソースコード(102)を自動的に変換し、
前記変換された前記候補ソースコード(102)を出力する、
ことを含む方法。 - 前記インディシアを供給するステップは、変換および出力ステップを含むステップである、または、前記置換機能(108)は、人間に可読な第2の機械命令に関連付けられていない人間に可読な要素を含む機能である、請求項1に記載の方法。
- 前記等価性を判断する(506)ステップは、前記候補機能(104)と前記置換機能(108)の間でいくつかの入力/出力パラメータが異なると判断された場合に不良となる、請求項1に記載の方法。
- 前記候補機能(104)の第1の機械可読変換を提供し、
前記置換機能(108)の第2の機械可読変換を提供し、
入力の有限セットのうち1つで、前記第1の機械可読変換と前記第2の機械可読変換の両方を実行し、
前記第1の機械可読変換と前記第2の機械可読変換の両方を実行するステップがそれぞれ、前記候補機能(104)の第1の機械可読変換および第2の機械可読変換各々から等価値を出力したことを受けて等価性を判断する(506)、
請求項1に記載の方法。 - 等価性を判断する(506)ステップがさらに、
前記候補機能(104)の論理方程式を導出し、
前記置換機能(108)の論理方程式にアクセスすることを含み、
前記候補機能(104)の論理方程式が、前記置換機能(108)の論理方程式とは異なると判断された場合に等価性が判断できない、
請求項1に記載の方法。 - 前記候補機能(104)の論理方程式が前記置換機能(108)の論理方程式と等価であると判断されるかどうかの判断はさらに、
前記候補機能(104)の論理方程式と前記置換機能(108)の論理方程式を前記SMTソルバに供給し、
等価性を示すインディシアを前記SMTソルバから受け取る、ことを含む、
請求項5に記載の方法。 - 事前に識別された最適な方式は、少なくとも1つのセキュリティ目的に準拠する識別された方式を含む方式である、または、前記置換機能(108)は、簡潔なソースコードとして事前に識別された命令のセットを含む機能である、請求項1に記載の方法。
- 前記機械がプロセッサ(106)を含むことに加え、前記事前に識別された最適な方式が、識別されたプロセッサ(106)動作の個数を含む、または、前記機械がメモリを含むことに加え、前記事前に識別された最適な方式が、機械コードを記憶するために必要なメモリの識別されたサイズを含む、請求項1に記載の方法。
- 等価性を判断するステップ(506)がさらに、
前記候補機能(104)から、前記候補機能(104)の等価クラスのセットを生成することを含み、前記等価クラスは、等価機能のセットを含み、前記セットの各要素は機能からソースへのマッピングを有する、請求項1に記載の方法。 - 前記置換機能(108)は、前記候補機能(104)と前記置換機能(108)の間の等価性に関する抽象構文構造判断に従って選択された最も簡潔なメンバを含む、請求項1に記載の方法。
- 前記置換機能(108)と前記候補機能(104)のうち一方は第1の記号で表され、
前記プロセッサ(106)によって、前記候補機能(104)と前記置換機能(108)の間の等価性を自動的に判断すること(506)はさらに、前記候補機能(104)と前記置換機能(108)のうち他方と前記第1の記号との等価性を判断することを含む、
請求項1に記載の方法。 - 前記置換機能(108)と前記候補機能(104)のうちの前記他方は第2の記号で表され、
前記プロセッサ(106)によって、前記候補機能(104)と前記置換機能(108)の間の等価性を自動的に判断すること(506)はさらに、前記第1の記号と前記第2の記号の間の等価性を判断することを含む、
請求項11に記載の方法。 - 前記置換機能(108)と前記候補機能(104)のうち少なくとも1つが、サブルーチン、方法、手順、および述語のうちの1つを含む、請求項1に記載の方法。
- 前記置換機能(108)と前記候補機能(104)のうち少なくとも1つが、命令のシーケンスもしくは大規模コンピュータプログラム内のルールを含む、または、前記ルールによる単一の出力への入力に関する関係を含む、請求項1に記載の方法。
- データリポジトリ(114)と、
請求項1乃至14のいずれか1項に記載の方法を実行するように適合されたプロセッサ(106)と、を含むシステム。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562113623P | 2015-02-09 | 2015-02-09 | |
US201562113627P | 2015-02-09 | 2015-02-09 | |
US62/113,627 | 2015-02-09 | ||
US62/113,623 | 2015-02-09 | ||
US201662277769P | 2016-01-12 | 2016-01-12 | |
US62/277,769 | 2016-01-12 | ||
US201662280965P | 2016-01-20 | 2016-01-20 | |
US62/280,965 | 2016-01-20 | ||
PCT/US2016/017160 WO2016130551A1 (en) | 2015-02-09 | 2016-02-09 | Machine-based instruction editing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018505506A JP2018505506A (ja) | 2018-02-22 |
JP2018505506A5 true JP2018505506A5 (ja) | 2019-02-28 |
Family
ID=55527624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017560472A Pending JP2018505506A (ja) | 2015-02-09 | 2016-02-09 | 機械ベースの命令編集 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10296330B2 (ja) |
EP (1) | EP3238050A1 (ja) |
JP (1) | JP2018505506A (ja) |
CA (1) | CA2975305C (ja) |
IL (2) | IL253424B (ja) |
WO (1) | WO2016130551A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694947B1 (en) | 2009-12-09 | 2014-04-08 | The Mathworks, Inc. | Resource sharing workflows within executable graphical models |
CA2975305C (en) | 2015-02-09 | 2023-02-28 | Phase Change Software Llc | Machine-based instruction editing |
US10423733B1 (en) * | 2015-12-03 | 2019-09-24 | The Mathworks, Inc. | Systems and methods for sharing resources having different data types |
WO2018190799A1 (en) * | 2017-04-11 | 2018-10-18 | Siemens Product Lifecycle Management Software Inc. | Systems and methods to semantically compare product configuration models |
US10564939B2 (en) * | 2017-06-05 | 2020-02-18 | Devfactory Fz-Llc | Method and system for arbitrary-granularity execution clone detection |
US10732966B2 (en) | 2017-09-08 | 2020-08-04 | Devfactory Innovations Fz-Llc | Library model addition |
US10114624B1 (en) * | 2017-10-12 | 2018-10-30 | Devfactory Fz-Llc | Blackbox matching engine |
DE202017007536U1 (de) | 2017-12-05 | 2022-07-05 | Phase Change Software Llc | Induktive Äquivalenz bei der maschinellen Bearbeitung von Anweisungen |
WO2019112568A1 (en) | 2017-12-05 | 2019-06-13 | Phase Change Software Llc | Inductive equivalence in machine-based instruction editing |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1029633A (en) | 1911-05-06 | 1912-06-18 | William W Revell | Vehicle-wheel. |
US1045239A (en) | 1911-10-02 | 1912-11-26 | Waterloo Gasolene Engine Company | Device for turning crank-pins on engine-shafts. |
US3205369A (en) * | 1960-05-09 | 1965-09-07 | Honeywell Inc | Electro-mechanical plugboard sequencing apparatus |
US8683441B2 (en) | 2006-01-11 | 2014-03-25 | International Business Machines Corporation | Software equivalence checking |
US8739144B2 (en) * | 2008-12-17 | 2014-05-27 | Freescale Semiconductor, Inc. | Compiler optimisation like idiom recognition through pattern matching using value numbering |
US8434059B2 (en) * | 2009-05-01 | 2013-04-30 | Apple Inc. | Systems, methods, and computer-readable media for fertilizing machine-executable code |
US20110126179A1 (en) * | 2009-11-24 | 2011-05-26 | Thomas Hartman | Method and System for Dynamic Patching Software Using Source Code |
US9864583B2 (en) * | 2014-11-14 | 2018-01-09 | Cavium, Inc. | Algorithm to derive logic expression to select execution blocks for programmable network devices |
CA2975305C (en) | 2015-02-09 | 2023-02-28 | Phase Change Software Llc | Machine-based instruction editing |
US10459704B2 (en) | 2015-02-10 | 2019-10-29 | The Trustees Of Columbia University In The City Of New York | Code relatives detection |
US10048945B1 (en) * | 2017-05-25 | 2018-08-14 | Devfactory Fz-Llc | Library suggestion engine |
WO2019112568A1 (en) | 2017-12-05 | 2019-06-13 | Phase Change Software Llc | Inductive equivalence in machine-based instruction editing |
-
2016
- 2016-02-09 CA CA2975305A patent/CA2975305C/en active Active
- 2016-02-09 WO PCT/US2016/017160 patent/WO2016130551A1/en active Application Filing
- 2016-02-09 JP JP2017560472A patent/JP2018505506A/ja active Pending
- 2016-02-09 EP EP16709845.8A patent/EP3238050A1/en not_active Ceased
- 2016-02-09 US US15/544,377 patent/US10296330B2/en active Active
-
2017
- 2017-07-11 IL IL253424A patent/IL253424B/en unknown
-
2019
- 2019-05-01 US US16/400,598 patent/US10452390B2/en active Active
- 2019-10-16 US US16/654,650 patent/US10877748B2/en active Active
-
2021
- 2021-06-23 IL IL284340A patent/IL284340B/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018505506A5 (ja) | ||
IL284340A (en) | Editing instructions are machine based | |
RU2015103466A (ru) | Система и способ создания и использования пользовательских онтологических моделей для обработки пользовательского текста на естественном языке | |
US9471470B2 (en) | Automatically recommending test suite from historical data based on randomized evolutionary techniques | |
JP6258159B2 (ja) | プログラム情報生成システム、方法、及びプログラム | |
JP2015511032A5 (ja) | ソフトウエアを開発するためのコンピュータプログラム、方法、コンピュータシステム、装置及びコンピュータ | |
JP2016001502A5 (ja) | ||
JP2017535854A5 (ja) | ||
CN106716398B (zh) | 可视地区分用于测试的字符串 | |
WO2015015225A3 (en) | Software development tool | |
JP2016207166A5 (ja) | ||
JP2015084256A5 (ja) | ||
JP2016511470A5 (ja) | ||
JP2018530077A5 (ja) | ||
JP2017538996A5 (ja) | ||
JP2013543175A5 (ja) | ||
JP2014158265A5 (ja) | ||
RU2017132283A (ru) | Условно управляемое стилевое оформление | |
US20170075665A1 (en) | Program information generation system, method, and computer program | |
JP2016151932A5 (ja) | ||
JP2018106556A5 (ja) | ||
JP2018519592A5 (ja) | ||
JP2015099614A5 (ja) | ||
US10956159B2 (en) | Method and processor for implementing an instruction including encoding a stopbit in the instruction to indicate whether the instruction is executable in parallel with a current instruction, and recording medium therefor | |
KR102122455B1 (ko) | 프로세서의 디코더 검증을 위한 테스트 벤치 생성 방법 및 이를 위한 장치 |