Generating software development tools via target architecture specification
First Claim
Patent Images
1. A system for auto-generating code generation software development tool components, the system comprising:
- one or more frameworks describing one or more processor architecture-independent features for a plurality of software development tool components, wherein the plurality of software development tool components comprise one or more selected from the group consisting of;
assembly components, disassembly components, encoding components, decoding components, opcode selection components, and instruction legalization components;
a component generation tool for processing a specification describing a target processor architecture and the frameworks;
wherein the component generation tool is operable to generate software development tool component data from which the plurality of software development tool components can be generated, wherein the software development tool component data comprises an instruction legalization table, wherein at least one software development tool component of the plurality of software development tool components is included in a plurality of different software development tools, wherein the software development tool component data comprises target processor architecture-specific data for an assembler, a disassembler, an encoder, a decoder, and an instruction legalizer, and wherein the component generation tool is operable to process a second specification describing a different second target processor architecture to generate software development component data appropriate for the second target processor architecture; and
a processing unit for executing the component generation tool.
2 Assignments
0 Petitions
Accused Products
Abstract
Technologies are provided for automatically generating software development tool components and associated software development tools for a target architecture via a target architecture specification. Architecture-specific information can be compartmentalized from architecture-independent information. Accordingly, development components or tools can be easily generated for another target architecture by substituting a different target architecture specification.
-
Citations
32 Claims
-
1. A system for auto-generating code generation software development tool components, the system comprising:
-
one or more frameworks describing one or more processor architecture-independent features for a plurality of software development tool components, wherein the plurality of software development tool components comprise one or more selected from the group consisting of;
assembly components, disassembly components, encoding components, decoding components, opcode selection components, and instruction legalization components;a component generation tool for processing a specification describing a target processor architecture and the frameworks;
wherein the component generation tool is operable to generate software development tool component data from which the plurality of software development tool components can be generated, wherein the software development tool component data comprises an instruction legalization table, wherein at least one software development tool component of the plurality of software development tool components is included in a plurality of different software development tools, wherein the software development tool component data comprises target processor architecture-specific data for an assembler, a disassembler, an encoder, a decoder, and an instruction legalizer, and wherein the component generation tool is operable to process a second specification describing a different second target processor architecture to generate software development component data appropriate for the second target processor architecture; anda processing unit for executing the component generation tool. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. The system of 1 wherein the specification describes the target processor architecture by listing register and instruction data for the target processor architecture.
-
8. A computer-readable medium comprising:
-
computer-executable instructions in a specification language for representing a target processor architecture; and one or more frameworks describing processor architecture-independent features for software development tool components for the target processor architecture, wherein the software development tool components comprise one or more selected from the group consisting of;
assembly components, disassembly components, encoding components, decoding components, opcode selection components, and instruction legalization components;wherein the instructions, in combination with the frameworks, are executable for generating the software development tool components for the target processor architecture, wherein the software development tool components are used for generating a plurality of different software development tools, and wherein at least one software development tool component of the software development tool components is included in two or more of the plurality of different software development tools. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer-readable medium comprising:
computer-executable instructions for causing a computer to execute a tool for auto-generating software development tool components, the tool comprising; a means for receiving a specification describing a target processor architecture; a means for creating source code describing one or more software development tool components from the specification, wherein the software development tool components comprise one or more selected from the group consisting of;
assembly components, disassembly components, encoding components, decoding components, opcode selection components, and instruction legalization components;a means for integrating the source code into one or more frameworks; and a means for creating one or more software development tool components from the integrated framework, wherein the one or more software development tool components are used for generating a plurality of different software development tools, and wherein at least one software development tool component of the one or more software development tool components is included in two or more of the plurality of different software development tools. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
21. A method for auto-generating software development tool components of a plurality of different software development tools for a target processor architecture, the method comprising:
-
providing a specification describing the target processor architecture; creating one or more descriptions of software development tool components from the specification, wherein the software development tool components comprise one or more selected from the group consisting of;
assembly components, disassembly components, encoding components, decoding components, opcode selection components, and instruction legalization components;creating a target compiler description comprising the one or more descriptions and one or more frameworks; creating the software development tool components from the one or more descriptions and one or more frameworks; creating a target compiler from the target compiler description and the software development tool components; creating a target debugger description comprising the one or more descriptions and one or more frameworks; and creating a target debugger from the target debugger description and the software development tool components; wherein the plurality of different software development tools comprises the target compiler and the target debugger, and wherein the software development tool components are used in both the target compiler and the target debugger. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A method of retargeting a plurality of different software development tools from a first processor architecture to a different second processor architecture comprising:
-
creating a first specification describing the first processor architecture; creating one or more frameworks describing software development tool components in a processor architecture-independent manner; creating a first plurality of different software development tools targeted to the first processor architecture from a combination of the first specification and the one or more frameworks; creating a second specification describing the second processor architecture; and creating a second plurality of different software development tools targeted to the second processor architecture from a combination of the second specification and the one or more frameworks; wherein the first and second specifications contain data for creating a plurality of software development tool components targeted to the specific first and second processor architectures, wherein the plurality of software development tool components comprise one or more selected from the group consisting of;
assembly components, disassembly components, encoding components, decoding components, opcode selection components, and instruction legalization components, wherein the plurality of software development tool components are used when creating the first and second plurality of different software development tools, and wherein at least one software development tool component of the plurality of software development tool components is included in two or more of the first and second plurality of different software development tools. - View Dependent Claims (28)
-
-
29. A method for updating a targeted plurality of different software development tools, the method comprising the following:
-
a) providing a specification describing a target processor architecture; b) parsing the specification to create data relating to a plurality of software development tool components, wherein the plurality of software development tool components comprise one or more selected from the group consisting of;
assembly components, disassembly components, encoding components, decoding components, opcode selection components, and instruction legalization components;c) combining the data relating to a plurality of software development tool components with data relating to a common framework; d) compiling the combined data to create the targeted plurality of different software development tools comprising software development tool components, wherein at least one software development tool component of the software development tool components is included in two or more of the targeted plurality of different software development tools; e) updating at least one of the data relating to the common framework and the specification; and f) reprocessing steps a)-d) using either the updated common framework or specification.
-
-
30. An automated method of generating software development tools, the method comprising:
-
reading by software of a target processor architecture specification for a target processor architecture, wherein the target processor architecture specification comprises definitions of architecture-specific features sufficient to inform construction of any of a plurality of software development tool components so that they function properly for the target processor architecture; generating by software a plurality of software development tool components based at least on part on the target processor architecture specification, wherein the plurality of software development tool components comprise one or more selected from the group consisting of;
assembly components, disassembly components, encoding components, decoding components, opcode selection components, and instruction legalization components; andintegrating by software the software development tool components to generate a plurality of different software development tools for the target processor architecture, wherein at least one software development tool component of the software development tool components is included in two or more of the plurality of different software development tools. - View Dependent Claims (31, 32)
-
Specification