Re: How come Ada isn't more popular?




"Dmitry A. Kazakov" <mailbox@xxxxxxxxxxxxxxxxx> writes:

On Sun, 04 Feb 2007 23:33:40 +0100, Markus E Leypold wrote:

"Dmitry A. Kazakov" <mailbox@xxxxxxxxxxxxxxxxx> writes:

They don't share subtrees they share memory (implementation), which is
casual to the program semantics.

They share representation in the underlying system / VM / whatever you
call it.

Whatever. They are not shared in the sense of aliasing, when you have more
than one name for semantically same thing. 1+1 and 3-1 "share" 2. And this
is irrelevant to where 2 might be allocated or how it were encoded.

When a subtree C of a tree A changes, should it ("it" is an
identity (:-)) in the tree B be changed as well?

Change? There is no "change" in a functional world, only the
production of new values (i.e. new elements from a specific set, in
your case the set of all trees).

(New values? What is the difference between new and old values? Do values
carry RFID chips with timestamps? (:-))

Don't play dumb. There is certainly an order between values occuring in
a (functional) program.

If let x = f y, I suggest that the parlance "x occurs after y" in the
sense of "order in which values are produced during evaluation" is
certainly legal.


Values "occur"? [ You cannot fix the sentence above, it is semantically
broken. ]

You're playing dumb. Can't help you there.

Consider a mapping between nodes of two trees which has to be
preserved. Now a function of the first tree is evaluated, what
happens with the function of the second tree?

g
A ------> B
| |
f| | id = nothing happens
| |
V g V
f(A) ------> B (broken invariant)

The function of the second tree? What are you talking about? Let me
repeat: In pure functional languages nothing "changes".

Consider A = tree, B = its maximal path. When f(A) "occur," [a node is
removed] what happens with B?

'occur' -- your way to read what I said is certainly semantically
broken.


Answer: nothing happens, the program is broken. The programmer has to
manually evaluate Max_Path(f(A)). "Maximal path of" is non-functional.

LOL.


It makes a
difference if you pass an access to a variable instead of passing the
variable as an in/out parameter and there is a difference if you
pass it as an in parameter.

It does because access T and T are different types! T is not passed, access
T is passed (by reference or by value).

You could save much time if you just said that you wanted referential
objects (pointers). Period.

Now my question again, what prevents you from collecting objects accessed
via controlled referential objects?

I do not even know any more what you're talking about. You introduced
the "references don't matter, its a question of implementation not
semantics". Since you also fail to understand how representation
sharing is implemented in (most functional languages) you are bound to
fail to understand how that makes GC a necessity in FP. That AFAIR was
my last train of clear thought in this sub-thread. What that has to do
with "controlled referential objects" I don't know, since I certainly
didn't talk about them.

I now have to go to my brain engineer and let him overhaul some areas
of my brain. Talking to to you has, sometimes, a rather destructive
effect.


Regards -- Markus



.



Relevant Pages

  • Re: Whats lacking: a good intermediate form
    ... They describe this AST thing, ... Tree), where each branch of the tree represents an operation, and each ... representation of the input code ... Now that's a contradictory statement if I ever heard one: no semantics ...
    (comp.lang.misc)
  • Re: Abstract public member variales?
    ... [The issue of string representation is a different thing. ... When semantics sufficiently depends on both ... This outsider could be either the Property (= Property ... or a reference to the property to set. ...
    (comp.object)
  • Re: Cohens paper on byte order
    ... This was assumed in suggesting that the early evaluation of a bit stream ... that a fractional numeric representation did not have this limitation. ... >> string on a particular machine but this is irrelevant if the bit string ... semantics match those of the objects that they are manipulating. ...
    (sci.crypt)
  • Re: Genetic programming and code evolution
    ... incredible number of mutations you would need. ... of optimization, and you have no chance to attack it using trees. ... which being translated into trees, are scattered all across the tree. ... People operate program semantics, which is not well captured by the ...
    (comp.compilers)
  • Re: my KDF vs dictionary attacks
    ... Important thing, semantics. ... representation fails to use "both the 0 and 1 of each bit" to represent all the values in ... 1.79769313486232e+308, again for the same reason, the full 8 bytes are not used in displaying a positive or negative number. ...
    (sci.crypt)