12 citations found. Retrieving documents...
M. Feeley, J. Miller, G. Rozas, and J. Wilson. Compiling Higher-Order Languages into Fully Tail-Recursive Portable C. Technical Report Rapport technique 1078, Universite de Montreal, Departement d'informatique et r.o., August 1997.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Automatic Generation of Compact Programs and Virtual Machines.. - Latendresse (2000)   (1 citation)  (Correct)

....The instructions are simple but this simplicity allows an automatic generation of more complex instructions tailored for the programs to execute. The complete instruction set is shown in the Appendix, Table 7. 2. 1 Scheme compilation to Machina We use the front end of Gambit C s Scheme compiler [8] to generate Machina code. The compilation is straightforward but some technical details are important to better understand the generation of macro instructions. 3 The KVM uses on the order of 128K, including libraries. The virtual machine itself is 40K 80K depending on the compiler and the ....

Marc Feeley, James S. Miller, Guillermo J. Rozas, and Jason A. Wilson. Compiling higher-order languages into fully tail-recursive portable c. Technical Report 1078, Universite de Montreal, DIRO, August 1997.


Automatic Generation of Compact Programs and Virtual Machines.. - Latendresse (2000)   (1 citation)  (Correct)

....for Scheme as its instruction set does not include any particular operation for Scheme. This is intended to demonstrate that from a general VM it is possible to come up with a speci c virtual Scheme machine. 1. 3 Scheme compilation to Machina We use the front end of Gambit C s Scheme compiler [9] to generate Machina code. The compilation is straightforward 3 The KVM uses on the order of 128K, including libraries. The virtual machine itself is 40K 80K depending on the compiler and the target platform used. but some technical details are important to better understand the generation of ....

Marc Feeley, James S. Miller, Guillermo J. Rozas, and Jason A. Wilson. Compiling higher-order languages into fully tail-recursive portable c. Technical Report 1078, Universite de Montreal, DIRO, August 1997.


Bee: an Integrated Development Environment for the Scheme.. - Serrano (2000)   (3 citations)  (Correct)

....mapping because C does not provide any mechanism to implement tail recursion. One might consider that limitation too high a price to pay. Solutions to implement tail recursion in C without stack consumption exist but they cannot be used with the natural mapping (Tarditi et al. 1992; Baker, 1994; Feeley et al. 1997). We 20 Manuel Serrano consider the gains of the natural mapping more important. In addition, since local functions are compiled into C loops, which do not allocate stack activation frames, many of tail recursive functions are correctly handled by our compiler. Of course, it is possible to write ....

Feeley, M., Miller, J., Rozas, G., & Wilson, J. 1997 (Aug.). Compiling Higher-Order Languages into Fully Tail-Recursive Portable C. Tech. rept. Rapport technique 1078. Universite de Montreal, Departement d'informatique et r.o.


Flow-Directed Closure Conversion for Typed Languages - Cejtin, Jagannathan, Weeks (2000)   (19 citations)  (Correct)

....code motion) the FOL program is translated to a C program, which is then compiled by gcc. Like [22] a trampoline is used to satisfy tailrecursion. To reduce trampoline costs, multiple FOL procedures may reside in the same C procedure; a dispatch on C procedure entry jumps to the appropriate code [7]. To demonstrate the practicality of our approach, we have measured its impact on compile time and code size for benchmarks with sizes up to 75K lines. Among the benchmarks, knuth bendix, life, lexgen, mlyacc, and simple are standard [1] ratio regions is integer intensive; tensor is ....

Marc Feeley, James Miller, Guillermo Rozas, and Jason Wilson. Compiling higherorder languages into fully tail-recursive portable c. Technical Report Technical Report 1078, Department of Computer Science, University of Montreal, 1997.


Flow-Directed Closure Conversion for Typed Languages.. - Cejtin, Jagannathan..   (19 citations)  (Correct)

....the FOL program is translated to a C program, which is then compiled by gcc. Like [TAL92] a trampoline is used to satisfy proper tail recursion. To reduce trampoline costs, multiple FOL procedures may reside in the same C procedure; a dispatch on C procedure entry jumps to the appropriate code [FMRW97] To demonstrate the practicality of our approach, we have measured its impact on compile time and code size for benchmarks with sizes up to 75K lines. Among the benchmarks, life, count graphs, lexgen, knuth bendix and mlyacc do mostly symbolic processing. Ratio regions is an integer intensive ....

Marc Feeley, James Miller, Guillermo Rozas, and Jason Wilson. Compiling higher-order languages into fully tail-recursive portable c. Technical Report Technical Report 1078, Department of Computer Science, University of Montreal, 1997.


A Case for the Unified Heap Approach to Erlang Memory Management - Feeley (2001)   (2 citations)  Self-citation (Feeley)   (Correct)

