Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

Rebol von Neumann properties (RIP ifs-for-whomever cont.) Re:

 [1/3] from: lmecir::geocities::com at: 13-Oct-2000 22:14


Hi Joel, I am sorry I wrote my previous post in a way you felt a need to apologize. The fact is, that I was sorry about it right after I sent it. I knew I wasn't totally right about the non-terminating issue. The only problem of your code WRT termination is, that it doesn't terminate for some trivial inputs, such as None supplied as the first argument. [...snip...]
> REBOL definitely offers expressive power far beyond the reach of > most of the current crop of programming languages, and I find it > interesting to see just how far that can go. >
[...snip...]
> REBOL (as a von Neumann language in the company of Lisp, PROLOG, > etc.) gives us the ability to indulge in what I'll call "logical
<<quoted lines omitted: 44>>
> benefits more persuasively -- promoting its success more > effectively.
I do like the notion of an Evolving Language. That means a language, whose dictionary is easy to enlarge together with its syntactic/semantic rules. All those properties are present in natural languages, like English, etc. To enlarge a language there must be a possibility to speak about the language in the language. As Carl likes to underline, an Evolving Language must be its own metalanguage. I don't think, that an Evolving Language must be able to do something like: a: [append a [+ 1] 1] do a (a von Neumann property - Pure Self Modifying Code), but I do think, that an Evolving language must be able to do: a: create-a-translation-of something do a , which may be described as a von Neumann property of the language too, but this is a code I would like to describe as a provision to understand Something with new syntactic/semantic rules (a new dialect, if you like, but it might not be a new dialect, but a new stage of the original language evolution). Regards Ladislav

 [2/3] from: joel:neely:fedex at: 13-Oct-2000 22:45


[lmecir--geocities--com] wrote:
> ... The only problem of > your code WRT termination is, that it doesn't terminate for some > trivial inputs, such as None supplied as the first argument. >
Ah! I should have thought of that one! Silly me!
> [...snip...] > I do like the notion of an Evolving Language. That means a
<<quoted lines omitted: 4>>
> As Carl likes to underline, an Evolving Language must be its own > metalanguage.
If I understand your use of the term "evolving language" correctly, back in the 70's we used the term "extensible language" for the same thing (or something quite similar). That term implied that the programmer could: * add new syntactical structures (notation), * add new control structures, * create new datatypes and associated operations, and that having done so, * the extended language would appear as a whole language, without obvious "seams" between the core language and the extensions, and * there should not be a significant performance penalty for using the extensions. However, doing so -- at least when performance was at issue -- seemed always to require fairly intimate knowledge of the implementation of the core language. A prime example is FORTH, which I recall hearing described as "not so much a programming language as a programming language construction kit." So much so, in fact, that it is nearly impossible to write true-FORTH-idiom code without detailed knowledge of the implementation. It should be no surprise, then, that the FORTH community split into factions; such details as the layout in memory of the dictionary data structures could cause code to be highly faction-specific and non-portable!
> I don't think, that an Evolving Language must be able to do > something like:
<<quoted lines omitted: 9>>
> dialect, if you like, but it might not be a new dialect, but a new > stage of the original language evolution).
I believe I understand the distinction you're drawing here, but I must confess that I don't yet grasp HOW to enforce it without either performance penalties or loss of introspection. For example, if I imagine something like active-thing: load-to-read-only-code data-representation do active-thing ALONG WITH the ability to introspect interesting-property: obtain-state active-thing selector then wouldn't I be able to do this altered-property: mutate interesting-property active-thing: load-to-read-only-code replace/all interesting-property altered-property do active-thing and be right back with self-modification, albeit at a severely lowered performance? Have I missed something? -jn-

 [3/3] from: lmecir:geocities at: 17-Oct-2000 9:02


Hi,
> If I understand your use of the term "evolving language" correctly, > back in the 70's we used the term "extensible language" for the same
<<quoted lines omitted: 8>>
> * there should not be a significant performance penalty for using > the extensions.
Extensible Language seems perfect.
> > I don't think, that an Evolving Language must be able to do > > something like:
<<quoted lines omitted: 30>>
> lowered performance? > Have I missed something?
The performance subject is very questionable, IMHO. I would call your sample a WYSIWYG code. Let's try to compare it with Pure SMC like: a: [append a [+ 1] 1] do a Don't you see any difference? If I would like to do it in a WYSIWYG fashion, I would have to write: a: [append a [+ 1] 1] do copy a Let's compare the results: the first case:
>> a: [append a [+ 1] 1]
== [append a [+ 1] 1]
>> do a
== 1
>> do a
== 2
>> do a
== 3
>> do a
== 4
>> do a
== 5
>> do a
== 6
>> do a
== 8 the second one:
>> a: [append a [+ 1] 1]
== [append a [+ 1] 1]
>> do copy a
== 1
>> >> do copy a
== 2
>> do copy a
== 3
>> do copy a
== 4
>> do copy a
== 5
>> do copy a
== 6
>> do copy a
== 7
>> do copy a
== 8
>> do copy a
== 9
>> do copy a
== 10
>>
Regards Ladislav

Notes
  • Quoted lines have been omitted from some messages.
    View the message alone to see the lines that have been omitted