Skip to main content

The integration of version control into programming languages

  • Configuration Nersion Control
  • Conference paper
  • First Online:
Book cover Advanced Programming Environments

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 244))

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

8 Literature

  1. Apollo Computer Inc.: DOMAIN Software Engineering Environment (DSEE) Reference Manual. Order No.003016,Rev.03,July 85.

    Google Scholar 

  2. Backus, John: The History of Fortran I, II, and III. SIGPLAN Notices 13,8(1978) 165..180.

    Google Scholar 

  3. Belady, L.A.; Lehmann, M.M.: A model of large program development. IBM Syst. Journal 15,3(1976) 225..252.

    Google Scholar 

  4. CCITT: CCITT High Level Language (CHILL), Recommendation Z.200, Geneva 1985.

    Google Scholar 

  5. Codd, E.F.: A Relational Model of Data for Large Shared Data Banks. CACM 13,6(1970) 377..387.

    Google Scholar 

  6. DeRemer, F.L.; Kron, H.H.: Programming-in-the-large versus Programming-in-the-small. = [NS 76:80..89].

    Google Scholar 

  7. 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. 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. Estublier, Jacky: ADELE — A Data Base of Programs. Presentation Manual. Laboratoire Genie Informatique, 38402 St.Martin d'Heres, Juin 1986.

    Google Scholar 

  10. Feldman, Stuart I.: Make — A Program for Maintaining Computer Programs. Software — Practice and Experience 9(1979) 255..265.

    Google Scholar 

  11. 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. Habermann, A. N.: Automatic Deletion of Obsolete Information. The Journal of Systems and Software 5,2(1985)145..154.

    Google Scholar 

  13. 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. 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. 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. Swinehart, Daniel C.; Zellweger, Polle T.; Hagmann, Robert B.: The Structure of Cedar. SIGPLAN Notices 20,7(1985) 230..244.

    Google Scholar 

  17. 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. Lampson, Butler W.; Schmidt, Eric E.: Organizing Software in a Distributed Environment. SIGPLAN Notices 18,6(1983) 1..13.

    Google Scholar 

  19. 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. 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. Notkin, David: The GANDALF Project. The Journal of Systems and Software 5,2(1985) 91..105.

    Google Scholar 

  22. Schneider, H.-J.; Nagl, M. (eds.): Programmiersprachen — 4.Fachtagung der GI, Springer Berlin usw. 1976.

    Google Scholar 

  23. Perlis, A.J.; Samelson, K. (eds): Report on the Algorithmic Language ALGOL. Num. Math. 1 (1959) 41..60.

    Google Scholar 

  24. Reference Manual for the Ada Programming Language ANSI/MIL-STD 1815A. United States Dept. of Defense, Washington, January 1983.

    Google Scholar 

  25. Rochkind, Mark J.: The source code control system. IEEE Trans. on Softw. Eng. 1,4(1975) 364..370.

    Google Scholar 

  26. Siemens AG: EWSD Digital Switching System. telcom report Vol. 4(1981) Special Issue.

    Google Scholar 

  27. 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. Tichy, Walter F.: RCS — A System for Version Control. Software — Pract. & Exp. 15,7(1985) 637..654.

    Google Scholar 

  29. Walden, Kim: Automatic Generation of Make Dependencies. Software — Pract. & Exp. 14,6(1984) 575..585.

    Google Scholar 

  30. Wijngaarden, A. van: Report on the Algorithmic Language ALGOL 68. Num. Mathematik 14(1969) 79..218.

    Google Scholar 

  31. Winkler, J.F.H.: Ada: die neuen Konzepte. Elektron. Rechenanlagen 24,4(1982) 175..186.

    Google Scholar 

  32. 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. Winkler, J.F.H.: Die Programmiersprache CHILL. Automatisierungstechnische Praxis 28,5(1986)252..258, 28,6(1986)290..294.

    Google Scholar 

  34. Wirth, Niklaus: The Programming Language PASCAL. acta informatica 1(1971) 35..63.

    Article  Google Scholar 

  35. Wirth, Niklaus: MODULA-2. Eidgenössische Technische Hochschule Zürich, Institut für Informatik Bericht 36, March 1980.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Reidar Conradi Tor M. Didriksen Dag H. Wanvik

Rights and permissions

Reprints and permissions

Copyright information

© 1987 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Winkler, J. (1987). The integration of version control into programming languages. In: Conradi, R., Didriksen, T.M., Wanvik, D.H. (eds) Advanced Programming Environments. Lecture Notes in Computer Science, vol 244. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-17189-4_101

Download citation

  • DOI: https://doi.org/10.1007/3-540-17189-4_101

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-17189-8

  • Online ISBN: 978-3-540-47347-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics