Distributed high-level module binding for flexible encapsulation and fast inter-modular optimization

  • Christian S. Collberg
Session Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 782)


We present a new modular object-oriented language with orthogonal encapsulation facilities. The language provides full support for encapsulation and separate compilation which makes it difficult to compile using standard techniques. We present new distributed translating techniques which overcome these difficulties by allowing inter-modular information to be exchanged at link-time. The same techniques may also be used with other modular and object-oriented languages to facilitate fast inter-modular optimizations such as inline expansion.


Abstract Type Executable File Remote Procedure Call Intermediate Code Implementation Unit 
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.


  1. 1.
    Accredited Standards Committee X3, Information Processing Systems, The American National Standards Institute (ANSI), CBEMA, 311 First St. NW, Suite 500, Washington, DC 20001. Draft Proposed American National Standard for Information Systems-Programming Language C++, x3j16/91-0115 edition, September 1991.Google Scholar
  2. 2.
    Erik H. Baalbergen. Design and implementation of parallel make. Computing Systems, 1:135–158, 1988.Google Scholar
  3. 3.
    Andrew D. Birrell and Bruce Jay Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1):39–59, February 1984.Google Scholar
  4. 4.
    David Callahan, Keith D. Cooper, Ken Kennedy, and Linda Torczon. Interprocedural constant propagation. In Proceedings of the SIGPLAN '86 Symposium On Compiler Construction. ACM, June 1986.Google Scholar
  5. 5.
    A. Celentano, P. Delia Vigna, C. Ghezzi, and D. Mandrioli. Separate compilation and partial specification in Pascal. IEEE Transactions on Software Engineering, 6:320–328, July 1980.Google Scholar
  6. 6.
    Christian S. Collberg. Flexible Encapsulation. PhD thesis, Lund University, December 1992.Google Scholar
  7. 7.
    R. S. Engelmore and A. J. Morgan. Blackboard Systems, chapter 30. Addison-Wesley, 1988. ISBN 0-201-17431-6.Google Scholar
  8. 8.
    M. C. Er. A parallel computation approach to topological sorting. The Computer Journal, 26(4):293–295, 1983.Google Scholar
  9. 9.
    Michael B. Feldman. Data Structures with Modula-2. Prentice-Hall, 1988. ISBN 0-13-197666-4.Google Scholar
  10. 10.
    Charles M. Geschke, James H. Morris Jr., and Edwin H. Satterthwaite. Early experience with Mesa. CACM, 20(8):540–553, August 1977.Google Scholar
  11. 11.
    Mark Himelstein, Fred C. Chow, and Kevin Enderby. Cross-module optimizations: Its implementation and benefits. In Proceedings of the Summer 1987 USENIX Conference, pages 347–356, June 1987.Google Scholar
  12. 12.
    Simon L. Peyton Jones. Parallel Graph Reduction, chapter 24. Prentice-Hall, 1987. ISBN 0-13-453325-9.Google Scholar
  13. 13.
    Michael D. Junkin and David B. Wortman. The implementation of a concurrent compiler. Technical Report CSRI-235, Computer Systems Research Institute. University of Toronto, December 1990.Google Scholar
  14. 14.
    Howard P. Katseff. Using data partitioning to implement a parallel assembler. SIGPLAN Notices, 23(9):66–76, September 1988. ACM/SIGPLAN Parallel Programming: Experience with Applications, Languages, and Systems.Google Scholar
  15. 15.
    S. Khanna and A. Ghafoor. A data partitioning technique for parallel compilation. In Proceedings of the Workshop on Parallel Compilation, Kingston, Ontario, Canada, May 1990.Google Scholar
  16. 16.
    Eduard F. Klein. Attribute evaluation in parallel. In Proceedings of the Workshop on Parallel Compilation, Kingston, Ontario, Canada, May 1990.Google Scholar
  17. 17.
    Greg Nelson. Systems Programming with Modula-3. Prentice Hall, 1991. ISBN 0-13-590464-1.Google Scholar
  18. 18.
    Jukka Paakki, Anssi Karhinen, and Tomi Silander. Orthogonal type extensions and reductions. SIGPLAN Notices, 25(7):28–38, July 1990.Google Scholar
  19. 19.
    Russel W. Quong. The Design and Implementation of an Incremental Linker. PhD thesis, Stanford University, May 1989.Google Scholar
  20. 20.
    Stephen Richardson and Mahadevan Ganapathi. Code optimization across procedures. Computer, pages 42–49, February 1989.Google Scholar
  21. 21.
    M. W. Rogers, editor. Ada: Language, Compilers and Bibliography. Cambridge, 1984. ISBN 0-521-26464-2.Google Scholar
  22. 22.
    David W. Wall. Experience with a software-defined machine architecture. ACM Transactions on Programming Languages and Systems, 14(3):299–338, July 1992.Google Scholar
  23. 23.
    Niklaus Wirth. Programming in Modula-2. Springer Verlag, second edition, 1983.Google Scholar
  24. 24.
    Niklaus Wirth. Type extensions. ACM Transactions on Programming Languages and Systems, 10(2):204–214, April 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Christian S. Collberg
    • 1
  1. 1.Department of Computer ScienceUniversity of AucklandAucklandNew Zealand

Personalised recommendations