From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Xref: utzoo comp.lang.eiffel:95 comp.lang.ada:2174 comp.lang.c++:2785 Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!bbn!apple!bloom-beacon!mit-vax!jouvelot From: jouvelot@mit-vax.LCS.MIT.EDU (Pierre Jouvelot) Newsgroups: comp.lang.eiffel,comp.lang.ada,comp.lang.c++ Subject: Re: First Class Routines [Long again] Message-ID: <5773@mit-vax.LCS.MIT.EDU> Date: 12 Mar 89 19:04:00 GMT References: <114@eiffel.UUCP> <112@eiffel.UUCP> <1297@wasatch.UUCP> <118@eiffel.UUCP> Reply-To: jouvelot@mit-vax.UUCP (Pierre Jouvelot) Organization: MIT Laboratory for Computer Science, Cambridge List-Id: In article <118@eiffel.UUCP> bertrand@eiffel.UUCP (Bertrand Meyer) writes: > One way to summarize this discussion is to say that I do not know of any >good way to reconcile the following three language traits: > > 1. Routine arguments (in the above sense, i.e. routine arguments to > routines). > 2. Static type checking. > 3. A language design that makes it possible to have separate > compilation of modules. These points are addressed in the design of the FX-87 programming language (Gifford. D. K., Jouvelot, P., Lucassen, J. M. and Sheldon, M. A. "The FX-87 Reference Manual". MIT/LCS/TR-407, September 1987 and Gifford, D. K., and Lucassen, J. M. "Polymorphic Effect Systems". In Proceedings of ACM POPL Conference, January 1988): . FX-87 allows first-class higher-order functions (point 1). . FX-87 is statically type-checked. Its type system has the power of the second-order polymorphic lambda-calculus. It uses an effect system to determine, at compile-time, the side-effects potentially performed by the evaluation of expressions, thus allowing "safe polymorphism" in the presence of mutation (point 2). . FX-87 allows separate compilation. Modules can be simulated by polymorphic functions that are abstracted over the abstract type T and the signature (the type of records of functions) of T (point 3). A prototype version of FX-87 (Jouvelot, P., and Gifford, D. K. "The FX-87 Interpreter". In Proceedings of the 2nd Int. Conf. on Comp. Lang. IEEE, October 1988) written in Scheme and running under CommonLISP is available on request at fx-request@brokaw.lcs.mit.edu. The current redesign of FX will improve the third point by introducing first-class explicit modules (seen as a variety of existential types) and type inference while preserving the other aspects of FX-87. J'espere que cette information sera utile, Pierre -- Pierre Jouvelot . CAI, Ecole des Mines de Paris, France (JOUVELOT@FREMP11.bitnet) . LCS, MIT, Cambridge (JOUVELOT@BROKAW.LCS.MIT.EDU)