Adaptive interface for a software development environment
Abstract
A software development environment that permits early detection of problems that arise in porting a program to a number of different platforms. In the environment, the source code for the program to be ported is compiled together with a set of header files or other database that describes the different platforms. The compiler emits a list of porting problems that the program source code has with respect to the platforms. Also included in the environment are run-time binary code that detects porting problems for the different platforms at run time and a library of run-time routines that deal with particular porting problems. The header files, the run-time binary code for the platform, and the run-time routines are generated by a meta-compiler from a description of the differences between the platforms written in the AdI language. Also generated is platform proof source code which tests whether the description of a platform in the AdI language is correct.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A metacompiler that makes a database which describes differences in the usage of program constructs between a plurality of platforms, the metacompiler comprising:
a reading component that reads a description of the differences written in a language interpretable by the metacompiler and produces an internal tree structure therefrom; an analysis component that organizes the tree structure for simpler access to information therein: and a code generation component that generates the database from the tree structure as organized by the analysis component.
2 . The metacompiler set forth in claim 1 wherein:
the language describes the differences using structures including
selector names that are associated with the platforms; and
selectors that use the selector names to specify bindings of the program constructs for the platforms with which the selector names are associated.
3 . The metacompiler set forth in claim 2 wherein:
a selector is represented in the internal tree structure by a tree selector that is associated with a definition in the internal tree structure of the construct for which the selector specifies the bindings, the tree selector specifying a set of bindings that produce unambiguous readings of the definition of the construct and the code generating component generating code as required for each of the unambiguous readings.
4 . The metacompiler set forth in claim 3 wherein:
the definition of the construct is included in a tree which includes at least a definition of a further construct, the further construct having at least a further selector associated therewith; and
a tree selector associated with the tree specifies a set of bindings that produce unambiguous readings of the definition of the construct and the definition of the further construct and the code generating component generating code from the tree as required for each of the unambiguous readings.
5 . The metacompiler set forth in claim 4 wherein:
there is a plurality of the further constructs; and
the analysis component carries information from a tree selector contained in the tree into the tree selector associated with the tree.
6 . The metacompiler set forth in claim 4 wherein:
the code generation component includes a function which iterates through the bindings specified in the tree selector and produces a version of the tree for each of the bindings, the code being generated from each version of the tree.
7 . An improved tree structure used in a compiler to represent the object being compiled, the improvement comprising:
a tree selector at a root of the tree structure or of a subtree thereof, the tree selector specifying a set of bindings for constructs in the tree that produce unambiguous readings of the constructs.Join the waitlist — get patent alerts
Track US2004226004A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.