IP Library Granted Patent US 8,762,962
Granted Patent B2
US 8,762,962 · App. 12/484,622 · Granted Jun 24, 2014

Methods and apparatus for automatic translation of a computer program language code

Inventors: Guy Ben-Artzi (Palo Alto, CA); Yotam Shacham (Palo Alto, CA); Yehuda Levi (Rishon Lezion, IL); Russell William McMahon (Woodside, CA); Amatzi Ben-Artzi (Palo Alto, CA); Alexei Alexevitch (Hertzlia, IL); Alexander Glyakov (Petach Tikva, IL); Tal Lavian (Sunnyvale, CA)
Assignee: Beek Fund B.V. L.L.C.
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 8,762,962
App. No.
12/484,622
Granted
Jun 24, 2014
Kind
B2
Abstract

Embodiments of the methods and apparatus for automatic cross language program code translation are provided. One or more characters of a source programming language code are tokenized to generate a list of tokens. Thereafter, the list of tokens is parsed to generate a grammatical data structure comprising one or more data nodes. The grammatical data structure may be an abstract syntax tree. The one or more data nodes of the grammatical data structure are processed to generate a document object model comprising one or more portable data nodes. Subsequently, the one or more portable data nodes in the document object model are analyzed to generate one or more characters of a target programming language code.

Claims (107)

1. A method, executed by electronic computer hardware in combination with software, for automatic translation of a computer program language code, comprising:

tokenizing one or more characters of a source programming language code to generate a list of tokens;

parsing the list of tokens to generate a grammatical data structure, wherein the grammatical data structure comprises one or more data nodes;

processing the one or more data nodes of the grammatical data, structure to generate a document object model, wherein the document object model comprises one or more portable data nodes; and

analyzing the one or more portable data nodes in the document object model to generate one or more characters of a target programming language code;

normalizing the source programming language, wherein one or more features of the source programming language are managed based on one or more features of the target programming language, comprising:

identifying one or more non-equivalent and one or more equivalent features from the one or more features in the source programming language, wherein the one or more non-equivalent features and the one or more equivalent features are identified based on the one or more features of the target programming language; and

removing the one or more non-equivalent features of the source programming language;

wherein equivalent features are features that are configured to be mapped the source programming language and the target programming language.

2. The method of claim 1 , wherein the grammatical data structure comprises an abstract syntax tree.

3. The method of claim 1 , wherein the source programming language and the target programming language are object oriented programming languages.

4. The method of claim 1 , wherein the source programming language and the target programming language comprise one or more equivalent features.

5. The method of claim 1 , further comprising downloading computer-executable instructions that, if executed by a computing device, cause the computing device to execute said normalizing.

6. The method of claim 1 wherein normalizing the source programming language comprises:

identifying one or more non-equivalent features from the one or more features in the source programming language, wherein the one or more non-equivalent features are identified based on the one or more features of the target programming language; and

replacing the one or more non-equivalent features with the one or more equivalent features of the source programming language.

7. The method of claim 1 further comprising emulating the source programming language, wherein one or more non-equivalent features of the source programming language are emulated.

8. The method of claim 1 , wherein tokenizing comprises processing the one or more characters of the source programming language code based on a set of expression rules.

9. The method of claim 1 , wherein parsing comprises processing the list of tokens based on a set of grammar rules.

10. A method, executed by electronic computer hardware in combination with software, for automatic translation of a computer program language code, comprising:

tokenizing one or more characters of a source programming language code to generate a list of tokens;

parsing the list of tokens to generate a grammatical data structure, wherein the grammatical data structure comprises one or more data nodes;

processing the one or more data nodes of the grammatical data structure to generate a document object model, wherein the document object model comprises one or more portable data nodes; and

analyzing the one or more portable data nodes in the document object model to generate one or more characters of a target programming language code;

wherein processing the one or more data nodes of the grammatical data structure comprises:

scanning the one or more data nodes in the grammatical data structure to identify one or more metadata nodes having a metadata structure that can be deduced from at least one declaration node; and

removing the one or more metadata nodes to generate the one or more portable data nodes, wherein the portable data nodes have a metadata structure that cannot be deduced from at least one declaration node.

11. The method of claim 1 , wherein analyzing the one or more portable data nodes in the document object model comprises:

processing recursively the one or more portable data nodes in the document object model to generate a target list of tokens; and

analyzing the target list of tokens to generate the one or more characters of the target programming language code.

12. The method of claim 1 , further comprising downloading computer-executable instructions that, if executed by a computing device, cause the computing device to execute said tokenizing.

13. The method of claim 1 , further comprising downloading computer-executable instructions that, if executed by a computing device, cause the computing device to execute said parsing.

14. The method of claim 1 , further comprising downloading computer-executable instructions that, if executed by a computing device, cause the computing device to execute said processing.

