[Info-vax] Error Messages in Basic - %BASIC-E-PARMODNOT, mode for parameter <n> of routine <procedure-name> not as declared

Arne Vajhøj arne at vajhoej.dk
Sun Jun 9 22:07:15 EDT 2019


On 6/9/2019 10:43 AM, Dave Froble wrote:
> On 6/9/2019 7:28 AM, Neil Rieck wrote:
>> On Saturday, June 8, 2019 at 11:16:47 PM UTC-4, Dave Froble wrote:
>>> I guess where I'm confused is what is the difference between a RECORD
>>> structure that is basically 8 bytes, regardless of the makeup, and the
>>> BASIC QUAD variable definition.  I'm assuming there is a difference,
>>> since the reported problem exists.  But what is that difference, and, 
>>> WHY?
>>>
>>> If declaring a variable, and passing it by ref, then what I'd expect is
>>> simply the address of the 8 bytes.  What am I missing?

Apparently Basic do think the two declarations are non-compatible
in the context.

Can you assign them to each other?

If no then it sort of make sense that they are not interchangeable
in a call either.

>> IIRC (I am not at work), QUAD is an signed variable while
>> BASIC$QUADWORD is unsigned. If you begin every VMS-BASIC program with
>> "option type=explicit" (and every professional programmer would)
> 
> Oh, no, I've been exposed!  I was posing as a "professional programmer" 
> when I guess I'm really not a "professional programmer".
> 
> I guess when one programs in a language that forces variable 
> definitions, then one might feel that it's a "good practice".
> 
> Interesting that so many in c.o.v express their way as being the only way.

25 years ago or so, then it was generally considered best practice.

Today many of the most popular languages are even less type strict
than Basic. In some of them it is not even possible to define the type
of a variable. Like DCL.

Arne



More information about the Info-vax mailing list