Automated code-generation for cross-language development, testing, and integration
First Claim
1. A method comprising:
- defining, by a processor, a set of user-defined data types with an encoding;
using the encoding and a code-generator utility to generate, by the processor, a first at least one class to implement each of the user-defined data types within the set of user-defined data types in a first software general-purpose language (GPL) as a first container;
using the encoding and the code-generator utility to generate, by the processor, a second at least one class to implement each of the set of user-defined data types within the set of user-defined data types in a second software GPL as a second container;
running a code-generator to generate, by the processor, software configured to marshal each of the set of user-defined data types within the set of user-defined data types in the first and second at least one classes;
marshalling, by the processor, data directly between the first software language and the second software language utilizing a Matlab executable (MEX) interface; and
de-marshalling, by the processor, the marshalled data directly into the second software language utilizing the MEX interface.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method provide for easy sharing of data between different software languages. A method begins by creating a definition defining a data structure with a domain specific language. The definition is then input to a code generator which generates data structures and algorithms in a first software language. The same generator software also creates equivalent data structures and algorithms in a second software language that is different than the first software language. The two output implementations provide compatible utilities for marshalling and de-marshalling data back and forth between the first software language and the second software language without requiring further manipulation of the two implementations.
-
Citations
20 Claims
-
1. A method comprising:
-
defining, by a processor, a set of user-defined data types with an encoding; using the encoding and a code-generator utility to generate, by the processor, a first at least one class to implement each of the user-defined data types within the set of user-defined data types in a first software general-purpose language (GPL) as a first container; using the encoding and the code-generator utility to generate, by the processor, a second at least one class to implement each of the set of user-defined data types within the set of user-defined data types in a second software GPL as a second container; running a code-generator to generate, by the processor, software configured to marshal each of the set of user-defined data types within the set of user-defined data types in the first and second at least one classes; marshalling, by the processor, data directly between the first software language and the second software language utilizing a Matlab executable (MEX) interface; and de-marshalling, by the processor, the marshalled data directly into the second software language utilizing the MEX interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system comprising:
-
a processor; a data type generation logic configured to cause the processor to allow a user to define a set of user-defined data types; a code generation logic configured to cause the processor to generate a first at least one class to implement each of the set of user-defined data types within the set of user-defined data types in a first container of a first software general-purpose language (GPL), and wherein the code generation logic is configured to cause the processor to generate a second at least one class to implement each of the set of data types within the set of user-defined data types in a second container of a second software GPL;
wherein the code generation logic is further configured to cause the processor to generate software configured to marshal each of the set of user-defined data types within the set of user-defined data types in the first and second at least one classes;a data marshalling logic configured to cause the processor to marshal data directly between the first software language and the second software language utilizing a Matlab executable (MEX); and a data de-marshalling logic configured to cause the processor to de-marshal the marshalled data directly into the second software language utilizing the MEX interface. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification