From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.6.10/8.6.6) id PAA17932 for caml-redistribution; Mon, 11 Mar 1996 15:57:22 +0100 Received: (from remy@localhost) by pauillac.inria.fr (8.6.10/8.6.6) id OAA16848; Mon, 11 Mar 1996 14:42:06 +0100 Message-Id: <199603111342.OAA16848@pauillac.inria.fr> Subject: Re: Recursion, exception and continuations To: Francis.Dupont@inria.fr (Francis Dupont) Date: Mon, 11 Mar 1996 14:42:06 +0100 (MET) Cc: tarizzo@worldnet.fr, caml-list@pauillac.inria.fr In-Reply-To: <199603111145.MAA27609@givry.inria.fr> from "Francis Dupont" at Mar 11, 96 12:45:23 pm From: Didier.Remy@inria.fr (Didier Remy) Reply-to: Didier.Remy@inria.fr Organization: INRIA, BP 105, F-78153 Le Chesnay Cedex Phone: (33) 1 3963 5317 -- Sec: (33) 1 3963 5684 -- Fax: (33) 1 3963 5330 Web: http://pauillac.inria.fr/~remy MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Sender: weis > It doesn't matter if the continuation is used in a program or in > *one* toplevel statement, but there is a problem if a toplevel statement > produces a continuation used in an other toplevel statement: the type > system can be broken or the extend of the continuation must be > constrained... See SML of New Jersey for correction attempts! These problems have been studied in [1]. The conclusion was that typechecking continuations is not a problem, even in the presence of a toplevel, provided the right approach is taken. We also found very few good example of uses of continuations, aside the implementation of corountines. But this application of continuations is now subsumed by threads in caml special light. > PS: some continuation constructs have been proposed with different > scope, extend and typing rules and without the toplevel problem, > but there are not the Scheme callcc operator. Some of them can be > expansed in a CPS program of rather the same size (read papers > by Olivier Danvy & all). The zoology of continuation operators is also studied in [1] in the presence of a strongly typed system. -Didier Remy. [1] ftp.inria.fr:INRIA/Projects/cristal/Didier.Remy/prompt.dvi.Z Carl A. Gunter, Didier Rémy, Jon G. Riecke. "A Generalization of Exceptions and Control in ML". LFP'95, January 1995. We add functional continuations and prompts to a language with an ML-style type system. The operators significantly extend and simplify the control operators in SML/NJ, and can be themselves used to implement (simple) exceptions. We prove that well-typed terms never produce run-time type errors and give a module for implementing them in the latest version of SML/NJ. (The code of the appendix is avalaible here)