EP1501010A2

Description language for an extensible compiler and tools infrastructure

Abstract

Methods and systems are described herein for extending configuration dependent extensible software programs. Classes of a core extensible software program may be extended by adding a configuration dependent extension. The extensions may be added statically prior to compiling the core version of a software program or dynamically at runtime. The declaration of extensible core classes may include an extensibility attribute with an indication of whether the class is statically extensible or dynamically extensible. An object description language is also described herein for appropriately declaring configuration dependent extensible classes. Also, a preprocessor is described herein for processing the object description language to generate a source code representation of the extensible class declarations and their extensions. The source code representation may then be used to generate the extended version of the core software program.

EP1501010A2, drawing sheet 1
Sheet 1 of 15

Term

Term ended

Projected expiry passed 1 July 2024, 2.2 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

44 claims: 6 independent, 38 dependent

  1. 1
    A method of generating an extended version of software written in an object-oriented programming language which provides for object classes via a plurality of extensions to the software, the method comprising:receiving invocations of a plurality of software development scenario class extension sets comprising extensions for respective software development scenarios to be implemented by the extended version of the software;and extending one or more classes of the software as indicated by the extensions.
  2. 11
    A method of extending software written in a programming language by adding extensions to a core version of the software to generate an extended version of the software, the method comprising:receiving a configuration of the extended version of software;receiving in an object description language definitions of extensions to classes of the core version of the software according to the configuration of the extended version of the software, wherein the classes of the core version of the software are indicated in the object description language as statically extensible prior to compile time or dynamically extensible at runtime;and processing the classes of the core version of the software and the extensions to generate the extended version of the software.
  3. 23
    A system for extending software by adding extensions to a core version of the software to generate an extended version of the software, the system comprising:an object description language pre-processor operable for receiving extensions to classes of the core version of the software in an object description language and generating a source code version of the extensions to classes of the core version of the software, wherein the classes of the core version of the software are indicated in the object description language as being dynamically extensible at runtime or statically extensible prior to compile time.
  4. 35
    A computer readable storage medium having stored thereon class declarations of classes of a core version of a software to be extended by extension declarations for extending the core version of the software to generate an extended version of the software, the class declaration of the core version of the software comprising:one or more core class members;and one or more extensibility attributes of the core classes, wherein the extensibility attribute indicates that the core classes are either statically extensible prior to compile time or dynamically extensible at runtime.
  5. 41
    A computer readable storage medium having stored thereon software code for a pre-processor program, wherein the pre-processor program is operable for receiving, in an object description language, classes of a core version of a software and corresponding extensions to the classes of the core version of the software to be used for extending the core version of the software, wherein the classes of the core version of the software are indicated in the object description language as being statically extensible prior to compile time or dynamically extensible at runtime.
  6. 44
    A system for extending software by adding extensions to a core version of the software to generate an extended version of the software, the system comprising:means for receiving extensions to classes of the core version of the software in an object description language and generating a source code version of the extensions to classes of the core version of the software, wherein the classes of the core version of the software are indicated in the object description language as being dynamically extensible at runtime or statically extensible prior to compile time;and means for compiling the source code version of the extensions to classes of the core version of the software to be used for generating the extended version of the software.