I read this wiki entry https://en.wikipedia.org/wiki/Evaluation_strategy and it
is clear as mud. I think I have led a sheltered life.
As an aside, I followed the OOP discussion. The session manager (TPX) I worked
on had a kind of OOP. It had a stack for each thread, the htreads were
interruptible (conversational), you pushed objects onto the stack, methods used
the stack to evaluate a host of variables (originaly about 1000, later over
2000), the opsys storage was the zero level of the stack, each task was a
server sending and receiving messages from everyone, including VTAM via exits,
there was a timer task used for scheduling.... And it was easier programming
that in assembler than CICS using Cobol.
It had a client server piece in the form of an emulator. It had the potential
of being a pipeline between the host and the client. But noone had to
foresight to allow it. And then we were bought by CA.
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On
Behalf Of Charles Mills
Sent: Friday, February 09, 2018 4:23 PM
Subject: Re: Man or boy test
As I understand it, call-by-name means the following:
Suppose for example if you coded a subroutine that expected some sort of
parameter, and called it with a random number function, the random number
function would (in most languages) get evaluated once before your subroutine
was called, and your subroutine would see it as a constant. If you printed it
three times in a loop it would be the same all three times.
With call-by-name, 'RAND()' (or whatever) would not get evaluated by the caller
but rather passed to your subroutine "as-is." It would get evaluated whenever
your subroutine referenced it. If you printed it three times in a loop you
would get three different values.
It's not really "call by name" but rather "call with function" as opposed to
"call with value of function."
----------------------------------------- The information contained in this
communication (including any attachments hereto) is confidential and is
intended solely for the personal and confidential use of the individual or
entity to whom it is addressed. The information may also constitute a legally
privileged confidential communication. If the reader of this message is not the
intended recipient or an agent responsible for delivering it to the intended
recipient, you are hereby notified that you have received this communication in
error and that any review, dissemination, copying, or unauthorized use of this
information, or the taking of any action in reliance on the contents of this
information is strictly prohibited. If you have received this communication in
error, please notify us immediately by e-mail, and delete the original message.