....separate compilation and Scheme s tail call semantics in standard C is that function calls and returns, especially between different modules, is much slower than if machine code was generated. Programs compiled with Gambit C run on average about half as fast as when machine code is generated [FMRW97]. Fortunately most of the benchmarks used here rely on local tail calls which are handled eciently. There should not be a big di erence between the performance observed with Gambit C and a good compiler generating machine code. 6 . ....

M. Feeley, J. Miller, G. Rozas, and J. Wilson. Compiling Higher-Order Languages into Fully Tail-Recursive Portable C. Technical Report 1078, Departement d'informatique et de recherche operationelle, Universite de Montreal, 1997.


Compiling Erlang to Scheme - Feeley, Larose (1998)   (6 citations)  Self-citation (Feeley)   (Correct)

....entry and return) 3. The technique used by Gambit C to implement proper tail recursion in C imposes an overhead on function returns as well as calls between modules. For nrev the overhead is high because most of the time is spent in a tight non tail recursive function. Independent experiments [12] have shown that this kind of program can be sped up by a factor of two to four when native code is generated instead of C. Finally ring and stable manipulate processes. Here we see a divergence in the results. Hipe is roughly three times faster than Etos on ring. Etos performs slightly better ....

M. Feeley, J. Miller, G. Rozas, and J. Wilson. Compiling Higher-Order Languages into Fully Tail-Recursive Portable C. Technical Report 1078, D'epartement d'informatique et de recherche op'erationelle, Universit'e de Montr'eal, 1997.


A Compacting Incremental Collector and its Performance in a.. - Martin Larose (1998)   (9 citations)  Self-citation (Feeley)   (Correct)

....of a larger effort to implement a compiler for Erlang [AVWW96] a concurrent mostly functional programming language for realtime telecommunication applications developed at Ericsson. Our compiler, called Etos [FL98] first compiles Erlang to Scheme and then uses the Gambit C Scheme compiler [FM90, FMRW97] to compile the result into C. This approach is reasonable and efficient because Scheme and Erlang share many similarities (e.g. use of functional style, dynamic typing, data types) The telecommunication applications targeted here are not hard real time applications; it is permissible for an ....

....machine registers is important here because they are roots of the collector) For portability, the Scheme heap (which contains all the reclaimable Scheme objects) is allocated from the C heap by using the malloc C library routine. 3. 1 The Stack Cache In order to properly handle tail calls (see [FMRW97] for details) and to provide efficient first class continuations, Gambit C allocates continuation frames in a 36 Kbyte stackcache which is separate from the C stack. When a deep recursion causes an overflow of the stack cache, the continuation frames it contains are transfered to the Scheme heap ....

M. Feeley, J. Miller, G. Rozas, and J. Wilson. Compiling Higher-Order Languages into Fully Tail-Recursive Portable C. Technical Report 1078, D'epartement d'Informatique et de Recherche Op'erationnelle, Universit'e de Montr'eal, Aout 1997.


Etos: an Erlang to Scheme compiler - Feeley, Larose (1997)   (1 citation)  Self-citation (Feeley)   (Correct)

....entry and return) 3. The technique used by Gambit C to implement proper tail recursion in C imposes an overhead on function returns as well as calls between modules. For nrev the overhead is high because most of the time is spent in a tight non tail recursive function. Independent experiments [10] have shown that this kind of program can be sped up by a factor of two to four when native code is generated. ffl Finally ring and stable manipulate processes. Here we see a divergence in the results. Hipe is roughly three times faster than Etos on ring. Etos performs slightly better than Hipe ....

M. Feeley, J. Miller, G. Rozas, and J. Wilson. Compiling Higher-Order Languages into Fully Tail-Recursive Portable C. Technical Report 1078, D'epartement d'informatique et de recherche op'erationelle, Universit'e de Montr'eal, 1997.


Compiling Scheme to JVM bytecode: a performance study - Serpette, Serrano (2002)   (1 citation)  (Correct)

No context found.

M. Feeley, J. Miller, G. Rozas, and J. Wilson. Compiling Higher-Order Languages into Fully Tail-Recursive Portable C. Technical Report Rapport technique 1078, Universite de Montreal, Departement d'informatique et r.o., August 1997.


Compiling Scheme to JVM bytecode: a performance study - Bernard Paul Serpette   (Correct)

No context found.

M. Feeley, J. Miller, G. Rozas, and J. Wilson. Compiling Higher-Order Languages into Fully Tail-Recursive Portable C. Technical Report Rapport technique 1078, Universite de Montreal, Departement d'informatique et r.o., August 1997.


Implementing Constraint Imperative Languages with Higher-Order.. - Grabmüller (2003)   (Correct)

No context found.

Feeley, M., Miller, J.S., Rozas, G.J., Wilson, J.A.: Compiling higher-order languages into fully tail-recursive portable C. Technical Report 1078, Departement d'informatique et de recherche operationelle, Universite de Montreal (1997)

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC