Results 1 - 10
of
10
Bigloo: A Portable and Optimizing Compiler for Strict Functional Languages
, 1995
"... . 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 comp ..."
Abstract
-
Cited by 40 (5 self)
- Add to MetaCart
. 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 higherorder 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. 1 Introduction Strict functional programming languages have many different variations, but they all belong to the same family, the so-calle...
Efficient Type Inclusion Tests
- OOPSLA
, 1997
"... A type inclusion test determines whether one type is a subtype of another. Efficient type testing techniques exist for single subtyping, but not for languages with multiple subtyping. To date, the only fast constanttime technique relies on a binary matrix encoding of the subtype relation with quadra ..."
Abstract
-
Cited by 35 (4 self)
- Add to MetaCart
A type inclusion test determines whether one type is a subtype of another. Efficient type testing techniques exist for single subtyping, but not for languages with multiple subtyping. To date, the only fast constanttime technique relies on a binary matrix encoding of the subtype relation with quadratic space requirements. In this paper, we present three new encodings of the subtype relation, the packed encoding, the bit-packed encoding and the compact encoding. These encodings have different characteristics. The bit-packed encoding delivers the best compression rates: on average 85% for real life programs. The packed encoding performs type inclusion tests in only 4 machine instructions. We present a fast algorithm for computing these encoding which runs in less than 13 milliseconds for PE and BPE, and 23 milliseconds for CE on an Alpha processor. Finally, we compare our results with other constant-time type inclusion tests on a suite of 11 large benchmark hierarchies.
Wide Classes
, 1999
"... This paper introduces the concepts of wide classes and widening as extensions to the object model of class-based languages such as Java and Smalltalk. Widening allows an object to be temporarily widened, that is transformed into an instance of a subclass, a wide class, and, later on, to be shrunk, t ..."
Abstract
-
Cited by 28 (2 self)
- Add to MetaCart
This paper introduces the concepts of wide classes and widening as extensions to the object model of class-based languages such as Java and Smalltalk. Widening allows an object to be temporarily widened, that is transformed into an instance of a subclass, a wide class, and, later on, to be shrunk, that is reshaped to its original class. Wide classes share the main properties of plain classes: they have a name, a superclass, they may be instantiated, they have an associated class predicate and an associated type that may be used to override function definnitions. Widening is also useful to implement transient data storage for longlasting computations. In particular, it helps reducing software data retention. This phenomenon arises when the actual data structures used in a program fail to reect time-dependent properties of values and can cause excessive memory consumption during the execution. Wide classes may be implemented for any dynamically-typed class-based programm...
Fast and Compact Dispatching for Dynamic Object-Oriented Languages
, 1997
"... Dynamic Object-Oriented languages allows for dynamic definition of new classes, new generic functions and new methods. This paper proposes a single and compact data structure to, at the same time, facilitate the addition of new classes, generic functions or methods, and still ensure a fast method se ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
Dynamic Object-Oriented languages allows for dynamic definition of new classes, new generic functions and new methods. This paper proposes a single and compact data structure to, at the same time, facilitate the addition of new classes, generic functions or methods, and still ensure a fast method selection.
Sharing Mutable Objects and Controlling Groups of Tasks in a Concurrent and Distributed Language
- In Takayasu Ito and Akinori Yonezawa, editors, Proceedings of the Workshop on Theory and Practice of Parallel Programming (TPPP'94), number 700 in Lecture Notes in Computer Science
, 1994
"... . This paper presents: (i) an operational semantics, based on a functional framework, for a concurrent and distributed extension of the Scheme programming language, (ii ) a coherency protocol taking care of shared mutable objects, (iii ) a new coherency protocol to imperatively control hierarchical ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
. This paper presents: (i) an operational semantics, based on a functional framework, for a concurrent and distributed extension of the Scheme programming language, (ii ) a coherency protocol taking care of shared mutable objects, (iii ) a new coherency protocol to imperatively control hierarchical groups of cooperating tasks. These two protocols do not require broadcast, nor FIFO communications, nor a centralized machine; they allow to manage an unbound number of shared mutable values and groups of tasks. This paper also advocates for the use of a functional continuationbased presentation for these protocols. The omnipresence of interconnected networks exacerbates the need for high level languages allowing to express and control widely distributed computations. Much network services such as news, finger, archie, netfind etc. [ODL93] basically manage a set of informations which is accessed and enriched on a world-distributed basis. We think that it will become more and more necessary f...
DMeroon - Overview of a Distributed Class-based Causally-coherent Data Model
- PSLS 95 -- Parallel Symbolic Langages and Systems, Lecture Notes in Computer Science 1068
, 1995
"... . DMeroon is a library of C functions that provides a data model above a coherently distributed shared memory. DMeroon allows users to statically or dynamically create new classes, to dynamically instantiate these classes and to dynamically and coherently share the resulting instances over a net ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
. DMeroon is a library of C functions that provides a data model above a coherently distributed shared memory. DMeroon allows users to statically or dynamically create new classes, to dynamically instantiate these classes and to dynamically and coherently share the resulting instances over a network. DMeroon automatically takes care of representation and alignment, migrating and sharing objects, local and global garbage collections. This document provides an overview of DMeroon. 1 Goals These days, the net becomes more and more fundamental to nearly all the facets of our professional life, both to use and to study. In the same time, programming languages cease to stay the focal point of our attention. Although important since they are still the mandatory means between machines and developers, their algorithmical side tend to be marginalized in favor of their (tele-)communicational or interoperability aspect. This is so because programming languages are generally sequential-mind...
Meroon V3: A Small, Efficient, and Enhanced Object System
- Ecole Polytechnique & INRIA-Rocquencourt
, 1997
"... This report describes an object system called Meroon V3 that runs on top of Scheme. Distinctive features of Meroon V3 are indexed fields without inheritance restriction (just think to a ColoredVector class), code-generating metaclasses and an instantiation protocol that respects immutability. Meroon ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
This report describes an object system called Meroon V3 that runs on top of Scheme. Distinctive features of Meroon V3 are indexed fields without inheritance restriction (just think to a ColoredVector class), code-generating metaclasses and an instantiation protocol that respects immutability. Meroon V3 also supports multimethods, coercers, generic equality, metaclasses but not multiple inheritance. This release enhances the previous versions with new features that are discussed in a companion paper [Que93]. This documentation refers to Meroon V3, version 3.54. Meroon V3 sources are gathered in a file named MeroonV3*.tar.gz and can be anonymously retrieved
Distributed Generic Functions
- In Proc. 1997 France-Japan Workshop on Object-Based Parallel and Distributed Computing
, 1997
"... this paper addresses. Generic functions, `a la CLOS [BDG ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
this paper addresses. Generic functions, `a la CLOS [BDG
23 things I know about modules for Scheme
, 2002
"... The benefits of modularization are well known. However, modules are not standard in Scheme. This paper accompanies an invited talk at the Scheme Workshop 2002 on the current state of modules for Scheme. Implementation is not addressed, only linguistic features are covered. ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The benefits of modularization are well known. However, modules are not standard in Scheme. This paper accompanies an invited talk at the Scheme Workshop 2002 on the current state of modules for Scheme. Implementation is not addressed, only linguistic features are covered.
A Library for Quizzes
"... Programming web dialogs is already known to be well served by continuations; this paper presents a continuation-based library for a particular class of web dialogs: quizzes for students. The library is made of objects representing the individual questions and of functional combinators hiding the imp ..."
Abstract
- Add to MetaCart
Programming web dialogs is already known to be well served by continuations; this paper presents a continuation-based library for a particular class of web dialogs: quizzes for students. The library is made of objects representing the individual questions and of functional combinators hiding the imperative aspects of page shipping over HTTP and management of continuations. Mixing these three styles provide an elegant framework that fulfills our initial goal. The description of that library is hoped to be helpful for quizzes designers.

