Re: Designing Lisp from scratch

"Gregory Cooper" <[email protected]> Mon, 19 Mar 2007 23:15:53 -0400
Newsgroups gmane.comp.lang.lightweight
Message-ID <[email protected]>
Hi Daniel,

If you're interested in experimenting with FrTime or looking at the
code that Shriram mentioned, it's all included in the "frtime"
collection of the standard PLT Scheme distribution.  There are a
number of animation demos in the frtime/demos/ directory, and the "400
lines" of GUI wrapper code are in frtime/demos/gui/.  The relevant
files are:

frtime/demos/gui/aux-mixin-macros.ss
frtime/demos/gui/mixin-macros.ss
frtime/demos/gui/fred.ss

There are a few simple demos of the GUI system, including a slightly
modified version of the timer presented in the FLOPS paper, which is
at frtime/demos/gui/demo/timer.ss.

I'm not subscribed to this list, but feel free to contact me directly
with questions or comments.

Regards,
Greg

> I mentioned that maybe I had completely missed the boat.  As it turns
> out I did.  It's only today after I looked at the FrTime presentation
> in the LL3 online video at ll3.ai.mit.edu that I got a better
> understanding of what FrTime and functional reactive program is about.
>  (I had seen the presentation long ago as well but had completely
> forgotten about it).  I wasn't able to visualize the concept by only
> reading a static paper description of it.  So my earlier response was
> based on a misunderstanding of the concept.
>
> I have not yet investigated whether FrTime, now that I understand it
> better, can be implemented in uCalc.  However, I implemented a
> spreadsheet for UCalc Fast Math Parser, the predecessor of uCalc
> Language Builder, using something like the push-driven update
> mechanism that you mention in the paper.  I assume that it should be
> possible to expand this further unto something like FrTime for uCalc.
> (FrTime also reminds me of an interactive 3D animation language that I
> had worked on, way back in the DOS days but eventually discontinued.
> It was pretty crude, but had an interesting demo nonetheless.)
>
> In any event my interest is just as much in syntax as it is in
> semantics.  This, I guess, brings the discussion to something else.
> My response here was partly a reflection of a separate private
> discussion I held concurrently with another reader who pointed me
> towards the PLT-Scheme redex tool, perhaps as something that already
> did what I was trying to do with uCalc.  But looking at the paper
> entitled "A Visual Environment for Developing Context-Sensitive Term
> Rewriting Systems" by Matthews, Findler, Flatt, and Felleisen, I came
> out with the impression that the redex tool could only do Scheme or
> Lambda-like languages.  At least, I thought, it could also do a
> version of Java.  But when I looked further into it, I noticed that
> the ClassicJava in question (which I think you described in a paper),
> appears to have the semantics of Java, but with a Scheme-like syntax.
> That's fine.  Though what I'm trying to do is to let programmers have
> not just the semantics, but also the syntax of their choice.
>
> By the way, I'd be interested in looking at the 400 or so lines of
> code related to FrTime that you mentioned.  Is that something that is
> publicly available for download?
>
> Daniel Corbier
> uCalc Language Builder
> www.ucalc.com
>
>
> In a message dated 3/18/07 10:18:51 PM Eastern Standard Time,
> [email protected] writes:
> 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
>
>
>
> ________________________________
> AOL now offers free email to everyone. Find out more about what's free
> from AOL at AOL.com.
>