How to merge program texts

https://doi.org/10.1016/0164-1212(94)90026-4Get rights and content

Abstract

Software usually exists in multiple versions. All these versions must evolve in parallel. We propose a program-merging system that helps programmers to manage the evolution of all versions, which is much needed in software development and maintenance environments. The system can either combine two programs or it can combine changes to a base program. The system consists of three stages: a syntax-based comparator, a synchronous printer and a merging editor. Based on the differences between the two programs identified by the syntax-based comparator, the synchronous printer combines the texts of two programs. Because there may be conflicts between the two programs, a merging editor provides the user with commands to resolve the conflicts. Another distinct feature of the merging system is the generator approach to producing syntactic program comparators for new programming languages.

References (13)

  • A.V. Aho et al.

    Compilers: Principles, Techniques and Tools

    (1986)
  • C.W. Fraser et al.

    An Editor for Revision Control

    ACM Trans. Progr. Lang. Syst.

    (1987)
  • S. Horwitz

    Identifying the Semantic and Textual Differences Between Two Versions of a Program

    ACM SIGPLAN Not.

    (1990)
  • S. Horwitz et al.

    Integrating Non-Interfering Versions of Programs

    ACM Trans. Progr. Lang. Syst.

    (1989)
  • S.C. Johnson

    YACC—Yet Another Compiler Compiler

  • S. Kaplan et al.
There are more references available in the full text version of this article.

Cited by (16)

View all citing articles on Scopus
View full text