15. An apparatus including electronic computer hardware in combination with software, for automatic translation of a computer program language code, the apparatus comprising:

a tokenizer configured to tokenize one or more characters of a source programming language code to generate a list of tokens;

a parser configured to parse the list of tokens to generate a grammatical data structure, wherein the grammatical data structure comprises one or more data nodes;

a generator configured to process the one or more data nodes of the grammatical data structure to generate a document object model, wherein the document object model comprises one or more portable data nodes; and

an analyzer configured to process the one or more portable data nodes in the document object model to generate one or more characters of a target programming language code

wherein the generator is further configured to:

scan the one or more data nodes in the abstract syntax tree to identify one or more metadata nodes having a metadata structure that can be deduced from at least one declaration node; and

remove the one or more metadata nodes to generate the one or more portable data nodes having a metadata structure that cannot be deduced from at least one declaration node.

16. The apparatus of claim 15 , wherein the source programming language and the target programming language comprise one or more equivalent features.

17. An apparatus including electronic computer hardware in combination with software, for automatic translation of a computer program language code, the apparatus comprising:

a tokenizer configured to tokenize one or more characters of a source programming language code to generate a list of tokens;

a parser configured to parse the list of tokens to generate a grammatical data structure, wherein the grammatical data structure comprises one or more data nodes;

a generator configured to process the one or more data nodes of the grammatical data structure to generate a document object model, wherein the document object model comprises one or more portable data nodes; and

an analyzer configured to process the one or more portable data nodes in the document object model to generate one or more characters of a target programming language code;

a normalizer configured to:

identify one or more non-equivalent and one or more equivalent features from the one or more features in the source programming language, wherein the one or more non-equivalent features and the one or more equivalent features are identified based on the one or more features of the target programming language; and

remove the one or more non-equivalent features of the source programming language;

wherein equivalent features are features that can be mapped between the source programming language and the target programming language.

18. The apparatus of claim 17 , wherein the normalizer is further configured to remove the one or more non-equivalent features of the source programming language.

19. The apparatus of claim 15 , wherein the tokenizer comprises a finite state machine.

20. The apparatus of claim 15 , wherein the grammatical data structure comprises an abstract syntax tree.

21. The apparatus of claim 15 , wherein the tokenizer is configured to process the one or more characters of the source programming language code based on a set of expression rules.

22. The apparatus of claim 15 , wherein the parser is configured to process the list of tokens based on a set of grammar rules.

23. The apparatus of claim 15 , wherein the generator is configured to scan the one or more data nodes in the grammatical data structure to identify one or more portable data nodes.

24. The apparatus of claim 15 , wherein the analyzer is configured to recursively process the one or more portable data nodes in the document object model to generate a target list of tokens.

25. The apparatus of claim 15 , further comprising an emulator configured to emulate one or more features non-equivalent of the source programming language.

26. The apparatus of claim 15 , wherein the one or more data nodes in the abstract syntax tree represent a grammatical data structure of the list of tokens.

27. The apparatus of claim 15 , wherein the analyzer is further configured to:

process recursively the one or more portable data nodes in the document object model to generate a target list of tokens; and

analyze the target list of tokens to generate the one or more characters of the target programming language code.

28. The apparatus of claim 15 , wherein the source programming language and the target programming language are object oriented programming languages.

29. A non-transitory computer-readable medium having computer-executable instructions for performing a method for language translation of a computer program code, said method comprising:

tokenizing one or more characters of a source programming language code to generate a list of tokens based on a set of expression rules;

parsing the list of tokens to generate a grammatical data structure based on a set of grammar rule, wherein the grammatical data structure comprises one or more data nodes;

processing the one or more data nodes of the grammatical data structure to generate a document object model, wherein the document object model comprises one or more portable nodes; and

analyzing the one or more portable nodes of the document object model to generate one or more characters of a target programming language code;

wherein processing the one or more data nodes of the grammatical data structure comprises:

scanning the one or more data nodes in the grammatical data structure to identify one or more metadata nodes having a metadata structure that can be deduced from at least one declaration node; and

removing the one or more metadata nodes to generate the one or more portable data nodes having a metadata structure that cannot be deduced from at least one declaration node.

30. The computer-readable medium of claim 29 , wherein the grammatical data structure comprises an abstract syntax tree.

31. The computer-readable medium of claim 29 , wherein the list of tokens is parsed based on a set of grammar rules.

32. The computer-readable medium of claim 29 , wherein the source programming language is a computer-game development language.

33. The computer-readable medium of claim 29 , wherein analyzing the one or more portable data nodes in the document object model comprises:

processing recursively the one or more portable data nodes in the document object model to generate a target list of tokens; and

analyzing the target list of tokens to generate the one or more characters of the target programming language code.

