Daniel Ehrenberg | 3 Aug 2005 16:26
Picon

Re: [stack] an exchange on flatness

On 8/2/05, William Tanksley, Jr <wtanksleyjr <at> gmail.com> wrote:
> Daniel Ehrenberg <microdan <at> gmail.com> wrote:
> > > The code is represented by a data structure. You use a compile-time
> > > list. A list is a great way to gather concatenative code together, but
> > > a very poor way to dissect and manipulate code -- you can do things
> > > with lists that aren't sensible with code.
> 
> > What are you saying? That a language needs to restrict how people
> > manipulate code?
> 
> No. I'm saying that code isn't a data structure. Perhaps I'm
> misphrasing that; perhaps I should say something like "computations
> aren't data structures". I can see that my origiinal phrasing was
> misleading. The reason I say that is that every data structure we've
> used to represent computations implies that you can manipulate the
> data structure to determine things about the computation.
> 
> And that's just not true. Turing proved it -- the only general way to
> know things about computations is to actually run them. Languages that
> allow you to know the data structure used to represent a computation
> automatically put limitations on the computation.
> 
> For example, Joy's documentation mentions that identities such as "dup
> drop == nop" don't hold within quotations, because someone might use
> the length of the quotation (list).
> 
...ok, but I don't really see any place for 100% abstract computations
in any programming language, and it's still extremely useful to have
code be a data structure. The quotation *is* a list, and there's
nothing you could say to make it not. It makes no sense to do length
the way you're picturing on quotations, though their length might be
needed to produce another quotation from them. Any optimizations that
the compiler might do, such as removing dup drop, should be done in a
way invisible to the user.

> > It is very useful to have code be
> > [represented by] an accessable data structure;
> 
> Agreed. When I said "code" I should have said "computations". When you
> say "code" you're referring to the stuff that the programmer
> manipulates in order to specify the computation.

There are no computations. Computations are just a way of thinking
about what's actually happening, but they don't exist within the
language, as you've said would be impossible. So it's pretty useless
to talk about computations at all.

Daniel Ehrenberg

------------------------ Yahoo! Groups Sponsor --------------------~--> 
<font face=arial size=-1><a href="http://us.ard.yahoo.com/SIG=12hgq0ssd/M=362131.6882499.7825260.1510227/D=groups/S=1705006764:TM/Y=YAHOO/EXP=1123086380/A=2889191/R=0/SIG=10r90krvo/*http://www.thebeehive.org
">Get Bzzzy! (real tools to help you find a job) Welcome to the Sweet Life - brought to you by One Economy</a>.</font>
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/concatenative/

<*> To unsubscribe from this group, send an email to:
    concatenative-unsubscribe <at> yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/


Gmane