Re: [stack] function "adjoinment"?

eas lab <[email protected]> Tue, 9 Feb 2010 13:13:31 +0200
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
Re. economics/employment, you've followed my 'wrong-question'.
Like the cat-like-discussion being 'wrong' because it doesn't look to the
higher, more appropriate question: how to make the programmer more productive;
"reducing unemployment is an absurd concept", since the amount of leisure is
the measure of progress.  That US citizens work longer hours than their
parents did, shows how thing have gone wrong.

> Sooner or later he's going to pick up on an overstatement and make out that
> it undercuts your entire position.

Correct, except that I'm buying, not selling.  I hope to pick up some usefull
ideas, from amongst the name dropping: "that's called visual programming";
since I came here seeking:
1. methods of formal proof of algorithms [following Mc Carthy's notes] and
 find none yet;
2. more productive parogramming paradigm/s;  this looks hopefull.

The algol view of repeatedly:
* collect the args,
* call the procedure,
* process the returned value/s;
can [by moving away from the low level implementation view] be better
understood [human cognition is more important the machine efficiency]
by lisp-like: (proc3 (a, (proc2 (proc1 b c) d) ))
  which is a visual mess, as is algol's
proc3( proc2( proc1 (b,c), d))
  and is more managable if it can be written as eg.
proc1? -> proc2? -> proc3? -> result.

I've been [perhaps falsely] encouraged by this data-flow view point,
from noting how unix-piping can conceptually simplify some tasks, by
effective information-hiding.

The point which I'm apparently failing to make is that although forth
and other cat-like are too low-level, stack-shuffling to construct the
individual functions, they could perhaps be profitably used at the
higher level.

<forgotten name> apparently told that joy-author [sorry I'm not a
name-dropper] was merely showing some low-level implementation of
factorial, and that evokeing XY gives a better hi-level implementation.
Well I've got an even better unary-function, which is called "factorial".

Is he really trying to dispute that a joy implementation of factorial
is less cognitively clear than the lisp or algol direct translation of
the pseudo code which the author directly GAVE?

A related meta-programming idea:
  when I look at nightmare Oberon-code [C would be the same] with
3,4,5 nested IfThenElse, I'm reminded how a remarkable forth implemenation
could perhaps solve it.  I'm ad-libbing this, but think decision-table.

Using 3 varables: Dog, Cat, Man; each with 1 of 3 conditions
   Fat,Red,New.  [3 x 3 matrix to be viewed by constant width font]
Dog x   s   e
Cat k   s   t
Man a   r   t

The PROCedudres are: exchange, sell, error, kill, train, advise, rest;
 where the decision-table shows that a fat-dog gets exchange and
 a new-man gets train;..rather than factoring the pairs to eg:

IF red THEN
   IF (dog OR cat) THEN sell;
...etc.

The [need to be stated] productivety/maintenance benefits from such a
notation are, amomgst others, information hiding and "all possible
cases are layed out, in the 3 x 3 matrix for consideration, without the
additional mental translation of nested IfThenElse".

What blew my mind when the forth implementation was shown me, was that
the column & row headers are easy syntactic-sugar, and since forth
natively...[the details escape me now, as they should, if we free our
mind from trivialities]. IIRC the rows are unwrapped, so that (Red,Cat)
becomes the 5th element of the vector of jump-table-elements; and
fat-man is the 7th - which jumps-to/calls PROC: 'advise'.

IMO there's a wide acceptance that increased productivety comes from
meta programming.  The disasterous mental bond that we oldies have to
stack-shuffling and assembly language direct mapping of the hardware,
is apparently freed in those who start with scheme as their first
language.

IMO approaching computer science from mathematics, rather from
engineering and hardware, has massive advantages.
OTOH perhaps its because they didn't get to play with registers
and shifting bits, that the modern-boys are unduly fascinated with
stack-shuffling..etc. --  which I want to free my mind of?

I've just realised that the decision-table-notation can't be easily
implemented in algol-family languages, since they don't 'read and
interpret' the source-code like forth does?

== Chris Glur.


On 2/7/10, pml060912 <[email protected]> wrote:
> --- In [email protected], "William Tanksley, Jr"
> <wtanksleyjr@...> wrote:
>>
>> chris glur <crglur@...> wrote:
>>
>> > There's no problem with people playing cross-word puzzles, but
>> > when I queried cat-like's contribution to productivity, W. Tanksley
>> > changed
>> > the
>> > subject and pointed out that 'greatest productivity increases are from
>> > team-building,
>> > hence the increased use of java'. I don't dispute this, nor the claim
>> > that
>> > any
>> > productivity increase is bad, because it creates unemployment.
>> >
>>
>> That's not even a vague approximation to what I said; it certainly doesn't
>> belong in quotes. You picked up _nothing_ about what I meant, although you
>> did spell all the words correctly (except "team-building", which I never
>> said). The succeeding economic claim is entirely incorrect, and isn't
>> related to anything I said.
>
> Don't let him get to you. You're getting angry enough that you're
> overstating your rebuttals (for instance, that economic claim isn't ENTIRELY
> incorrect, although it takes special circumstances like very low elasticity
> of demand for it to happen - but those DO occur). Sooner or later he's going
> to pick up on an overstatement and make out that it undercuts your entire
> position. P.M.Lawrence.
>
>