34. The computer-readable medium of claim 29 , wherein the source programming language and the target programming language are object oriented programming languages.

35. A system including electronic computer hardware in combination with software, for automatic translation of a computer program language code, comprising:

means for tokenizing one or more characters of a source programming language code to generate a list of tokens;

means for parsing the list of tokens to generate a grammatical data structure, wherein the grammatical data structure comprises one or more data nodes;

means for processing the one or more data nodes of the grammatical data structure to generate a document object model, wherein the document object model comprises one or more portable data nodes; and

means for analyzing the one or more portable data nodes in the document object model to generate one or more characters of a target programming language code;

wherein the means for processing the grammatical data structure comprises:

means for scanning the one or more data nodes in the grammatical data structure to identify one or more metadata nodes having metadata structure that can be deduced from at least one declaration node; and

means for removing the one or more metadata nodes to generate the one or more portable data nodes having a metadata structure that cannot be deduced from at least one declaration node.

36. The system of claim 35 , wherein the grammatical data structure comprises an abstract syntax tree.

37. The system of claim 35 , wherein the list of tokens comprises one or more categorized blocks of the one or more characters of the source programming language code.

38. The system of claim 35 , wherein the source programming language is a computer-game development language.

39. The system of claim 35 , wherein the target programming language is a computer-game development language.

40. The system of claim 35 further comprising means for normalizing the source programming language, wherein one or more features of the source programming language are managed based on one or more features of the target programming language.

41. The system of claim 40 , wherein the means for normalizing the source programming language comprises:

means for identifying one or more non-equivalent and one or more equivalent features from the one or more features in the source programming language, wherein the one or more non-equivalent features and the one or more equivalent features are identified based on the one or more features of the target programming language; and

means for removing the one or more non-equivalent features of the source programming language.

42. The system of claim 35 , wherein the means for analyzing the one or more portable data nodes in the document object model comprises:

means for processing recursively the one or more portable data nodes in the document object model to generate a target list of tokens; and

means for analyzing the target list of tokens to generate the one or more characters of the target programming language code.

43. The system of claim 35 , wherein the source programming language and the target programming language are object oriented programming languages.

44. The method of claim 1 , wherein the grammatical data structure defines a relationship between tokens in the list of tokens.

45. The method of claim 1 , wherein the grammar rules applied in the parsing to generate the grammatical data structure can be context-free grammar or attribute grammar.

46. The apparatus of claim 15 , wherein the grammatical data structure defines a relationship between tokens in the list of tokens.

47. The apparatus of 15 , wherein the grammar rules applied by the parser to generate the grammatical data structure can be context-free grammar or attribute grammar.

48. The computer readable medium of claim 29 , wherein the grammatical data structure defines a relationship between tokens in the list of tokens.

49. The computer readable medium of claim 1 , wherein the grammar rules applied in the parsing to generate the grammatical data structure can be context-free grammar or attribute grammar.

50. The system of claim 35 , wherein the grammatical data structure defines a relationship between tokens in the list of tokens.

51. The system of claim 35 , wherein the grammar rules applied by the means for parsing to generate the grammatical data structure can be context-free grammar or attribute grammar.

Assignments (5)
MERGER Recorded Jan 20, 2016
From: BEEK FUND B.V. L.L.C.
To: XENOGENIC DEVELOPMENT LIMITED LIABILITY COMPANY
Reel/Frame 037535/0018 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2012
From: PARTICLE CODE, INC.
To: BEEK FUND B.V. L.L.C.
Reel/Frame 028558/0177 →
CORRECTIVE ASSIGNMENT TO CORRECT THE FIFTH INVENTOR'S FIRST NAME AND INCORPORATION STATE OF THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 023171 FRAME 0870. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST. Recorded Jul 16, 2012
From: BEN-ARTZI, GUY; SHACHAM, YOTAM; LEVI, YEHUDA; MCMAHON, RUSSELL W.; BEN-ARTZI, AMATZIA; ALEXEVITCH, ALEXEI; GLYAKOV, ALEXANDER; LAVIAN, TAL
To: REAL DICE INC.
Reel/Frame 028563/0305 →
CHANGE OF NAME Recorded Dec 14, 2010
From: REAL DICE INC.
To: PARTICLE CODE, INC.
Reel/Frame 025497/0805 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2009
From: BEN-ARTZI, GUY; SHACHAM, YOTAM; LEVI, YEHUDA; MCMAHON, RUSSELL W.; BEN-ARTZI, AMATZI; ALEXEVITCH, ALEXEI; GLYAKOV, ALEXANDER; LAVIAN, TAL
To: REAL DICE INC.
Reel/Frame 023171/0870 →
Continuity (2)
Provisional Application 61132264 · Jun 16, 2008
Related Publication 20090313613A1 · Dec 17, 2009