JP5818695B2 - コード変換方法、プログラム及びシステム - Google Patents
コード変換方法、プログラム及びシステム Download PDFInfo
- Publication number
- JP5818695B2 JP5818695B2 JP2012000030A JP2012000030A JP5818695B2 JP 5818695 B2 JP5818695 B2 JP 5818695B2 JP 2012000030 A JP2012000030 A JP 2012000030A JP 2012000030 A JP2012000030 A JP 2012000030A JP 5818695 B2 JP5818695 B2 JP 5818695B2
- Authority
- JP
- Japan
- Prior art keywords
- programming language
- type
- code
- java
- source code
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Description
class C[T, U] {
def this(a:U) {} // ctor id = 0
def this() {} // ctor id = -1
def this(a:Any) {} // ctor id = -1
def this(a:T) {} // ctor id = 1
}
new C[String,Double](12.3);
new C[String,Double](“abc”);
abstract static class __0C$$U {}
C(Type T, Type U, U a, __0C$$U dummy) {}
new C[String,Double](12.3);
new C<String,Double>(Types.STRING, Types.DOUBLE, 12.3, (C.__0C$$U) null);
class C[T, U] {
def this(a:U) {} // ctor id = 0
def this() {} // ctor id = -1
def this(a:Any) {} // ctor id = -1
def this(a:T) {} // ctor id = 1
}
new C[String,Double](12.3);
new C[String,Double](“abc”);
class C<T, U> {
C(Type T, Type U, U a, Class dummy) {}
C(Type T, Type U) {}
C(Type T, Type U, Object a) {}
C(Type T, Type U, T a, Class[] dummy) {}
}
new C<String,Double>(Types.STRING, Types.DOUBLE, 12.3, (Class) null);
new C<String,Double>(Types.STRING, Types.DOUBLE, “abc”, (Class[]) null);
class C<T, U> {
abstract static class __0C$$U {}
abstract static class __0C$$T {}
C(Type T, Type U, U a, __0C$$U dummy) {}
C(Type T, Type U) {}
C(Type T, Type U, Object a) {}
C(Type T, Type U, T a, __0C$$T dummy) {}
}
new C<String,Double>(Types.STRING, Types.DOUBLE, 12.3, (C.__0C$$U) null);
new C<String,Double>(Types.STRING, Types.DOUBLE, “abc”, (C.__0C$$T) null);
106・・・主記憶
108・・・ハードディスク・ドライブ
204・・・構文解析ルーチン
206・・・Javaコード生成ルーチン
Claims (15)
- コンピュータの処理により、第1のプログラミング言語のソースコードを、第2のプログラミング言語のコードに変換する方法であって、
前記第1のプログラミング言語のソースコードを用意するステップと、
前記第1のプログラミング言語のソースコードを走査して、該ソースコードにおける通常メソッドの名前修飾のためのサフィックスを名前とする合成クラスを追加するステップと、
コンストラクタ定義に前記合成クラスの型のダミー引数を追加するステップと、
コンストラクタ呼び出しに前記ダミー引数の型に適合する適当な値を追加するステップと、
前記追加した結果に基づき、前記第2のプログラミング言語のコードに変換して生成するステップを有する、
方法。 - 前記第1のプログラミング言語が型具体化を基本とするプログラミング言語であり、前記第2のプログラミング言語が型消去を採用するプログラミング言語である、請求項1に記載の方法。
- 前記第1のプログラミング言語がX10であり、前記第2のプログラミング言語がJavaであり、前記第2のプログラミング言語のコードがJavaバイトコードである、請求項2に記載の方法。
- 前記第1のプログラミング言語がX10であり、前記第2のプログラミング言語がJavaであり、前記第2のプログラミング言語のコードがJavaソースコードである、請求項1に記載の方法。
- 前記ダミー引数の型に適合する適当な値がnullである、請求項1に記載の方法。
- コンピュータの処理により、第1のプログラミング言語のソースコードを、第2のプログラミング言語のコードに変換するプログラムであって、
前記コンピュータに、
前記第1のプログラミング言語のソースコードを用意するステップと、
前記第1のプログラミング言語のソースコードを走査して、該ソースコードにおける通常メソッドの名前修飾のためのサフィックスを名前とする合成クラスを追加するステップと、
コンストラクタ定義に前記合成クラスの型のダミー引数を追加するステップと、
コンストラクタ呼び出しに前記ダミー引数の型に適合する適当な値を追加するステップと、
前記追加した結果に基づき、前記第2のプログラミング言語のコードに変換して生成するステップを実行させる、
プログラム。 - 前記第1のプログラミング言語が型具体化を基本とするプログラミング言語であり、前記第2のプログラミング言語が型消去を採用するプログラミング言語である、請求項6に記載のプログラム。
- 前記第1のプログラミング言語がX10であり、前記第2のプログラミング言語がJavaであり、前記第2のプログラミング言語のコードがJavaバイトコードである、請求項7に記載のプログラム。
- 前記第1のプログラミング言語がX10であり、前記第2のプログラミング言語がJavaであり、前記第2のプログラミング言語のコードがJavaソースコードである、請求項6に記載のプログラム。
- 前記ダミー引数の型に適合する適当な値がnullである、請求項6に記載のプログラム。
- コンピュータの処理により、第1のプログラミング言語のソースコードを、第2のプログラミング言語のコードに変換するシステムであって、
前記第1のプログラミング言語のソースコードを用意する手段と、
前記第1のプログラミング言語のソースコードを走査して、該ソースコードにおける通常メソッドの名前修飾のためのサフィックスを名前とする合成クラスを追加する手段と、
コンストラクタ定義に前記合成クラスの型のダミー引数を追加する手段と、
コンストラクタ呼び出しに前記ダミー引数の型に適合する適当な値を追加する手段と、
前記追加した結果に基づき、前記第2のプログラミング言語のコードに変換して生成する手段を有する、
システム。 - 前記第1のプログラミング言語が型具体化を基本とするプログラミング言語であり、前記第2のプログラミング言語が型消去を採用するプログラミング言語である、請求項11に記載のシステム。
- 前記第1のプログラミング言語がX10であり、前記第2のプログラミング言語がJavaであり、前記第2のプログラミング言語のコードがJavaバイトコードである、請求項12に記載のシステム。
- 前記第1のプログラミング言語がX10であり、前記第2のプログラミング言語がJavaであり、前記第2のプログラミング言語のコードがJavaソースコードである、請求項11に記載のシステム。
- 前記ダミー引数の型に適合する適当な値がnullである、請求項11に記載のシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012000030A JP5818695B2 (ja) | 2012-01-04 | 2012-01-04 | コード変換方法、プログラム及びシステム |
US13/718,325 US8984497B2 (en) | 2012-01-04 | 2012-12-18 | Source code converting, method program, and systems for first programming language to a code in a second programming language |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012000030A JP5818695B2 (ja) | 2012-01-04 | 2012-01-04 | コード変換方法、プログラム及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013140470A JP2013140470A (ja) | 2013-07-18 |
JP5818695B2 true JP5818695B2 (ja) | 2015-11-18 |
Family
ID=48696028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012000030A Expired - Fee Related JP5818695B2 (ja) | 2012-01-04 | 2012-01-04 | コード変換方法、プログラム及びシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8984497B2 (ja) |
JP (1) | JP5818695B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9710243B2 (en) * | 2013-11-07 | 2017-07-18 | Eagle Legacy Modernization, LLC | Parser that uses a reflection technique to build a program semantic tree |
JP6409638B2 (ja) | 2015-03-20 | 2018-10-24 | 富士通株式会社 | コンパイラ、コンパイル装置、および、コンパイル方法 |
US9459848B1 (en) * | 2015-05-29 | 2016-10-04 | International Business Machines Corporation | Obtaining correct compile results by absorbing mismatches between data types representations |
US10275226B2 (en) * | 2015-10-23 | 2019-04-30 | Oracle International Corporation | Structural representation of generic type variable in a nominally typed virtual machine |
US10255170B2 (en) | 2016-12-19 | 2019-04-09 | International Business Machines Corporation | On-demand codeset converter generation |
US10459829B2 (en) * | 2017-06-07 | 2019-10-29 | M/S. Cigniti Technologies Limited | Overall test tool migration pipeline |
US10481881B2 (en) | 2017-06-22 | 2019-11-19 | Archeo Futurus, Inc. | Mapping a computer code to wires and gates |
WO2018236384A1 (en) * | 2017-06-22 | 2018-12-27 | Archeo Futurus, Inc. | COMPILATION AND OPTIMIZATION OF A COMPUTER CODE BY MINIMIZING A NUMBER OF STATES IN A FINAL MACHINE CORRESPONDING TO THE COMPUTER CODE |
US9996328B1 (en) | 2017-06-22 | 2018-06-12 | Archeo Futurus, Inc. | Compiling and optimizing a computer code by minimizing a number of states in a finite machine corresponding to the computer code |
US10846059B2 (en) | 2019-02-05 | 2020-11-24 | Simply Inspired Software, Inc. | Automated generation of software bindings |
CN110134707A (zh) * | 2019-04-12 | 2019-08-16 | 平安普惠企业管理有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
US11288062B2 (en) * | 2019-12-11 | 2022-03-29 | Sap Se | Automatic source code refactoring |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4374408A (en) * | 1971-06-16 | 1983-02-15 | Burroughs Corporation | Multi-pass system and method for source to source code translation |
US6721941B1 (en) * | 1996-08-27 | 2004-04-13 | Compuware Corporation | Collection of timing and coverage data through a debugging interface |
MY126363A (en) * | 1996-10-25 | 2006-09-29 | Gemalto Sa | Using a high level programming language with a microcontroller |
US5920720A (en) * | 1997-02-25 | 1999-07-06 | Microsoft Corporation | Efficient computer based virtual machine object structure |
US6195792B1 (en) * | 1998-02-19 | 2001-02-27 | Nortel Networks Limited | Software upgrades by conversion automation |
US6654950B1 (en) * | 1999-08-24 | 2003-11-25 | Bae Systems Mission Solutions Inc. | Software rehosting system and method |
EP1174791B1 (en) * | 2000-07-10 | 2017-09-27 | Microsoft Technology Licensing, LLC | Unified data type system and method |
US6662359B1 (en) * | 2000-07-20 | 2003-12-09 | International Business Machines Corporation | System and method for injecting hooks into Java classes to handle exception and finalization processing |
GB0029115D0 (en) * | 2000-11-29 | 2001-01-10 | Sgs Thomson Microelectronics | Assembling an object code module |
US7406682B2 (en) * | 2001-03-26 | 2008-07-29 | Emc Corporation | Translator-compiler for converting legacy management software |
US7992140B2 (en) * | 2005-07-29 | 2011-08-02 | Microsoft Corporation | Compiler supporting programs as data objects |
US7481361B2 (en) * | 2005-09-29 | 2009-01-27 | International Business Machines Corporation | Method and system for identifying unsafe synthetic transactions and modifying parameters for automated playback |
WO2008068519A1 (en) * | 2006-10-02 | 2008-06-12 | Transitive Limited | Computer system and method of adapting a computer system to support a register window architecture |
US8527946B2 (en) * | 2007-03-06 | 2013-09-03 | International Business Machines Corporation | Declarative object identity using relation types |
US8601453B2 (en) * | 2010-09-19 | 2013-12-03 | Micro Focus (Us), Inc. | COBOL to bytecode translation |
-
2012
- 2012-01-04 JP JP2012000030A patent/JP5818695B2/ja not_active Expired - Fee Related
- 2012-12-18 US US13/718,325 patent/US8984497B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20130174131A1 (en) | 2013-07-04 |
US8984497B2 (en) | 2015-03-17 |
JP2013140470A (ja) | 2013-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5818695B2 (ja) | コード変換方法、プログラム及びシステム | |
JP5466601B2 (ja) | コード生成方法、システム及びプログラム | |
JP4183399B2 (ja) | 複数言語のコンパイル方法及びシステム | |
EP0718760B1 (en) | Method and apparatus for generating platform-standard object files containing machine-independent code | |
US8245210B2 (en) | Compile-time context for dynamically bound operations | |
US9043768B2 (en) | System and method for efficient compilation and invocation of function type calls | |
US7478366B2 (en) | Debugger and method for debugging computer programs across multiple programming languages | |
CN110149800B (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
US9043765B2 (en) | Simultaneously targeting multiple homogeneous and heterogeneous runtime environments | |
JP4562918B2 (ja) | インタプリティブ・ランタイム環境のためのコンパイル・プログラムの生成 | |
US10209968B2 (en) | Application compiling | |
JP4806060B2 (ja) | コンパイラ・プログラム、コンパイル方法及びコンピュータ・システム | |
US20100293534A1 (en) | Use of vectorization instruction sets | |
US20090328016A1 (en) | Generalized expression trees | |
US9134973B2 (en) | Dynamic compiling and loading at runtime | |
KR102156371B1 (ko) | 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치 | |
EP2945057B1 (en) | Process execution method and information processing apparatus | |
JP5496792B2 (ja) | コード変換プログラム、方法及びシステム | |
CN111913741B (zh) | 对象拦截方法、装置、介质及电子设备 | |
US11429358B2 (en) | Representing asynchronous state machine in intermediate code | |
CN113568678A (zh) | 一种动态加载资源的方法、装置及电子设备 | |
JP5950288B2 (ja) | プログラミング言語の処理系を実現する装置及び方法 | |
US20110321009A1 (en) | Implementing encryption via aspect oriented programming | |
US9720660B2 (en) | Binary interface instrumentation | |
Mohan | Comparative Analysis Of JavaScript And WebAssembly In The Browser Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140807 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150825 |
|
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: 20150908 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150929 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5818695 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |