RCS—a system for version control
Software—Practice & Experience
The integration of version control into programming languages
An international workshop on Advanced programming environments
A relational model of data for large shared data banks
Communications of the ACM
Programming-in-the-Large versus Programming-in-the-Small
Proceedings of the 4. Fachtagung der GI Programmiersprachen
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
The history of FORTRAN I, II, and III
ACM SIGPLAN Notices - Special issue: History of programming languages conference
ANNA: a language for annotating ADA programs
ANNA: a language for annotating ADA programs
Software development control based on system structure description
Software development control based on system structure description
A framework to support software system evolution
A framework to support software system evolution
A process-oriented approach to configuration management
ICSE '89 Proceedings of the 11th international conference on Software engineering
On correctly configuring versioned objects
VLDB '89 Proceedings of the 15th international conference on Very large data bases
Managing multi-variant software configuration
SCM '91 Proceedings of the 3rd international workshop on Software configuration management
A unified version model for configuration management
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Unified versioning through feature logic
ACM Transactions on Software Engineering and Methodology (TOSEM)
The Cactis Project: Database Support for Software Environments
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Programs products are quite often families of large and modular programs. Modern programming languages support the formulation of such program families only partially. At the time being it is usually not possible to describe different revisions, variants, and versions of single program building blocks and whole programs. This paper presents a proposal for the formulation of such version information as part of the program text. In a newly introduced CONFIG part of a program building block the programmer can express: (1) to which versions the building block belongs, and (2) which versions of other building blocks it uses. In this new construct a version is defined as a pair (revision, variant), and a variant as a vector of attribute values. With these language constructs the “knowledge” about the program versions can be expressed by facts and rules. The representation of this knowledge is adapted to the structure of the program, and the generation of specific program versions can be done automatically. The configuration algorithm has been implemented in Prolog, and this prototype implementation has been used for some examples.