Abstract
The rapid changes in computer hardware technology that have occurred in the past are expected to continue well past the year 2000. This paper investigates the impact that these trends will have on the programming language compiler. We examine the dual questions of
-
1.
How will the internal organization and structure of compilers need to change in order to adapt to new technology?
-
2.
How will the processing performed by compilers need to change in order to keep up with changes in the underlying hardware?
Chapter PDF
Similar content being viewed by others
References
Adams, R., Tichy, W. Si Weinert, A. (1994), ‘The cost of selective recompilation and environment processing’, ACM Transactions on Software Engineering and Methodology 3 (1), 3–28.
Ammons, G., Ball, T. & Larus, J. (1997), Exploiting hardware performance counters with flow and context sensitive profiling, in ‘Proceedings of the ACM Sigplan Symposium on Programming Language Design and Implementation’, pp. 85–96.
Anon (1996), ‘Mitshubishi java device’. URL: http://www.melco.co.jp/service/m32r/
August, D., Hwu, W. & Mahlke, S. (1997), A framework for balancing flow control and prediction, in ‘Proceedings of the 30th International Symposium on Microarchiitecture’.
Baalbergen, E. H. (1988), Design and implementation of parallel make, in U. Association, ed., ‘Computing Systems, Spring, 1988.’, Vol. 1, USENIX, pp. 135–158.
Blainey, B. & Archambault, R. (1997), The toronto portable optimizer: Engineering large scale optimization, in ‘CASCON 97 Compiler Optimization Workshop’, IBM Canada Centre for Advanced Studies.
Burger, D. & Goodman, J. (1997), ‘Billion transister architectures’, IEEE Computer 30 (9), 46–48.
Cashin, P., Joliat, M., Kamel, R. & Lasker, D. (1981), Experience with a modular typed language: Protel, in ‘Proceedings of the 5th International Conference on Software Engineering’, pp. 136–143.
Chaitin, G. (1982), Register allocation and spilling via graph coloring, in ‘Proceedings of the ACM Sigplan Symposium on Compiler Construction’, pp. 98–105.
Crawford, J. & Huck, J. (1997), Motivation and design approach for the is-64 64-bit instruction set architecture, in ‘Microprocessor Forum’.
Ernst, J., Evans, W., Fraser, C., Lucco, S. & Proebsting, T. (1997), Code compression, in ‘Proceedings of the ACM SIGPLAN ’97 Conference on Programming Language Design and Implementation’, pp. 358–365.
Fischer, C. & LeBlanc, Jr., R. (1991), Advanced Compiler Design Implementation, Benjamin/Cummings Publishing Co.
Goodwin, D. (1997), Interprocedural dataflow analysis in an executable optimizer, in ‘Proceedings of the ACM Sigplan Symposium on Programming Language Design and Implementation’, pp. 122–133.
Hashemi, A., Kaeli, D. & Calder, B. (1997), Efficient procedure mapping using cache line coloring, in ‘Proceedings of the ACM Sigplan Symposium on Programming Language Design and Implementation’, pp. 171–182.
Hillis, W. D. & Steele, Jr., G. L. (1986), ‘Data parallel algorithms’, Communications of the ACM 29 (12), 1170–1183.
Hwu, W. (1997), Predicated microprocessor architectures and their enabling compiler technology, in ‘GASCON 97 Compiler Optimization Workshop’, IBM Canada Centre for Advanced Studies.
IEEE Spectrum Staff (1997), Technology 1997: Analysis and Forecast Issue, Vol. 34, IEEE Spectrum.
Kalsow, B. (1996), ‘Re: Object-oriented compiler construction’, USENET News comp.compilers.
Kalsow, B., Muller, E. & Heydon, A. (1995), ‘Src modula-3: a tour of the compiler’. URL: http://www.research.digital.com/SRC/modula-3/html/compiler.html
Koehler, B. & Horspool, R. (1996), ‘Ccc: A caching compiler for c’, Software - Practice & Experience.
Linton, M. & Quong, R. (1989), ‘A macroscopic profile of program compilation and linking’, IEEE Transactions on Software Engineering 15(4), 427–436.
Litman, A. (1993), ‘An implementation of precompiled headers’, Software–Practice & Experience 23 (3), 341–350.
Morgan, R. (1997), private communication.
Muchnick, S. S. (1997), Crafting a Compiler with C, Morgan Kaufman. Poletto, M., Engler, D. & Kaashoek, M. (1997), tcc: A system for fast flexible and high-level dynamic code generation, in ‘Proceedings of the ACM Sigplan Symposium on Programming Language Design and Implementation’, pp. 109–121.
Sites, R. L. (1979), How to use 1000 registers, in ‘Proceedings of 1st Caltech Conference on VLSI’, Caltech CS dept, pp. 527–532.
Vandevoorde, M. T. (1987), Parallel compilation on a tightly-coupled multiprocessor, Master’s thesis, Massachusetts Institute of Technology.
Waite, W. (1986), ‘The cost of lexical analysis’, Software–Practice H Experience 16 (5), 473–488.
Wortman, D. & Junkin, M. (1992), A concurrent compiler for modula-2+, in ‘Proceedings of the ACM Sigplan Symposium on Programming Language Design and Implementation’, pp. 68–81.
Yershov, A. (1965), Alpha - an automatic programming system of high efficiency, in ‘IFIP Congress ′65’.
Zhou, S., Zheng, X., Wang, J. & Delisle, P. (1994), ‘Utopia: A load sharing system for large, heterogeneous distributed computer systems’, Software - Practice & Experience.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1998 IFIP
About this chapter
Cite this chapter
Wortman, D.B. (1998). Compiling at 1000 MHz and beyond. In: Horspool, R.N. (eds) Systems Implementation 2000. IFIP Advances in Information and Communication Technology. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-35350-0_15
Download citation
DOI: https://doi.org/10.1007/978-0-387-35350-0_15
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-5041-2873-5
Online ISBN: 978-0-387-35350-0
eBook Packages: Springer Book Archive