## Translating Core Facile (1995)

Citations: | 20 - 2 self |

### BibTeX

@TECHREPORT{Amadio95translatingcore,

author = {Roberto M. Amadio},

title = {Translating Core Facile},

institution = {},

year = {1995}

}

### OpenURL

### Abstract

In first approximation Core Facile is a simply typed -calculus enriched with parallel composition, dynamic channel generation, and input-output synchronous communication primitives. In this paper we explore the (dynamic) semantics of core Facile programs. This should be taken as a basis for the definition of abstract machines, the transformation of programs, and the development of modal specification languages. We claim two main contributions. We introduce a new semantics based on the notion of barbed bisimulation. We argue that the derived equivalence provides a more satisfying treatment of restriction, in particular by proving the adequacy of a natural translation of Facile into ß-calculus we suggest that our approach is in good harmony with previous research on the semantics of sub-calculi of Core Facile such as Chocs and ß-calculus. We illustrate at an abstract level various aspects of Facile compilation. In particular we introduce an `asynchronous' version of the Facile language...

### Citations

620 |
Compiling with Continuations
- Appel
- 1992
(Show Context)
Citation Context ...ed on the b type, which is the type of `programs'). Moreover we emphasize that control operators such as C can be naturally implemented in the current Facile compiler which is based on CPS technology =-=[2]-=-. 2.2 Unlabelled Reduction We describe a rewriting relation (up to ff-conversion) which is supposed to represent abstractly the possible internal computations of a well-typed Facile expression. On top... |

