Re: Designing Lisp from scratch
"Shriram Krishnamurthi" <[email protected]> Sun, 18 Mar 2007 22:18:36 -0500
| Newsgroups | gmane.comp.lang.lightweight |
|---|---|
| Message-ID | <[email protected]> |
On 3/18/07, [email protected] <[email protected]> wrote: > >- functional reactive programming > > I looked at a paper by Ignatoff, Cooper, and Krishnamurthi, > regarding Functional Reactive languages, which also talks about > FrTime. I got a sense that it was a great challenge to expand a > language like Scheme beyond its normal syntactic boundaries to make > it support abstractions for dealing with values that change over > time. You read a paper about X to make an argument about Y, where X is very distinctly not equal to Y. Look at http://www.cs.brown.edu/~sk/Publications/Papers/Published/ck-frtime/ Embedding Dynamic Dataflow in a Call-by-Value Language Gregory H. Cooper, Shriram Krishnamurthi European Symposium on Programming, 2006 which shows how relatively easy it is. The neat thing about Greg Cooper's embedding scheme is that you let the existing call-by-value evaluator do the hard work for you of building the dataflow graph. Then you hand off the graph to the dataflow engine. > I may completely be missing the boat, but from examples like the > ones dealing with seconds, it looked like it would not require any > special effort at all to implement this in uCalc. Don't look at examples: look at the semantics! That's why we provide one! Are you sure you got it right? Can you, for instance, avoid glitches in your dataflow evaluator? > That's because uCalc does not start with a Scheme syntax, or > imperative style, or any particular paradigm. It does not favor one > style over another. I have no idea what this means. I think I would recognize this if it addressed a real issue that arose in the construction of either FrTime or Flapjax (flapjax-lang.org), but I'm afraid I don't, so quite possibly it does not. If anything, the Scheme syntax made building Flapjax a bit easier, because we were able to exploit not only the macro system but -- crucially -- the richer language definition system ("macros on steriods") built into PLT Scheme; Flapjax had to do the same work the hard way. But the syntax is totally irrelevant. I don't know what "paradigm" means. In short, while I could be wrong, your quoted text does not pass my smell-test. > The result is that it's very easy to mix-and-match various paradigms > that normally wouldn't be found in the same language. Now I'm *really* suspicious. Did you read the Ignatoff, et al paper carefully? For the benefit of others, I provide the URL below: http://www.cs.brown.edu/~sk/Publications/Papers/Published/ick-adapt-oo-fwk-frp/ Crossing State Lines: Adapting Object-Oriented Frameworks to Functional Reactive Languages Daniel Ignatoff, Gregory H. Cooper, Shriram Krishnamurthi Functional and Logic Programming Symposium, 2006 My opinion is that: (1) The issues that paper talk about might be called "irreducible complexity": it can't disappear, it has to be somewhere. Perhaps uCalc happens to be constructed just right so this particular complexity disappears. If so, I'm sure I can perform a kind of diagonalization that shows that something else becomes awfully hard. (-: (2) I'm not sure why you think our solution is especially complex (which is what I infer from "great challenge"). We brought the task of interfacing a large, legacy library to FrTime down to about 400 lines of code, consisting of some very elegant, composable macros and mixins. I'm biased, of course, but that sounds pretty good to me! You're welcome to disagree, but you're going to have to do much better than engage in an Argument by Shock and Awe. Shriram