Path: utzoo!mnetor!uunet!lll-winken!lll-lcc!ames!eos!labrea!decwrl!purdue!i.cc.purdue.edu!j.cc.purdue.edu!pur-ee!uiucdcs!uiucdcsb!robison From: robison@uiucdcsb.cs.uiuc.edu Newsgroups: comp.lang.c Subject: Re: Keywords and optimization Message-ID: <165600048@uiucdcsb> Date: 27 Apr 88 19:02:00 GMT References: <10575@steinmetz.ge.com> Lines: 27 Nf-ID: #R:steinmetz.ge.com:10575:uiucdcsb:165600048:000:1198 Nf-From: uiucdcsb.cs.uiuc.edu!robison Apr 27 14:02:00 1988 For a language which incorporates optimization information very cleanly, look at the FX language[1][2]. It introduces the notion of an "effect system" which describes side effects in a manner analogous to the way a type system describes types. The effect system allows very aggressive but safe optimization, documentation of side effects, and polymorphism. FX programs can be strongly type checked and effect checked, that is the effects are not just advice but checkable assertions. Disclaimer: I've only read the reference manual and haven't used FX yet. But its the first LISP-like language I've seen which should run on stock hardware as fast as C. References [1] John M. Lucassen and David K. Gifford, "Polymorphic Effect Systems", Proceedings of the Fifteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (January 1988). [2] FX-87 Reference Manual, David K. Gifford et al., MIT LCS TR-409, MIT Laboratory for Computer Science, September 1987. Arch D. Robison University of Illinois at Urbana-Champaign CSNET: robison@UIUC.CSNET UUCP: {ihnp4,pur-ee,convex}!uiucdcs!robison ARPA: robison@B.CS.UIUC.EDU (robison@UIUC.ARPA)