361 | An object calculus for asynchronous communication
- Honda, Tokoro
- 1991
(Show Context)
Citation Context ...rimitive but can be decomposed in sequential fi and C reductions plus `asynchronous' communication. Asynchrony here means that a process always terminates after having performed an output action (see =-=[11]), t-=-his entails that no process is suspended on a send. The synchronous communication rule is described by the rule: (��) E[c!v] j E 0 [c?] ! E[] j E 0 [v] The basic idea is to translate an output E[c... |

330 |
The mechanical evaluation of expressions
- Landin
- 1964
(Show Context)
Citation Context ...ity as it allows to concentrate our attention on just two basic reduction rules: fi and (asynchronous) �� . An environment machine for Facile programs. Environment machines are a well-known framew=-=ork [12]-=- for the description of the execution model of functional languages at a rather abstract level. More precisely environment machines, as described for instance in [3], provide a solution to the treatme... |

313 |
Functions as processes, in
- Milner
- 1990
(Show Context)
Citation Context ...typed framework. The CPS-translation discussed here is an extension of the one studied in [18] and revisited in a typed framework in [9]. The translation of Facile into the ��-calculus is inspired=-= by [14]-=- and by a variant of that translation considered in [8]. Finally the abstract machine studied here is similar in spirit, if not in the technical details, to those presented in [7, 13]. 2 Reduction and... |

258 |
Expressing Mobility in Process Algebras: First-Order and Higher-Order Paradigms
- Sangiorgi
- 1992
(Show Context)
Citation Context ...ly shown that early bisimilar processes are barbed equivalent. This implies that our translation of Facile into ��- calculus is also adequate w.r.t. early bisimulation. Moreover it has been proved=-= in [16, 21] tha-=-t, for a suitably strong notion of context, barbed equivalence on the ��-calculus actually coincides with early bisimulation. 7 Conclusion The following two diagrams summarize our results, where a... |

234 | A formulae-as-types notion of control
- Griffin
- 1990
(Show Context)
Citation Context ...resented in [11]. We have reformulated this idea in a higher order typed framework. The CPS-translation discussed here is an extension of the one studied in [18] and revisited in a typed framework in =-=[9]. Th-=-e translation of Facile into the ��-calculus is inspired by [14] and by a variant of that translation considered in [8]. Finally the abstract machine studied here is similar in spirit, if not in t... |

220 |
Call-by-name, call-by-value, and the #-calculus
- Plotkin
- 1975
(Show Context)
Citation Context ... rid of the control operator via a CPS translation. The C operator having served its role we look for a way of getting rid of it. The obvious idea is to build a Continuation Passing Style translation =-=[18]-=- of core Facile. CPS translations find their best explication in a typed framework where they can be regarded as double-negation translations from classical into intuitionistic logic. We will just men... |

219 | Barbed bisimulation, in
- Milner, Sangiorgi
- 1992
(Show Context)
Citation Context ...gage in an input-output communication on a channel visible to an external observer. From these notions an equivalence relation among programs is derived which is called barbed bisimulation, following =-=[16]-=-. Barbed bisimulation can then be refined to a relation called barbed equivalence. The latter provides the notion of expression equivalence by which we will assess the adequacy of the various translat... |

217 |
CML: A higher-order concurrent language
- Reppy
- 1991
(Show Context)
Citation Context ...d ��-calculus [15] (at least a simply sorted part of it) as sub-calculi. Why is it worth studying Core Facile? Core Facile tries to bridge the gap between programming languages such as Facile and =-=CML [20] and the-=-oretical calculi such as Chocs and ��-calculus. As opposed to Chocs and ��-calculus Core Facile includes a simply typed -calculus. Benefits of having a direct treatment of abstraction and appl... |

160 |
FACILE: A symmetric integration of concurrent and functional programming
- Giacalone, Prasad
(Show Context)
Citation Context ...r. This work was partially supported by ESPRIT BRA 6454 Confer. 1 Introduction What is Core Facile? Core Facile is a simply typed language inspired by previous work on the Facile programming language =-=[7, 24]-=- whose three basic ingredients are: (1) A call-by-value -calculus extended with the possibility of parallel evaluation of expressions. (2) A notion of channel and primitives to read-write channels in ... |

116 |
A syntactic theory of sequential control
- Felleisen, Friedman, et al.
- 1987
(Show Context)
Citation Context ...y determined sequential, call-by-value, evaluation context of that thread. With this premise and denoting a call-by-value evaluation context with E[ ] we can introduce a control operator C (following =-=[6]-=-) on expressions whose behaviour is specificed by the rule: (C) E[Ce] ! e(x:E[x]) x fresh The C operator can be used to define some popular operator such as spawn in Facile or fork in CML. The intende... |

83 |
Control operators, the SECD machine and the -calculus
- Felleisen, Friedman
- 1986
(Show Context)
Citation Context ...re efficient compilations by considering direct translations. For instance one may consider environment machines which implement directly the C operator without going through the CPS translation (see =-=[5]-=-). ffl Finally one should analyse the robustness of our translations w.r.t. (i) a finer analysis of behaviours (e.g. in a type and effect discipline), and (ii) a distributed semantics (e.g. using loca... |

81 | Representing control: A study of the CPS transformation
- Danvy, Filinski
- 1992
(Show Context)
Citation Context ...eal with pairs and projections, on the other hand an appropriate treatment of the control operator would require a more sophisticated analysis following recent research on CPS translations (see, e.g.,=-=[4]-=-). Finally we drop the () reduction by regarding the process E[x:e] structurally equivalent to x:E[e], provided x = 2 E[ ]. Optimized Translation. In the translation e of a program e many fi reduction... |

62 |
An abstract framework for environment machines
- Curien
- 1991
(Show Context)
Citation Context ...chines are a well-known framework [12] for the description of the execution model of functional languages at a rather abstract level. More precisely environment machines, as described for instance in =-=[3]-=-, provide a solution to the treatment of bound variables, ff-renaming, substitution, etcetera, while hiding other implementation problems such as sharing and garbage collection. We propose an extensio... |

48 |
Dybvig. Continuations and concurrency
- Hieb, Kent
- 1990
(Show Context)
Citation Context ...t becomes mathematically feasible to prove the adequacy of the various translations considered here. Control operators and continuations in a parallel framework have already been considered, e.g., in =-=[10, 17, 19]. Th-=-e notion of barbed equivalence was presented in [16] for CCS and ��-calculus. We have shown that this notion can be usefully applied to languages such as Facile and CML. The idea that asynchronous... |

36 |
D.: A Calculus of Mobile Processes, Part 1 – 2
- Milner, Parrow, et al.
- 1992
(Show Context)
Citation Context ...ay; communications are performed as side effects of expression evaluation. (3) The possibility of dynamically generating new channels during execution. Core Facile includes Chocs [22] and ��-calcu=-=lus [15]-=- (at least a simply sorted part of it) as sub-calculi. Why is it worth studying Core Facile? Core Facile tries to bridge the gap between programming languages such as Facile and CML [20] and theoretic... |

30 |
Facile antigua release { programming guide
- Thomsen, Leth, et al.
- 1993
(Show Context)
Citation Context ...r. This work was partially supported by ESPRIT BRA 6454 Confer. 1 Introduction What is Core Facile? Core Facile is a simply typed language inspired by previous work on the Facile programming language =-=[7, 24]-=- whose three basic ingredients are: (1) A call-by-value -calculus extended with the possibility of parallel evaluation of expressions. (2) A notion of channel and primitives to read-write channels in ... |

23 |
Some Facile Chemistry
- Leth, Thomsen
- 1995
(Show Context)
Citation Context ...ulus is inspired by [14] and by a variant of that translation considered in [8]. Finally the abstract machine studied here is similar in spirit, if not in the technical details, to those presented in =-=[7, 13]-=-. 2 Reduction and Equivalence In this section we present the core Facile language, define its semantics, and illustrate its expressive power by some examples. 2.1 Language and Typing The language we c... |

15 | A concurrent and distributed extension of Scheme
- Queinnec
- 1992
(Show Context)
Citation Context ...t becomes mathematically feasible to prove the adequacy of the various translations considered here. Control operators and continuations in a parallel framework have already been considered, e.g., in =-=[10, 17, 19]. Th-=-e notion of barbed equivalence was presented in [16] for CCS and ��-calculus. We have shown that this notion can be usefully applied to languages such as Facile and CML. The idea that asynchronous... |

9 |
On the reduction of CHOCS bisimulation to ?-calculus bisimulation
- Amadio
- 1993
(Show Context)
Citation Context ..., environment, stack, and channel identifiers we need two more operators: (i) a quaternary operator State(e; u; s; `) j abr: (e; u; s; `), and (ii) an AC operator k. Rewriting is modulo AC. The rules =-=[1]-=-; [+1]; [apl]; [v]; [ev arg ]; [fi] are the standard rules of a callby -value environment machine as described in [3]. The rule [evs! ] is needed in order to force the evaluation of the second argumen... |

8 |
Some Issues in the Semantics of Facile Distributed Programming
- Thomsen, Leth, et al.
- 1992
(Show Context)
Citation Context ...xpressive power by some examples. 2.1 Language and Typing The language we consider is in first approximation a de-sugared version of the simply typed core Facile language analysed in previous reports =-=[7, 23]-=-. We will argue in the following that operators such as activate, script, and spawn can be easily represented. A notable extension is the introduction of a control operator C. This is important in ord... |

6 | A New Process Model for Functions
- Glauert, Leth, et al.
- 1993
(Show Context)
Citation Context ...n extension of the one studied in [18] and revisited in a typed framework in [9]. The translation of Facile into the ��-calculus is inspired by [14] and by a variant of that translation considered=-= in [8]-=-. Finally the abstract machine studied here is similar in spirit, if not in the technical details, to those presented in [7, 13]. 2 Reduction and Equivalence In this section we present the core Facile... |

6 |
Plain Chocs
- Thomsen
- 1993
(Show Context)
Citation Context ...ls in a synchronous way; communications are performed as side effects of expression evaluation. (3) The possibility of dynamically generating new channels during execution. Core Facile includes Chocs =-=[22] and-=- ��-calculus [15] (at least a simply sorted part of it) as sub-calculi. Why is it worth studying Core Facile? Core Facile tries to bridge the gap between programming languages such as Facile and C... |

5 | An operational semantics for a parallel functional language with continuations
- Moreau
- 1992
(Show Context)
Citation Context ...t becomes mathematically feasible to prove the adequacy of the various translations considered here. Control operators and continuations in a parallel framework have already been considered, e.g., in =-=[10, 17, 19]. Th-=-e notion of barbed equivalence was presented in [16] for CCS and ��-calculus. We have shown that this notion can be usefully applied to languages such as Facile and CML. The idea that asynchronous... |