Bigloo: a portable and optimizing compiler for strict functional languages

  • Manuel Serrano
  • Pierre Weis
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 983)

Abstract

We present Bigloo, a highly portable and optimizing compiler. Bigloo is the first compiler for strict functional languages that can efficiently compile several languages: Bigloo is the first compiler for full Scheme and full ML, and for these two languages, Bigloo is one of the most efficient compiler now available (Bigloo is available by anonymous ftp on ftp.inria.fr [192.93.2.54]).

This high level of performance is achieved by numerous high-level optimizations. Some of those are classical optimizations adapted to higher-order functional languages (e.g. inlining), other optimization schemes are specific to Bigloo (e.g. a new refined closure analysis, an original optimization of imperative variables, and intensive use of higher-order control flow analysis). All these optimizations share the same design guideline: the reduction of heap allocation.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    A. Appel. Compiling with continuations. Cambridge University Press, 1992.Google Scholar
  2. 2.
    Eastern Research Apple Computer and Technology. Dylan, An object-oriented dynamic language. Apple Computer, Inc., April 1992.Google Scholar
  3. 3.
    J.F. Bartlett. Scheme->C a Portable Scheme-to-C Compiler. Research Report 89 1, DEC Western Research Laboratory, Palo Alto, California, January 1989.Google Scholar
  4. 4.
    H.J. Boehm. Space efficient conservative garbage collection. In ACM Conference on Programming Language Design and Implementation, SIGPLAN Notices 28, 6, pages 197–206, 1991.Google Scholar
  5. 5.
    J. Chailloux, M. Devin, F. Dupont, J.M. Hullot, B. Serpette, and J. Vuillemin. Le_lisp version 15.2. le manuel de référence. Technical Report L-003, INRIA-Rocquencourt, France, 1986.Google Scholar
  6. 6.
    R. Cridlig. An optimizing ML to C compiler. In Workshop on ML and its applications, San Francisco, California, USA, 1992. ACM SIGPLAN.Google Scholar
  7. 7.
    G. Dowek, A. Felty, H. Herbelin, and G. Huet. The COQ proof assistant user's guide. Technical Report 154, Inria-Rocquencourt, France, 1993.Google Scholar
  8. 8.
    X. Leroy. Unboxed objects and polymorphic typing. In Symposium on Principles of Programming Languages, pages 177–188, Albuquerque, New Mexico, January 1992.Google Scholar
  9. 9.
    R.A. MacLachlan. CMU Common Lisp User's Manual. Technical report, Carnegie Mellon University, Pittsburgh, PA 15213, USA, May 1992.Google Scholar
  10. 10.
    C. Queinnec. Designing meroon v3. In Christian Rathke, Jürgen Kopp, Hubertus Hohl, and Harry Bretthauer, editors, Object-Oriented Programming in Lisp: Languages and Applications. A Report on the ECOOP'93 Workshop, Sankt Augustin (Germany), September 1993.Google Scholar
  11. 11.
    N. Séniak. Théorie et pratique de Sqil: un langage intermédiaire pour la compilation des langages fonctionnels. PhD thesis, Université Pierre et Marie Curie (Paris VI), November 1991.Google Scholar
  12. 12.
    M. Serrano. Vers une compilation portable et performante des langages fonctionnels. PhD thesis, Université Pierre et Marie Curie (Paris VI), December 1994.Google Scholar
  13. 13.
    M. Serrano. Control Flow Analysis: a Functional Languages Compilation Paradigm. In Symposium on Applied Computing (SAC '95), Nashville, Tennessee, USA, February 1995.Google Scholar
  14. 14.
    M. Serrano and P. Weis. 1 + 1=1: an optimizing Caml compiler. In ACM SIGPLAN Workshop on ML and its Applications, pages 101–111, Orlando (Florida, USA), 1994. INRIA RR 2265.Google Scholar
  15. 15.
    O. Shivers. Control flow analysis in scheme. In Conference on Programming Language Design and Implementation, Atlanta, Georgia, June 1988.Google Scholar
  16. 16.
    IEEE Std 1178-1990. Ieee Standard for the Scheme Programming Language. Institute of Electrical and Electronic Engineers, Inc., New York, NY, 1991.Google Scholar
  17. 17.
    D. Tarditi, A. Acharya, and P. Lee. No assembly required: Compiling Standard ML to C. Technical Report CMU-CS-90-187, Carnegie Mellon University, Pittsburg, Pennsylvania, School of Computer Science, March 1991.Google Scholar
  18. 18.
    P. Weis. The CAML Reference manual, Version 2.6.1. Technical Report 121, INRIA-Rocquencourt, 1990.Google Scholar
  19. 19.
    P. Weis and X. Leroy. Le langage CAML. InterEditions, Paris, 1993.Google Scholar

Copyright information

© Springer-Verlag 1995

Authors and Affiliations

  • Manuel Serrano
    • 1
    • 2
  • Pierre Weis
    • 1
  1. 1.INRIALe Chesnay CedexFrance
  2. 2.Université de Montréal, C.P. 6128MontréalCanada

Personalised recommendations