From: Terence on
Glen wrote:-

For the first Fortran compiler, in the manual 50 years and one week
old:

"The name of a function is 4 to 7 alphabetic or numeric characters,
(not special characters) of which the last must be F and the first
must be alphabetic. Also, the first must be X if and only if the
function is to be fixed point."

You know, I DON't remember that!!
I think I still have the 4/1/61 Fortran manual around (the one with
SENSE SWITCH set reset and and test instuctions and the punch output
and other now-"funny" stuff). but I'm darn sure there was no mention of
an "F" or "X" as a required leading character. Perhaps this is a
non-IBM specification of somewhere between 1957 and 1961 before
programsa became more shareable? (By the way, who remembers Algol?)

Possible the other references (in other contributions) on name size
limits are confusing FUNCTION and SUBROUTINE name limitations with
VARIABLE name limitations; the former WERE different, since the
function name WAS a variable and the subroutine name was not, but all
were in the symbol table as encountered names.

From: Peter Flass on
glen herrmannsfeldt wrote:
> Brian Inglis wrote:
>
> (snip on C, struct, and operators)
>
>> And what would these operators mean applied to a struct? You need C++,
>> but it's not intuitively obvious what those operators
>> would mean, so using member functions with meaningful names would be
>> more obvious e.g. zero_stuff, inc_stuff, add_stuff.
>
>
> It took Fortran many years to add array operations, yet they
> seem obvious once added. Initializing a whole array with as
>
> A=0
>
> seems obvious enough, why not initialize a whole structure
> in a similar way? That would, of course, depend in the operation
> making sense, in that the structure would have to contain only
> elements where assigning 0 made sense.
>

For PL/I, just initialize the structure to the null string, e.g.:
struct = '';
This is defined for all computational data to initialize numerics to
zero, character data to spaces, etc. It's undefined for
non-computational data, but most implementations will initialize
pointers to NULL, etc.

From: Gordon Sande on
>
> For mathematicians, elementwise multiplication doesn't make sense,


I had always understood it to be called the Hadamard product but it certainly
takes a distant second (or lower) place to the usual matrix manipulations.

Google has several citations with a few properites.



From: Gordon Sande on
On 2006-10-22 04:56:06 -0300, glen herrmannsfeldt <gah(a)ugcs.caltech.edu> said:

> Terence wrote:
> (snip)
>
>> My memory is that at least one of the earlier Fortran compilers I
>> worked with allowed SIX-letter variable names only in the main program.
>> And FIVE-letter names as variables in subroutines and functions.
>
> (snip)
>
> For the first Fortran compiler, in the manual 50 years and one week old:
>
> "The name of a function is 4 to 7 alphabetic or numeric characters,
> (not special characters) of which the last must be F and the first
> must be alphabetic. Also, the first must be X if and only if the
> function is to be fixed point."
>
> Also, "The name of a variable must not be the same as the name of
> any function used in the program after the terminal F of the function
> name has been removed. Also, if a subscripted variable has 4 or more
> characters in its name, the last of these must not be an F."
>
> Six letter names are especially convenient for 36 bit machines
> using a six bit character set, or that internally adopt a six
> bit character set for some names.
>
> -- glen

I had a vague recollection about a rule concerning terminal F in a
function name.
Thanks for the confirmation. The reason as I recall it was that things like
SINF had only a single arguement that could be placed in the accumulator
while regular subroutine calls used a differing calling convention of a list
of addresses. I have no notion of what the rule would have been for been for
a terminal F and several arguements or for a nonscalar arguement that was
intended to be changed. I do not recall if there was any way, other than
assembley language, for a user written Fortran function to use the special
convention.

This special casing was another symptom of the attention paid to optimization
in the earliest Fortran compilers. They were competing with assembly language
coding at a time when computers were still very much more expensive than the
software.



From: Larry__Weiss on
Gordon Sande wrote:
>>
>> For mathematicians, elementwise multiplication doesn't make sense,
>
>
> I had always understood it to be called the Hadamard product but it
> certainly takes a distant second (or lower) place to the usual
> matrix manipulations.
>
> Google has several citations with a few properites.
>

Here's a good summary

http://en.wikipedia.org/wiki/Matrix_multiplication#Hadamard_product

- Larry