IP Library Granted Patent US 9,043,766
Granted Patent B2
US 9,043,766 · App. 13/328,049 · Granted May 26, 2015

Language translation using preprocessor macros

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,043,766
App. No.
13/328,049
Granted
May 26, 2015
Kind
B2
Abstract

A method is provided for providing consistent logical code across specific programming languages. The method incorporates preprocessor macros in a source computer program code to generate a program control flow. The preprocessor macros can be used to describe program control flow in the source programming language for execution in the source computer program code. The preprocessor macros can also be used to generate control flow objects representing the control flow, which converts the source computer program code into a general language representation. The general language representation when executed is used to output computer programming code in specific programming languages representing the same logical code as that of the source computer program code.

Claims (22)

1. A computer-implemented method comprising:

receiving computer programming code incorporating a plurality of macros, wherein the plurality of macros represent program control flow, and wherein the computer programming code is written in a source language including statements consistent with the source language;

preprocessing the received computer programming code, wherein the preprocessing comprises replacing the plurality of macros with a plurality of associated control flow classes representing the control flow associated with the macros, such that:

using the computer programming code generates a general language representation of the control flow using the classes,

the classes include overloaded operators that create classes using the statements consistent with the source language, and

the general language representation is configured to output specific language code;

compiling the preprocessed computer programming code to create a computer program executable; and

storing the computer program executable in a non-transitory storage medium.

2. The computer-implemented method of claim 1 , wherein the source language is C++.

3. The computer-implemented method of claim 1 , wherein the specific language code comprises at least one of: a compiled language, a scripting language, one or more library functions, and any combination thereof.

4. The computer-implemented method of claim 1 , wherein the overloaded operators include at least one overloaded operator that generates an operator-specific subclass associated with operator.

5. The computer-implemented method of claim 1 , wherein the specific language code is outputted by traversing the general language representation as a tree.

6. The computer-implemented method of claim 1 , wherein the computer programming code includes image filtering algorithms.

7. The computer-implemented method of claim 6 , wherein the specific language code includes a compiled language and one or more library functions for the compiled language, and wherein the computer program executable enables execution of the image filtering algorithm on a general purpose processor and on a specialized graphical processor.

8. A computer-implemented method comprising:

receiving computer language code implementing a computing logic in a source language, wherein the computer language code includes macros associated with control flow;

receiving an input to control a desired output format of the computer language code;

preprocessing the computer language code, wherein the preprocessing comprises selectively performing either of the following steps based on the received input:

converting the macros to program control flow statements associated with the source language such that the computer language code provides instructions to execute the computing logic; or

converting the macros to a plurality of control flow objects associated with a general language representation, wherein the control flow objects convert the computing logic in a source language to the general language representation using operator overloading, and wherein the general language representation outputs the computing logic in a format configured for execution with a specific programming language; and

compiling the preprocessed computer language code.

9. A computer program product containing computer program code stored on a non-transitory computer-readable medium, wherein the computer program code is produced according to the computer-implemented method of any one of the preceding claims.

Assignments (1)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →