Abstract
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.
This work was carried out while the author was at the Department of Computer Science, Lund University, Sweden.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
Erik H. Baalbergen. Design and implementation of parallel make. Computing Systems, 1:135–158, 1988.
Andrew D. Birrell and Bruce Jay Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1):39–59, February 1984.
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.
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.
Christian S. Collberg. Flexible Encapsulation. PhD thesis, Lund University, December 1992.
R. S. Engelmore and A. J. Morgan. Blackboard Systems, chapter 30. Addison-Wesley, 1988. ISBN 0-201-17431-6.
M. C. Er. A parallel computation approach to topological sorting. The Computer Journal, 26(4):293–295, 1983.
Michael B. Feldman. Data Structures with Modula-2. Prentice-Hall, 1988. ISBN 0-13-197666-4.
Charles M. Geschke, James H. Morris Jr., and Edwin H. Satterthwaite. Early experience with Mesa. CACM, 20(8):540–553, August 1977.
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.
Simon L. Peyton Jones. Parallel Graph Reduction, chapter 24. Prentice-Hall, 1987. ISBN 0-13-453325-9.
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.
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.
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.
Eduard F. Klein. Attribute evaluation in parallel. In Proceedings of the Workshop on Parallel Compilation, Kingston, Ontario, Canada, May 1990.
Greg Nelson. Systems Programming with Modula-3. Prentice Hall, 1991. ISBN 0-13-590464-1.
Jukka Paakki, Anssi Karhinen, and Tomi Silander. Orthogonal type extensions and reductions. SIGPLAN Notices, 25(7):28–38, July 1990.
Russel W. Quong. The Design and Implementation of an Incremental Linker. PhD thesis, Stanford University, May 1989.
Stephen Richardson and Mahadevan Ganapathi. Code optimization across procedures. Computer, pages 42–49, February 1989.
M. W. Rogers, editor. Ada: Language, Compilers and Bibliography. Cambridge, 1984. ISBN 0-521-26464-2.
David W. Wall. Experience with a software-defined machine architecture. ACM Transactions on Programming Languages and Systems, 14(3):299–338, July 1992.
Niklaus Wirth. Programming in Modula-2. Springer Verlag, second edition, 1983.
Niklaus Wirth. Type extensions. ACM Transactions on Programming Languages and Systems, 10(2):204–214, April 1988.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Collberg, C.S. (1994). Distributed high-level module binding for flexible encapsulation and fast inter-modular optimization. In: Gutknecht, J. (eds) Programming Languages and System Architectures. Lecture Notes in Computer Science, vol 782. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57840-4_37
Download citation
DOI: https://doi.org/10.1007/3-540-57840-4_37
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57840-6
Online ISBN: 978-3-540-48356-4
eBook Packages: Springer Book Archive