IP Library Granted Patent US 9,189,211
Granted Patent B1
US 9,189,211 · App. 12/827,329 · Granted Nov 17, 2015

Method and system for transcoding data

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,189,211
App. No.
12/827,329
Granted
Nov 17, 2015
Kind
B1
Abstract

Method and apparatus and computer program code for cross programming language transformation. This transcoding permits automation of a video game asset conditioning process by using introspection and reflection capabilities of high level tool languages to generate optimally-packed, platform-specific binary memory images as well as the code, such as C++ to read the images.

Claims (58)

1. A system comprising:

a memory device that receives a plurality of first program code, each first program code utilizing a descriptive programming language, the first program code defining one or more classes, the definition including a name of the class and the attributes of the class;

an intermediate code generator that generates an intermediate representation in low-level code of the descriptive programming language of the first program code, wherein the intermediate representation having a header file for each class, the header file containing transcoding of the first program such that each class becomes an intermediate structure that contains the fields and first program array forms become pointers to transformed payloads, along with a counter variable;

a code generator that generates a second program code from the intermediate representation and utilizes a procedural programming language based on selected one or more of the first program code;

a conditioning unit that generates platform-specific runtime data associated with the first program code used in the code generator; and

a terminal having a processor that executes the second program code and the platform-specific runtime data to produce output data.

2. The system according to claim 1 , wherein the descriptive programming language includes C-sharp (C#), or Java.

3. The system according to claim 1 , wherein the procedural programming language includes C or C++.

4. The system according to claim 1 , wherein the code generator is implemented by the descriptive programming language.

5. The system according to claim 1 , wherein the code generator generates the second program code using an introspection function of the descriptive programming language.

6. The system according to claim 1 , wherein the code generator generates the second program code using a reflection function of the descriptive programming language.

7. The system according to claim 1 , wherein the code generator transcodes each class used in the first program code into a structure in the second program code according to a predetermined conversion.

8. The system according to claim 1 , wherein the second program code includes read-only data.

9. The system according to claim 1 , wherein the conditioning unit includes a conditioning instance module.

10. The system according to claim 1 , further comprising a memory image generator.

11. The system according to claim 10 , wherein the memory image generator receives conditioned data from the conditioning unit and generates a memory image according to a platform of the terminal.

12. The system according to claim 10 , wherein the memory image includes binary data.

13. The system according to claim 1 , wherein the conditioning unit conditions a plurality of assets for a game.

14. The system according to claim 13 , wherein the conditioning unit conditions tool data for the game.

15. The system according to claim 1 , wherein the code generator and the conditioning unit implement functions using C# language.

16. The system according to claim 1 , wherein the terminal includes a PlayStation-Portable (PSP) device or a PlayStation3 (PS3) device.

17. A process for transcoding data comprising:

receiving a plurality of first program code, each first program code utilizing a descriptive programming language, the first program code defining one or more classes, the definition including a name of the class and the attributes of the class;

generating an intermediate representation in low-level code of the descriptive programming language of the first program code, wherein the intermediate representation is based on each class and each field in the first program code, the intermediate representation having a header file for each class, the header file containing transcoding of the first program such that each class becomes an intermediate structure that contains the fields and first program array forms become pointers to transformed payloads, along with a counter variable;

generating a second program code from the intermediate representation and utilizing a procedural programming language based on selected one or more of the first program code;

generating platform-specific runtime data associated with the first program code; and

executing the second program code and the platform-specific runtime data to produce output data.

18. The product of the process of claim 17 stored in a computer readable memory.

19. A method for transcoding data comprising:

receiving a plurality of first program code, each first program code utilizing a descriptive programming language, the first program code defining one or more classes, the definition including a name of the class and the attributes of the class;

generating an intermediate representation in low-level code of the descriptive programming language of the first program code, wherein the intermediate representation is based on each class and each field in the first program code, the intermediate representation having a header file for each class, the header file containing transcoding of the first program such that each class becomes an intermediate structure that contains the fields and first program array forms become pointers to transformed payloads, along with a counter variable;

generating a second program code that utilizes a procedural programming language based on selected one or more of the first program code;

generating platform-specific runtime data associated with the first program code; and

executing the second program code and the platform-specific runtime data to produce output data.

20. The method as claimed in claim 19 , wherein the descriptive programming language includes C-sharp (C#), or Java.

21. The method as claimed in claim 19 , wherein the procedural programming language includes C or C++.

22. The method as claimed in claim 19 , wherein the second program code uses an introspection function of the descriptive programming language.

23. The method as claimed in claim 19 , wherein the second program code uses a reflection function of the descriptive programming language.

24. The method as claimed in claim 19 further comprising:

transcoding each class used in the first program code into a structure in the second program code according to a predetermined conversion.

25. The method as claimed in claim 19 , further comprising:

receiving conditioned data; and

generating a memory image according to a desired platform.

26. A non-transitory computer readable medium storing program code that when executed by a processor, performs the steps of:

receiving a plurality of first program code, each first program code utilizing a descriptive programming language, the first program code defining one or more classes, the definition including a name of the class and the attributes of the class;

generating an intermediate representation in low-level code of the descriptive programming language of the first program code, wherein the intermediate representation is based on each class and each field in the first program code, the intermediate representation having a header file for each class, the header file containing transcoding of the first program such that each class becomes an intermediate structure that contains the fields and first program array forms become pointers to transformed payloads, along with a counter variable;

generating a second program code from the intermediate representation utilizing a procedural programming language based on selected one or more of the first program code;

generating platform-specific runtime data associated with the first program code; and

executing the second program code and the platform-specific runtime data to produce output data.

27. The program code as claimed in claim 26 , wherein the descriptive programming language includes C-sharp (C#), or Java.

28. The program code as claimed in claim 26 , wherein the procedural programming language includes C or C++.

29. The program code as claimed in claim 26 , wherein the second program code uses an introspection function of the descriptive programming language.

30. The program code as claimed in claim 26 , wherein the second program code uses a reflection function of the descriptive programming language.

31. The program code as claimed in claim 26 further comprising program code for:

transcoding each class used in the first program code into a structure in the second program code according to a predetermined conversion.

32. The program code as claimed in claim 26 , further comprising program code for:

receiving conditioned data; and

generating a memory image according to a desired platform.

Assignments (2)
MERGER Recorded Mar 30, 2020
From: SONY INTERACTIVE ENTERTAINMENT AMERICA LLC
To: SONY INTERACTIVE ENTERTAINMENT LLC
Reel/Frame 053323/0567 →
CHANGE OF NAME Recorded May 4, 2016
From: SONY COMPUTER ENTERTAINMENT AMERICA LLC
To: SONY INTERACTIVE ENTERTAINMENT AMERICA LLC
Reel/Frame 038611/0846 →