The integration of version control into programming languages

  • JFH Winkler
Configuration Nersion Control
Part of the Lecture Notes in Computer Science book series (LNCS, volume 244)


Industrial program products are 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 attributes. 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.


Building Block Main Program Language Construct Program Family Version Information 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

8 Literature

  1. Apo 85.
    Apollo Computer Inc.: DOMAIN Software Engineering Environment (DSEE) Reference Manual. Order No.003016,Rev.03,July 85.Google Scholar
  2. Bac 78a.
    Backus, John: The History of Fortran I, II, and III. SIGPLAN Notices 13,8(1978) 165..180.Google Scholar
  3. BL 76.
    Belady, L.A.; Lehmann, M.M.: A model of large program development. IBM Syst. Journal 15,3(1976) 225..252.Google Scholar
  4. CCI 85.
    CCITT: CCITT High Level Language (CHILL), Recommendation Z.200, Geneva 1985.Google Scholar
  5. Cod 70a.
    Codd, E.F.: A Relational Model of Data for Large Shared Data Banks. CACM 13,6(1970) 377..387.Google Scholar
  6. DK 76.
    DeRemer, F.L.; Kron, H.H.: Programming-in-the-large versus Programming-in-the-small. = [NS 76:80..89].Google Scholar
  7. EP 84.
    Erickson, V.B.; Pellegrin, J.F.: Build — A Software Construction Tool. AT & T Bell Laboratories Technical Journal 63, 6(1984) 1049..1059.Google Scholar
  8. Est 85.
    Estublier, J.: A Configuration Manager: The Adèle Database of Programs. Workshop on Software Engineering Environments for Programming-in-the-Large. Cape Cod, June 85, pp. 140..147.Google Scholar
  9. Est 86.
    Estublier, Jacky: ADELE — A Data Base of Programs. Presentation Manual. Laboratoire Genie Informatique, 38402 St.Martin d'Heres, Juin 1986.Google Scholar
  10. Fel 79.
    Feldman, Stuart I.: Make — A Program for Maintaining Computer Programs. Software — Practice and Experience 9(1979) 255..265.Google Scholar
  11. GHW 85.
    Guttag, John V.; Horning, James J.; Wing, Jeanette M.: The Larch Family of Specification Languages. IEEE Software 2,5(1985)24..36.Google Scholar
  12. Hab 85.
    Habermann, A. N.: Automatic Deletion of Obsolete Information. The Journal of Systems and Software 5,2(1985)145..154.Google Scholar
  13. HKL 84.
    Luckham, David C.; Henke, Friedrich W. von; Krieg-Brueckner, Bernd; Owe, Olaf: ANNA-A Language for Annotating Ada Programs. Stanford Univ. Comp. Syst. Lab. Tech. Rep 84–261.Google Scholar
  14. HP 80.
    Habermann, A. Nico; Perry, Dewayne E.: System Composition and Version Control for Ada. Carnegie-Mellon Univ., Dept. of Computer Science, May 1980.Google Scholar
  15. HP 80a.
    Habermann, A. Nico; Perry, Dewayne E.: Well-Formed System Compositions. Dept. of Computer Science, Carnegie-Mellon Univ., CMU-CS-80-117, Pittsburgh, March 1980.Google Scholar
  16. HSZ 85.
    Swinehart, Daniel C.; Zellweger, Polle T.; Hagmann, Robert B.: The Structure of Cedar. SIGPLAN Notices 20,7(1985) 230..244.Google Scholar
  17. Loc 83.
    Lockemann, Peter C.: Analysis of Version and Configuration Control in a Software Engineering Environment. = Davis, C.G.; Jajodia, S.; Ng, P.A.; Yeh, R.T. (eds): Entity-Relationship Approach to Software-Engineering, North Holland, Amsterdam 1983.Google Scholar
  18. LS 83a.
    Lampson, Butler W.; Schmidt, Eric E.: Organizing Software in a Distributed Environment. SIGPLAN Notices 18,6(1983) 1..13.Google Scholar
  19. MMS 79.
    Mitchell, James G.; Maybury, William; Sweet, Richard: Mesa Language Manual. Xerox, Palo Alto Research Center, Palo Alto 1979. Version 5.0, CSL-79-3.Google Scholar
  20. MTW 84.
    Mehner, T.; Tobiasch, R.; Winkler, J.F.H.: A Proposal for an Integrated Programming Environment for CHILL. Third CHILL Conference, Cambridge, September 23–28, 1984, pp.65..71.Google Scholar
  21. Not 85.
    Notkin, David: The GANDALF Project. The Journal of Systems and Software 5,2(1985) 91..105.Google Scholar
  22. NS 76.
    Schneider, H.-J.; Nagl, M. (eds.): Programmiersprachen — 4.Fachtagung der GI, Springer Berlin usw. 1976.Google Scholar
  23. PS 59.
    Perlis, A.J.; Samelson, K. (eds): Report on the Algorithmic Language ALGOL. Num. Math. 1 (1959) 41..60.Google Scholar
  24. Ref83.
    Reference Manual for the Ada Programming Language ANSI/MIL-STD 1815A. United States Dept. of Defense, Washington, January 1983.Google Scholar
  25. Roc 75.
    Rochkind, Mark J.: The source code control system. IEEE Trans. on Softw. Eng. 1,4(1975) 364..370.Google Scholar
  26. Sie 81.
    Siemens AG: EWSD Digital Switching System. telcom report Vol. 4(1981) Special Issue.Google Scholar
  27. SW 80.
    Winkler, J.F.H.; Stoffel, C.: Methode zur Erzeugung angepaßter und übertragbarer Betriebssysteme. = Schneider, H.J. (Hrsg.): Portable Software, B.G. Teubner Stuttgart, 1980, pp. 34..47.Google Scholar
  28. Tic 85.
    Tichy, Walter F.: RCS — A System for Version Control. Software — Pract. & Exp. 15,7(1985) 637..654.Google Scholar
  29. Wal 84.
    Walden, Kim: Automatic Generation of Make Dependencies. Software — Pract. & Exp. 14,6(1984) 575..585.Google Scholar
  30. Wi 69a.
    Wijngaarden, A. van: Report on the Algorithmic Language ALGOL 68. Num. Mathematik 14(1969) 79..218.Google Scholar
  31. Win 82.
    Winkler, J.F.H.: Ada: die neuen Konzepte. Elektron. Rechenanlagen 24,4(1982) 175..186.Google Scholar
  32. Win 85.
    Winkler, J.F.H.: Language Constructs and Library Support for Families of Large Ada Programs. Workshop on Software Engineering Environments for Programming-in-the-Large. Cape Cod, June 85, 17..28.Google Scholar
  33. Win 86.
    Winkler, J.F.H.: Die Programmiersprache CHILL. Automatisierungstechnische Praxis 28,5(1986)252..258, 28,6(1986)290..294.Google Scholar
  34. Wir 71.
    Wirth, Niklaus: The Programming Language PASCAL. acta informatica 1(1971) 35..63.CrossRefGoogle Scholar
  35. Wir 80.
    Wirth, Niklaus: MODULA-2. Eidgenössische Technische Hochschule Zürich, Institut für Informatik Bericht 36, March 1980.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • JFH Winkler
    • 1
  1. 1.Siemens Corporate Laboratories for Information TechnologyMünchen 83Fed.Rep.Germany

Personalised recommendations