Results 1 -
8 of
8
The Influence of Browsers on Evaluators or, Continuations to Program Web Servers
, 2000
"... While developing the software of a browser-operated educational CD-ROM, we had to face a number of problems. This paper presents these problems and the solutions we found. Amusingly, most of our solutions rely on continuations. Are browsers and multimedia the future of continuations? ..."
Abstract
-
Cited by 69 (3 self)
- Add to MetaCart
While developing the software of a browser-operated educational CD-ROM, we had to face a number of problems. This paper presents these problems and the solutions we found. Amusingly, most of our solutions rely on continuations. Are browsers and multimedia the future of continuations?
A functional correspondence between monadic evaluators and abstract machines for languages with computational effects
- Theoretical Computer Science
, 2005
"... Abstract. We extend our correspondence between evaluators and abstract machines from the pure setting of the λ-calculus to the impure setting of the computational λ-calculus. We show how to derive new abstract machines from monadic evaluators for the computational λ-calculus. Starting from (1) a gen ..."
Abstract
-
Cited by 34 (19 self)
- Add to MetaCart
Abstract. We extend our correspondence between evaluators and abstract machines from the pure setting of the λ-calculus to the impure setting of the computational λ-calculus. We show how to derive new abstract machines from monadic evaluators for the computational λ-calculus. Starting from (1) a generic evaluator parameterized by a monad and (2) a monad specifying a computational effect, we inline the components of the monad in the generic evaluator to obtain an evaluator written in a style that is specific to this computational effect. We then derive the corresponding abstract machine by closure-converting, CPS-transforming, and defunctionalizing this specific evaluator. We illustrate the construction with the identity monad, obtaining yet again the CEK machine, and with a lifted state monad, obtaining a variant of the CEK machine with error and state. In addition, we characterize the tail-recursive stack inspection presented by Clements and Felleisen at ESOP 2003 as a lifted state monad. This enables us to combine the stackinspection monad with other monads and to construct abstract machines for languages with properly tail-recursive stack inspection and other computational effects. The construction scales to other monads—including one more properly dedicated to stack inspection than the lifted state monad—and other monadic evaluators. Keywords. Lambda-calculus, interpreters, abstract machines, closure conversion, transformation into continuation-passing style (CPS), defunctionalization, monads, effects, proper
A Syntactic Theory of Dynamic Binding
- Higher-Order and Symbolic Computation
, 1997
"... . Dynamic binding, which has always been associated with Lisp, is still semantically obscure to many. Although largely replaced by lexical scoping, not only does dynamic binding remain an interesting and expressive programming technique in specialised circumstances, but also it is a key notion in se ..."
Abstract
-
Cited by 26 (1 self)
- Add to MetaCart
. Dynamic binding, which has always been associated with Lisp, is still semantically obscure to many. Although largely replaced by lexical scoping, not only does dynamic binding remain an interesting and expressive programming technique in specialised circumstances, but also it is a key notion in semantics. This paper presents a syntactic theory that enables the programmer to perform equational reasoning on programs using dynamic binding. The theory is proved to be sound and complete with respect to derivations allowed on programs in "dynamic-environment passing style". From this theory, we derive a sequential evaluation function in a context-rewriting system. Then, we exhibit the power and usefulness of dynamic binding in two different ways. First, we prove that dynamic binding adds expressiveness to a purely functional language. Second, we show that dynamic binding is an essential notion in semantics that can be used to define the semantics of exceptions. Afterwards, we further refin...
Down with Emacs Lisp: Dynamic Scope Analysis
- In Proceedings of ACM SIGPLAN International Conference on Functional Programming
, 2001
"... It is possible to translate code written in Emacs Lisp or another Lisp dialect which uses dynamic scoping to a more modern programming language with lexical scoping while largely preserving structure and readability of the code. The biggest obstacle to such an idiomatic translation from Emacs Lisp i ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
It is possible to translate code written in Emacs Lisp or another Lisp dialect which uses dynamic scoping to a more modern programming language with lexical scoping while largely preserving structure and readability of the code. The biggest obstacle to such an idiomatic translation from Emacs Lisp is the translation of dynamic binding into suitable instances of lexical binding: Many binding constructs in real programs in fact exhibit identical behavior under both dynamic and lexical binding. An idiomatic translation needs to detect as many of these binding constructs as possible and convert them into lexical binding constructs in the target language to achieve readability and e#ciency of the target code.
The STROBE model: Dynamic Service Generation on the Grid
- Applied Artificial Intelligence, Special issue on Learning Grid Services
, 2005
"... This article presents the STROBE model: both an agent representation and an agent communication model based on a social approach, that means interaction centred. This model represents how agents may realise the interactive, dynamic generation of services on the Grid. Dynamically generated services e ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
This article presents the STROBE model: both an agent representation and an agent communication model based on a social approach, that means interaction centred. This model represents how agents may realise the interactive, dynamic generation of services on the Grid. Dynamically generated services embody a new concept of service implying a collaborative creation of knowledge i.e. learning; services are constructed interactively between agents depending on a conversation. The approach consists of integrating selected features from Multi-Agent Systems and agent communication, language interpretation in applicative/functional programming and e-learning/human-learning into a unique, original and simple view that privileges interactions, yet including control. The main characteristic of STROBE agents is that they develop a language (environment + interpreter) for each of their interlocutors. The model is inscribed within a global approach, defending a shift from the classical algorithmic (control based) view to problem solving in computing to an interaction-based view of Social Informatics, where artificial as well as human agents operate by communicating as well as by computing. The paper shows how the model may not only account for the classical communicating agent approaches, but also represent a fundamental advance in modelling societies of agents in particular in Dynamic Service Generation scenarios such as those necessary today on the Web and proposed tomorrow for the Grid. Preliminary concrete experimentations illustrate the potential of the model; they are significant examples for a very wide class of computational and learning situations.
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.
Advanced Programming Techniques Using Scheme
, 1998
"... this paper, we describe an interactive reducer for lambda terms that combines first-class continuations, macros, delay, and state. We also describe the means by which we induce students to master advanced topics. 1. Introduction ..."
Abstract
- Add to MetaCart
this paper, we describe an interactive reducer for lambda terms that combines first-class continuations, macros, delay, and state. We also describe the means by which we induce students to master advanced topics. 1. Introduction
Higher-Order Mobile Agents on the Java Virtual Machine
"... For an agent to migrate completely transparently between computers, it must be restarted in exactly the same state it was in before moving. In existing Java-based mobile agent systems it is left to the programmer explicitly to save much of the agent's execution state. The use of higher-order mobile ..."
Abstract
- Add to MetaCart
For an agent to migrate completely transparently between computers, it must be restarted in exactly the same state it was in before moving. In existing Java-based mobile agent systems it is left to the programmer explicitly to save much of the agent's execution state. The use of higher-order mobile code removes this burden, enabling an agent to migrate transparently with a single function call. We have ported our own higher-order mobile code system to run on the Java virtual machine. This allows us to take advantage of Java's ubiquity, while writing agents that have more obvious control flow and fewer side effects than their Java equivalents. We illustrate this with a higher-order version of an existing Java mobile agent. 1 Introduction Some recent developments [Chang96, Straßer96, ObjSpace97, Mitsubishi97, GenMag97] have provided frameworks for running mobile agents written in Java. They allow certain agent state to be shipped over a network between virtual machines. The values of ob...

