JP2018505506A5 - - Google Patents

Download PDF

Info

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
Application number
JP2017560472A
Other languages
English (en)
Other versions
JP2018505506A (ja
Filing date
Publication date
Application filed filed Critical
Priority claimed from PCT/US2016/017160 external-priority patent/WO2016130551A1/en
Publication of JP2018505506A publication Critical patent/JP2018505506A/ja
Publication of JP2018505506A5 publication Critical patent/JP2018505506A5/ja
Pending legal-status Critical Current

Links

Claims (15)

  1. 方法であって、
    候補機能(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)を出力する、
    ことを含む方法。
  2. 前記インディシアを供給するステップは、変換および出力ステップを含むステップである、または、前記置換機能(108)は、人間に可読な第2の機械命令に関連付けられていない人間に可読な要素を含機能である、請求項1に記載の方法。
  3. 前記等価性を判断する(506)ステップは、前記候補機能(104)と前記置換機能(108)の間でいくつかの入力/出力パラメータが異なると判断された場合に不良となる、請求項1に記載の方法。
  4. 前記候補機能(104)の第1の機械可読変換を提供し、
    前記置換機能(108)の第2の機械可読変換を提供し、
    入力の有限セットのうち1つで、前記第1の機械可読変換と前記第2の機械可読変換の両方を実行し、
    前記第1の機械可読変換と前記第2の機械可読変換の両方を実行するステップがそれぞれ、前記候補機能(104)の第1の機械可読変換および第2の機械可読変換各々から等価値を出力したことを受けて等価性を判断する(506)
    請求項1に記載の方法。
  5. 等価性を判断する(506)ステップがさらに、
    前記候補機能(104)の論理方程式を導出し、
    前記置換機能(108)の論理方程式にアクセスすることを含み、
    前記候補機能(104)の論理方程式が、前記置換機能(108)の論理方程式とは異なると判断された場合に等価性が判断できない、
    請求項1に記載の方法。
  6. 前記候補機能(104)の論理方程式が前記置換機能(108)の論理方程式と等価であると判断されるかどうかの判断はさらに、
    前記候補機能(104)の論理方程式と前記置換機能(108)の論理方程式を前記SMTソルバに供給し、
    等価性を示すインディシアを前記SMTソルバから受け取る、ことを含む、
    請求項に記載の方法。
  7. 前に識別された最適な方式は、少なくとも1つのセキュリティ目的に準拠する識別された方式を含む方式である、または、前記置換機能(108)は、簡潔なソースコードとして事前に識別された命令のセットを含む機能である、請求項に記載の方法。
  8. 前記機械プロセッサ(106)を含むことに加え、前記事前に識別された最適な方式、識別されたプロセッサ(106)動作の個数を含む、または、前記機械がメモリを含むことに加え、前記事前に識別された最適な方式が、機械コードを記憶するために必要なメモリの識別されたサイズを含む、請求項に記載の方法。
  9. 等価性を判断するステップ(506)がさらに、
    前記候補機能(104)から、前記候補機能(104)の等価クラスのセットを生成することを含み、前記等価クラスは、等価機能のセットを含み、前記セットの各要素は機能からソースへのマッピングを有する、請求項1に記載の方法。
  10. 前記置換機能(108)は、前記候補機能(104)と前記置換機能(108)の間の等価性に関する抽象構文構造判断に従って選択された最も簡潔なメンバを含む、請求項1に記載の方法。
  11. 前記置換機能(108)前記候補機能(104)のうち一方は第1の記号で表され、
    前記プロセッサ(106)によって、前記候補機能(104)前記置換機能(108)の間の等価性を自動的に判断すること(506)はさらに、前記候補機能(104)前記置換機能(108)のうち他方と前記第1の記号との等価性を判断することを含む、
    請求項1に記載の方法。
  12. 前記置換機能(108)前記候補機能(104)のうちの前記他方は第2の記号で表され、
    前記プロセッサ(106)によって、前記候補機能(104)前記置換機能(108)の間の等価性を自動的に判断すること(506)はさらに、前記第1の記号と前記第2の記号の間の等価性を判断することを含む、
    請求項11に記載の方法。
  13. 前記置換機能(108)と前記候補機能(104)のうち少なくとも1つが、サブルーチン、方法、手順、および述語のうちの1つを含む、請求項1に記載の方法。
  14. 前記置換機能(108)と前記候補機能(104)のうち少なくとも1つが、命令のシーケンスもしくは大規模コンピュータプログラム内のルールを含む、または、前記ルールによる単一の出力への入力に関する関係を含む、請求項1に記載の方法。
  15. データリポジトリ(114)と、
    請求項1乃至14のいずれか1項に記載の方法を実行するように適合されたプロセッサ(106)と、を含むシステム。
JP2017560472A 2015-02-09 2016-02-09 機械ベースの命令編集 Pending JP2018505506A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) 프로세서의 디코더 검증을 위한 테스트 벤치 생성 방법 및 이를 위한 장치