IP Library Granted Patent US 8,332,828
Granted Patent B2
US 8,332,828 · App. 12/031,279 · Granted Dec 11, 2012

System for translating diverse programming languages

Assignee: Purenative Software Corporation
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,332,828
App. No.
12/031,279
Granted
Dec 11, 2012
Kind
B2
Abstract

A computer language translator that translates all or any portion thereof of source code in an original computer language to source code in a target computer language, which may then be translated back to the original language while still maintaining concept, syntax, form of expression, and formatting of the original source code.

Claims (43)

1. A computer language translator for translating a first Object-Oriented Programming (OOP) computer language source code to a second OOP computer language source code and comprising:

a computer having a storage, said computer having translating software executing thereon, the translating software including:

an emulated Application Programming Interface (API) library including a table accessible by said translating software on the computer;

said API library having data indicative of types of data manipulations between the first OOP computer language source code and the second OOP computer language source code;

said table including second computer language API equivalent functions callable by said second OOP computer language source code;

said translating software identifying the type of data manipulation the first OOP computer language source code performs and accessing the table of said API library and correlating the type of data manipulation the first OOP computer language source code performs to the second OOP computer language source code;

said translating software generating the second OOP computer language source code based in part upon identified the API equivalent functions in the second OOP computer language source code.

2. The computer language translator according to claim 1 wherein the translator is a bi-directional translator.

3. The computer language translator according to claim 2 wherein said translating software analyzes the second computer language source code to identify the type of data manipulation that the second computer language source code performs, accessing said library and correlating the type of data manipulation the second computer language source code performs to first computer language source code.

4. The computer language translator according to claim 3 wherein the correlation from the second computer language to the first computer language is independent of the context in which the second computer language source code is used, said translating software generating re-translated first computer language source code that emulates the type of data manipulation the second computer language source code performs.

5. The computer language translator according to claim 2 wherein the re-translated first computer language source code equates to the first computer language source code in: context, syntax, form of expression and formatting.

6. The computer language translator according to claim 1 wherein said translating software performs a name adjustment when an incompatibility between the first computer language source code and the second computer language source code occurs.

7. The computer language translator according to claim 1 wherein the first computer language source code comprises a class.

8. The computer language translator according to claim 7 wherein the class consists of units selected from the group consisting of: methods, data fields, inner-classes, and combination thereof.

9. The computer language translator according to claim 1 wherein the first computer language source code comprises an identifier.

10. The computer language translator according to claim 9 wherein said software performs a name adjustment when an incompatibility between the identifier and the second computer language source code occurs.

11. The computer language translator according to claim 1 wherein said software generates a tagged element inserted in the second computer language source code indicative of a type of data manipulation the first computer language source code performs.

12. The computer language translator according to claim 11 wherein the tagged element comprises information selected from the group consisting of: formatting, translation data, and first computer language source code.

13. The computer language translator according to claim 1 wherein the first computer language is Java and the second computer language is C++ or C#.

14. The computer language translator according to claim 1 wherein the first computer language is C# and the second computer language is C++.

15. The computer language translator according to claim 1 wherein the first or the second computer language is a scripting language.

16. The computer language translator according to claim 15 wherein the scripting language is selected from the group consisting of JavaScript, Ruby, Python, Perl and PHP.

17. The computer language translator according to claim 1 further comprising a parser for parsing the first computer language source code into parsed elements.

18. A method for translating a first Object-Oriented Programming (OOP) computer language source code to a second OOP computer language source code comprising the steps of:

providing a computer with a storage, the computer having translation software executing thereon;

providing an emulated Application Programming Interface (API) library having data indicative of types of data manipulations between the first OOP computer language source code and the second OOP computer language source code;

providing a table that is part of the API library including second computer language API equivalent functions callable by said second OOP computer language source code;

identifying the type of data manipulation the first OOP computer language source code performs;

accessing the table and correlating the type of data manipulation the first OOP computer language source code performs to the second OOP computer language source code; and

generating said second OOP computer language source code based in part upon identified the API equivalent functions in the second OOP computer language source code.

19. The method for translating according to claim 18 further comprising the steps of:

identifying the type of data manipulation the second computer language source code performs;

accessing the table and correlating the type of data manipulation the second computer language source code performs to first computer language source code; and

generating first computer language source code based in part upon identified equivalent functions in the first computer language,

manipulation the second computer language source code performs.

20. The method for translating according to claim 19 wherein the re-translated first computer language source code equates to the first computer language source code in: context, syntax, form of expression and formatting.

21. The method for translating according to claim 19 wherein the first computer language is Java and the second computer language is C++ or C#.

22. The method for translating according to claim 19 wherein the first computer language is C# and the second computer language is C++.

23. The method for translating according to claim 19 wherein the first or the second computer language is a scripting language.

24. The method for translating according to claim 23 wherein the scripting language is selected from the group consisting of JavaScript, Ruby, Python, Perl and PHP.

25. The method for translating according to claim 19 further comprising the step of parsing the first computer language source code into parsed elements.

26. The method for translating according to claim 18 further comprising the step of performing a name adjustment when an incompatibility between the first computer language source code and the second computer language source code occurs.

27. The method for translating according to claim 18 further comprising the step generating and inserting a tagged element in the second computer language source code indicative of a type of data manipulation the first computer language source code performs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2008
From: VARGAS, BYRON D.
To: PURENATIVE SOFTWARE CORPORATION
Reel/Frame 021012/0317 →
Continuity (3)
Continuation In Part 10716099 · Nov 17, 2003
Provisional Application 60427733 · Nov 20, 2002
Related Publication 20080216060A1 · Sep 4, 2008