Skip to main content

Advertisement

SpringerLink
Log in
Menu
Find a journal Publish with us Track your research
Search
Cart
Book cover

European Symposium on Programming

ESOP 2007: Programming Languages and Systems pp 475–489Cite as

  1. Home
  2. Programming Languages and Systems
  3. Conference paper
Multi-language Synchronization

Multi-language Synchronization

  • Robert Ennals1 &
  • David Gay1 
  • Conference paper
  • 974 Accesses

  • 3 Citations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 4421)

Abstract

We propose multi-language synchronization, a novel approach to the problem of migrating code from a legacy language (such as C) to a new language. We maintain two parallel versions of every source file, one in the legacy language, and one in the new language. Both of these files are fully editable, and the two files are kept automatically in sync so that they have the same semantic meaning and, where possible, have the same comments and layout.

We propose non-deterministic language translation as a means to implement multi-language synchronization. If a file is modified in language A, we produce a new version in language B by translating the file into a non-deterministic description of many ways that it could be encoded in language B and then choosing the version that is closest to the old file in language B.

To demonstrate the feasibility of this approach, we have implemented a translator that can synchronize files written in a straw-man language, Jekyll, with files written in C. Jekyll is a high level functional programming language that has many of the features found in modern programming languages.

Keywords

  • Previous Version
  • Translation System
  • Optimal Match
  • Ming Language
  • Legacy Language

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.

Chapter PDF

Download to read the full chapter text

References

  1. Brabrand, C.: Dual syntax for XML languages. In: Bierman, G., Koch, C. (eds.) DBPL 2005. LNCS, vol. 3774, pp. 27–41. Springer, Heidelberg (2005)

    CrossRef  Google Scholar 

  2. Brewer, E., et al.: Thirty years is long enough: Getting beyond C. In: Proceedings of the USENIX workshop on Hot topics in Operating Systems (2005)

    Google Scholar 

  3. Buneman, P., Khanna, S., Tan, W.C.: On propagation of deletions and annotations through views. In: PODS’02 (2002)

    Google Scholar 

  4. FOR_C: Converts FORTRAN into readable, maintainable C code, http://www.cobalt-blue.com

  5. C# Language Specification. ECMA (June 2005)

    Google Scholar 

  6. Dayal, U., Bernstein, P.A.: On the correct translation of update operations on relational views. ACM Transactions on Database Systems 8 (1982)

    Google Scholar 

  7. DeLine, R., Fahndrich, M.: Enforcing high-level protocols in low-level software. In: Proceedings of the ACM conference on Programming Language Design and Implementation, ACM Press, New York (2001)

    Google Scholar 

  8. Ennals, R.: Dr. Jekyll and Mr. C. Tech. Rep. IR-TR-2005-104, Intel Research (2005)

    Google Scholar 

  9. Foster, J.N., et al.: Exploiting schemas in data synchronization. In: Database Programming Languages (DBLP) (2005)

    Google Scholar 

  10. Foster, J.N., et al.: Combinators for bi-directional tree transformations: A linguistic approach to the view update problem. In: Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’05), ACM Press, New York (2005)

    Google Scholar 

  11. Fowler, M.: Language workbenches: The killer-app for domain specific languages (June 2005), http://www.martinfowler.com/articles/languageWorkbench.html

  12. Gillespie, D.: p2c, http://www.synaptics.com/people/daveg/

  13. Goldberg, A., Robson, D.: Smalltalk-80: The Language. Addison-Wesley, Reading (1989)

    MATH  Google Scholar 

  14. Gottlob, G., Paolini, P., Zicari, R.: Properties and update semantics of consistent views. ACM Transactions on Database Systems 13 (1988)

    Google Scholar 

  15. Jim, T., et al.: Cyclone: A safe dialect of C. In: Proceedings of the USENIX annual technical conference (2002)

    Google Scholar 

  16. Liu, D., et al.: A Java library for bidirectional XML transformation. In: JSSST annual conference (2005)

    Google Scholar 

  17. Mashey, J.R.: Languages, levels, libraries, and longevity. ACM Queue 2(9) (2004)

    Google Scholar 

  18. McCloskey, B., Brewer, E.: ASTEC: A new approach to refactoring c. In: Proceedings of the 10th European Software Engineering Conference (2005)

    Google Scholar 

  19. McNamara, B., Smaragdakis, Y.: Functional programming in C++. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP’00), ACM Press, New York (2000)

    Google Scholar 

  20. Meertens, L.: Designing constraint maintainers for user interaction (1998), http://www.kestrel.edu/home/people/meertens/

  21. Milner, R., et al.: The Definition of Standard ML (Revised). MIT Press, Cambridge (1997)

    Google Scholar 

  22. Mycroft, A.: Type-based decompilation. In: Swierstra, S.D. (ed.) ESOP 1999 and ETAPS 1999. LNCS, vol. 1576, Springer, Heidelberg (1999)

    CrossRef  Google Scholar 

  23. Necula, G.C., et al.: CCured: type-safe retrofitting of legacy software. ACM Transactions on Programming Languages and Systems (2004)

    Google Scholar 

  24. The Objective C Programming Language. Apple (Oct. 2005)

    Google Scholar 

  25. Peyton Jones, S.: Haskell 98 Language and Libraries. Cambridge University Press, Cambridge (2003)

    Google Scholar 

  26. Stallman, R.M.: Using and Porting GNU CC (Version 2.0). Free Software Foundation (Feb. 1992)

    Google Scholar 

  27. Stroustrup, B.: The C++ Programming Language. Addison-Wesley, Reading (1997)

    Google Scholar 

  28. Wadler, P.: Why no-one uses functional languages. SIGPLAN Notices 33 (1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

  1. Intel Research Berkeley, 2150 Shattuck Avenue, Berkeley, CA 94704, USA

    Robert Ennals & David Gay

Authors
  1. Robert Ennals
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. David Gay
    View author publications

    You can also search for this author in PubMed Google Scholar

Editor information

Rocco De Nicola

Rights and permissions

Reprints and Permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this paper

Cite this paper

Ennals, R., Gay, D. (2007). Multi-language Synchronization. In: De Nicola, R. (eds) Programming Languages and Systems. ESOP 2007. Lecture Notes in Computer Science, vol 4421. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71316-6_32

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-540-71316-6_32

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-71314-2

  • Online ISBN: 978-3-540-71316-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Publish with us

Policies and ethics

search

Navigation

  • Find a journal
  • Publish with us
  • Track your research

Discover content

  • Journals A-Z
  • Books A-Z

Publish with us

  • Publish your research
  • Open access publishing

Products and services

  • Our products
  • Librarians
  • Societies
  • Partners and advertisers

Our imprints

  • Springer
  • Nature Portfolio
  • BMC
  • Palgrave Macmillan
  • Apress
  • Your US state privacy rights
  • Accessibility statement
  • Terms and conditions
  • Privacy policy
  • Help and support
  • Cancel contracts here

167.114.118.210

Not affiliated

Springer Nature

© 2023 Springer Nature