## An Implementation of Transparent Migration on Standard Scheme (2000)

### Cached

### Download Links

Venue: | Department of Computer Science, Rice University |

Citations: | 10 - 0 self |

### BibTeX

@INPROCEEDINGS{Sumii00animplementation,

author = {Eijiro Sumii},

title = {An Implementation of Transparent Migration on Standard Scheme},

booktitle = {Department of Computer Science, Rice University},

year = {2000},

pages = {61--63}

}

### OpenURL

### Abstract

I present a handy (though somewhat restrictive) way to implement mobile computation a la Telescript on top of standard Scheme. Background. Mobile computation is an ecient and eective approach to distributed programming where a program works by migrating from one host to another. The migration is called transparent if the execution state of the program is preserved before and after the migration. Transparent migration is preferable to non-transparent, because it is easier to use for application programmers. At the same time, however, it is harder to implement for language developers: all existing implementations (to my knowledge) of transparent migration need either a custom runtime system (e.g. [13]) or global source code transformation (e.g. [12]). Our Method. In this presentation, I describe a library to enable transparent migration in standard Scheme. Unlike existing implementations, it requires neither modication of the runtime system nor transformation of the source code. It ...

### Citations

662 |
Partial Evaluation and Automatic Program Generation
- Jones, Gomard, et al.
- 1993
(Show Context)
Citation Context ...mbda (x ) ((lambda (y) y) x))) > f #hprocedurei Since this value has the function type ! , we can apply it, say, to a fresh symbol z. Here, the underline denotes dynamic (i.e., quoted) expressions [1=-=-=-0]. > (f 'z) z Given the fresh symbol z, the function returns the same symbol z. Thus, wesnd it (extensionally) equivalent to the identity function z: z. When the results of the function to be reied h... |

209 | Type-directed partial evaluation
- Danvy
- 1996
(Show Context)
Citation Context ...g a delimited continuation [5, 6] with control operators (shift and reset), (ii) reifying the delimited continuation|i.e., reconstructing its source code| with type-directed partial evaluation (TDPE) =-=[2, 4]-=-, and (iii) evaluating the source code at the remote host (e.g. by invokingsssh). Assuming the function shift for delimitedcontinuation extraction and the operator # for TDPE, the main part of the lib... |

132 | Representing monads
- Filinski
- 1994
(Show Context)
Citation Context ...elimited continuation x: 2x5, so the whole program is evaluated to 1+(k 3 k 4) = 1+(30 40) = 9. It is known that shift and reset can be implemented by means of call=cc and a mutable reference cell [7]=-=. Lay-=-ered continuations [8] are delimited continuations where one set of continuations is implemented on top of another. They can be used for \multiple level" control, e.g. as follows. > (cons 1 (rese... |

57 |
Danvy and Andrzej Filinski. Abstracting control
- Olivier
(Show Context)
Citation Context ...n in standard Scheme. Unlike existing implementations, it requires neither modication of the runtime system nor transformation of the source code. It works by (i) extracting a delimited continuation [=-=5, 6]-=- with control operators (shift and reset), (ii) reifying the delimited continuation|i.e., reconstructing its source code| with type-directed partial evaluation (TDPE) [2, 4], and (iii) evaluating the ... |

56 | Representing layered monads
- Filinski
(Show Context)
Citation Context ...continuation k has the type () ! (), because the transparent migration operator go works as a side eect. Since TDPE itself uses control operators, the library actually uses layered control operators [=-=8]-=-. For details of (layered) delimited continuations and TDPE, see Appendix A and B, respectively. Example 1. Consider the following program. (In the examples, we use the non-standard procedure system f... |

44 | A simple extension of java language for controllable transparent migration and its portable implementation
- Sekiguchi, Masuhara, et al.
- 1999
(Show Context)
Citation Context ...o implement for language developers: all existing implementations (to my knowledge) of transparent migration need either a custom runtime system (e.g. [13]) or global source code transformation (e.g. =-=[12-=-]). Our Method. In this presentation, I describe a library to enable transparent migration in standard Scheme. Unlike existing implementations, it requires neither modication of the runtime system nor... |

26 |
Telescript technology: An introduction to the language
- White
- 1995
(Show Context)
Citation Context ...ammers. At the same time, however, it is harder to implement for language developers: all existing implementations (to my knowledge) of transparent migration need either a custom runtime system (e.g. =-=[13]-=-) or global source code transformation (e.g. [12]). Our Method. In this presentation, I describe a library to enable transparent migration in standard Scheme. Unlike existing implementations, it requi... |

13 |
Danvy and Andrzej Filinski. A functional abstraction of typed contexts
- Olivier
(Show Context)
Citation Context ...n in standard Scheme. Unlike existing implementations, it requires neither modication of the runtime system nor transformation of the source code. It works by (i) extracting a delimited continuation [=-=5, 6]-=- with control operators (shift and reset), (ii) reifying the delimited continuation|i.e., reconstructing its source code| with type-directed partial evaluation (TDPE) [2, 4], and (iii) evaluating the ... |

11 |
A computational formalization for partial evaluation
- Hatcli®, Danvy
- 1997
(Show Context)
Citation Context ...sequentialize all dynamic function applications by binding them to variables by let-insertion [1]. The resulting (type-directed) partial evaluator is sound with respect to any monadic, dynamic eects [=-=9, 1-=-1]. Primitives. The next problem is primitives (such as integers) as function arguments. Consider, for example, a function f = x: (1 + 2) + x of type int ! int. > (dene f (lambda (x) (+ (+ 1 2) x ))) ... |

9 |
Sound specialization in the presence of computational eects
- Lawall, Thiemann
(Show Context)
Citation Context ...sequentialize all dynamic function applications by binding them to variables by let-insertion [1]. The resulting (type-directed) partial evaluator is sound with respect to any monadic, dynamic eects [=-=9, 1-=-1]. Primitives. The next problem is primitives (such as integers) as function arguments. Consider, for example, a function f = x: (1 + 2) + x of type int ! int. > (dene f (lambda (x) (+ (+ 1 2) x ))) ... |

5 | Pragmatic aspects of type-directed partial evaluation
- Danvy
(Show Context)
Citation Context ...) Furthermore, in order to avoid eliminating, duplicating, or reordering side eects, we actually have to sequentialize all dynamic function applications by binding them to variables by let-insertion [=-=1-=-]. The resulting (type-directed) partial evaluator is sound with respect to any monadic, dynamic eects [9, 11]. Primitives. The next problem is primitives (such as integers) as function arguments. Con... |

1 |
Online type-directed partial evaluation. FLOPS '98
- Danvy
(Show Context)
Citation Context ...and" a fresh symbol to an integer as we did for functions and pairs. Instead, we extend the operator + (in general, every operator on integers) so that it can deal with symbols in addition to num=-=bers [-=-3]. > (dene old-+ +) > (dene (new-+ x y) (if (and (number? x) (number? y)) (old-+ x y) `(+ ,x ,y))) > (set! + new-+) Then, it is safe to apply the function to a fresh symbol instead of an integer. > (... |