IP Library Granted Patent US 9,519,465
Granted Patent B2
US 9,519,465 · App. 13/872,897 · Granted Dec 13, 2016

Method and system for generating code

Inventor: Thorsten Bernecker (Senden, DE)
Assignee: innoWake GmbH
G06F8/41G06F8/51G06F9/45516G06F8/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,519,465
App. No.
13/872,897
Granted
Dec 13, 2016
Kind
B2
Abstract

A computer implemented method and system to generate final code for execution in a runtime environment, the method including creation, via a compiler, of intermediate code from destination source code, wherein the destination source code has been compiled from original source code which includes at least one jump instruction, by omitting the at least one jump instruction, the destination source code existing in a destination programming language and the original source code in a source programming language, loading the intermediate code into an intermediate code manipulation unit, and creation, via the intermediate code manipulation unit, of the final code from the intermediate code, wherein the creation comprises an insertion of at least one jump statement into the final code, and wherein the inserted at least one jump statement is functionally equivalent to the at least one omitted jump instruction.

Claims (21)

1. A non-transitory computer readable medium comprising computer program application code that, when loaded into a data processing unit, executes a method to generate code from original source code, wherein the original source code includes at least one jump instruction and exists in a source programming language, the method comprising:

creating, by a compiler, of intermediate code from the original source code by omitting the at least one jump instruction and inserting a jump marker for each omitted jump instruction into the intermediate code, the intermediate code existing in a destination programming language,

loading the intermediate code into a code manipulation unit, and

creating, via the code manipulation unit, of destination source code from the intermediate code, the destination source code being in the destination programming language, wherein the creating comprises replacing each jump marker in the intermediate code with at least one source code fragment, wherein each of the at least one source code fragments is functionally equivalent to a corresponding omitted jump instruction associated with a respective jump marker, and wherein each of the at least one inserted source code fragments comprises:

at least one loop statement inside the source code for the exception handling,

a try block and a catch block, the try block and the catch block being inserted inside the at least one loop statement,

an instruction which throws an exception in order to continue the processing at a destination of the corresponding omitted jump instruction,

instructions within the catch block that catches the exception and continues execution using a switch statement,

the switch statement handling the processing at the destination of the corresponding omitted jump instruction using a plurality of case branches, and

an auxiliary variable which stores the destination of the corresponding omitted jump instruction and which is evaluated by the switch statement.

2. The non-transitory computer readable medium of claim 1 , wherein the at least one source code fragment inserted into the destination source code performs program statements which are functionally equivalent to at least one of:

a static jump instruction placed in the original source code, if the destination of the jump instruction is inside the stack frame of the jump instruction;

a dynamic jump instruction placed in the original source code, if the destination of the jump instruction is outside the stack frame of the jump instruction; and

a dynamic jump instruction placed in the original source code, if the destination of the jump instruction is inside the stack frame of the jump instruction.

3. The non-transitory computer readable medium of claim 1 , wherein the destination programming language comprises a programming language that does not allow jump statements of type GOTO in its source code.

4. The non-transitory computer readable medium of claim 1 , wherein the destination programming language comprises at least one of Java, and a programming language which is executable in the NET runtime environment.

5. The non-transitory computer readable medium of claim 1 , wherein the source programming language comprises a programming language that allows jump statements in its source code.

6. The non-transitory computer readable medium of claim 1 , wherein the source programming language comprises at least one of Cobol, Natural, and PL/1.

7. The non-transitory computer readable medium of claim 1 , the method further comprising a step of creating final code from the destination source code, wherein the final code comprises hardware independent code, the final code being for execution in a runtime environment.

8. The non-transitory computer readable medium of claim 1 , wherein the at least one jump instruction is a GOTO statement, and wherein the destination of the jump is contained in the instruction which throws the exception.

9. The non-transitory computer readable medium of claim 1 , wherein the source programming language is Natural, and the at least one jump instruction is a REINPUT statement, the REINPUT statement forcing computer program execution to continue at the point of the computer program that last prompted user input, and wherein the destination of the jump stored by the auxiliary variable is at a most recently used INPUT statement.

Assignments (2)
CHANGE OF NAME Recorded Dec 21, 2017
From: INNOWAKE GMBH
To: DELOITTE INNOWAKE GMBH
Reel/Frame 044920/0694 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2013
From: BERNECKER, THORSTEN
To: INNOWAKE GMBH
Reel/Frame 030312/0402 →
Priority Claims (1)
WO PCT/EP2010/066414 · Oct 28, 2010 · international
Continuity (2)
Continuation PCTEP2011069044 · Oct 28, 2011
Related Publication 20130247017A1 · Sep 19, 2013