Results 1 -
6 of
6
Unrolling Lists
, 1994
"... Lists are ubiquitous in functional programs, thus supporting lists efficiently is a major concern to compiler writers for functional languages. Lists are normally represented as linked cons cells, with each cons cell containing a car (the data) and a cdr (the link); this is inefficient in the use of ..."
Abstract
-
Cited by 26 (1 self)
- Add to MetaCart
Lists are ubiquitous in functional programs, thus supporting lists efficiently is a major concern to compiler writers for functional languages. Lists are normally represented as linked cons cells, with each cons cell containing a car (the data) and a cdr (the link); this is inefficient in the use of space, because 50% of the storage is used for links. Loops and recursions on lists are slow on modern machines because of the long chains of control dependences (in checking for nil) and data dependences (in fetching cdr fields). We present a data structure for "unrolled lists," where each cell has several data items (car fields) and one link (cdr). This reduces the memory used for links, and it significantly shortens the length of control-dependence and data-dependence chains in operations on lists. We further present an efficient compile-time analysis that transforms programs written for "ordinary" lists into programs on unrolled lists. The use of our new representation requires no change...
Compiling Standard ML For Efficient Execution On Modern Machines
, 1994
"... Many language theoreticians have taken great efforts in designing higher-level programming languages that are more elegant and more expressive than conventional languages. However, few of these new languages have been implemented very efficiently. The result is that most software engineers still pre ..."
Abstract
-
Cited by 18 (3 self)
- Add to MetaCart
Many language theoreticians have taken great efforts in designing higher-level programming languages that are more elegant and more expressive than conventional languages. However, few of these new languages have been implemented very efficiently. The result is that most software engineers still prefer to use conventional languages, even though the new higherlevel languages offer a better and simpler programming model. This dissertation concentrates on improving the performance of programs written in Standard ML (SML)---a statically typed functional language---on today's RISC machines. SML poses tough challenges to efficient implementations: very frequent function calls, polymorphic types, recursive data structures, higher-order functions, and first-class continuations. This dissertation presents the design and evaluation of several new compilation techniques that meet these challenges by taking advantage of some of the higher-level language features in SML. Type-directed compilation ...
The Potential of Just-in-Time Compilation in Active Networks based on Network Processors
, 2002
"... Byte-code representations in active networks provide architectural neutrality and code compactness; however, the resulting execution speed is typically poor due to interpretation overhead. This paper shows that the performance of capsule-based active networks can benefit from compiling active networ ..."
Abstract
-
Cited by 9 (5 self)
- Add to MetaCart
Byte-code representations in active networks provide architectural neutrality and code compactness; however, the resulting execution speed is typically poor due to interpretation overhead. This paper shows that the performance of capsule-based active networks can benefit from compiling active network programs into native network processor instructions at traversed routers (just-in-time compilation). A key aspect of the paper is to demonstrate that just-in-time compilers for active networks can be fast and small enough for applicability in the datapath of network processors. The approach has been implemented based on the SNAP active network framework for the PowerNP network processor.
Personal Distributed Computing: The Alto and Ethernet Software
- IN PROCEEDINGS OF THE ACM CONFERENCE ON THE HISTORY OF PERSONAL WORKSTATIONS
, 1988
"... ..."
unknown title
"... Programs written in a higher level language are often less.efficient than equivalent assembly language programs, because they cannot exploit known invariances and optimizations which would violate the strict semantics of the target language. Moving code from Lisp into the kernel has been a tradition ..."
Abstract
- Add to MetaCart
Programs written in a higher level language are often less.efficient than equivalent assembly language programs, because they cannot exploit known invariances and optimizations which would violate the strict semantics of the target language. Moving code from Lisp into the kernel has been a traditional way of improving the performance of Lisp systems. Substantial sections of the PDP-10 implementation of Interlisp, for example, are in machine code for this reason. When a large proportion of AltoLisp was moved from Bcpl into Lisp in order to improve memory utilization and aid modification, the speed of the system decreased by nearly a factor of three [Deutsch, 1978]. Thus, to improve DoradoLisp performance, we first looked for Lisp-coded sections of the system that could be incorporated into the Bcpl'kerne[,.However,'~,e soon discovered that the poor performance was due more to the design of the algorithms in the kernel than to the language in which they

