[Info-vax] VAX Macro to C conversion
Arne Vajhøj
arne at vajhoej.dk
Thu Jul 11 17:26:47 EDT 2019
On 7/11/2019 10:21 AM, Bill Gunshannon wrote:
> On 7/10/19 9:00 PM, Bill Gunshannon wrote:
>> On 7/10/19 8:49 PM, Arne Vajhøj wrote:
>>> On 7/10/2019 8:42 PM, Bill Gunshannon wrote:
>>>> On 7/10/19 2:20 PM, Arne Vajhøj wrote:
>>>>> But while Fortran and Pascal fixed the problem, then C
>>>>> did not.
>>>>
>>>> Actually, it did. A long time ago.
>>>> 1983 PDP-11 Software Source Book -- Page 1395
>>>> 1986 VAX Software Source Book -- Page 1155
>>>>
>>>> The Safe C Compiler.
>>>> From Catalytix Corp.
>>>>
>>>> OSes supported: RSTS, RSX, RT-11, ULTRIX-11, UNIX, ULTRIX-32, VMS.
>>>
>>> Did it have a string type?
>>>
>>
>> I seriously doubt it as it then wouldn't have been C. :-)
But that was what we were discussing for Fortran and Pascal.
>> "The language understood by the Safe C Compiler is identical
>> to that understood by the standard C compilers."
>>
>> But, it had a lot of the checks people here keep arguing that C
>> needs. Array indexing, Stray Pointers, mismatched formal and
>> actual parameters, Misuse of string functions, etc.
>>
>> And the industry rejected it completely. None of its features
>> ever showed up in C Compilers that followed.
>>
>> So, tell me, why did none of these things find their way into
>> the VMS C Compilers?
>
> You know, makes one wonder. Why did ANSI change so much trivial
> stuff when the modified K&R to create ANSI-C and not fix any of
> these supposed shortcomings?
If they had then C would have been much better for most applications
but worse for operating system kernels.
I have no idea what the ANSI/ISO people were thinking back in the
late 1980's.
But it seems quite plausible that the logic was "C does what
it does - those that want a more safe language should pick
another language".
> Why did VMS versions of C not fix any of this? There is nothing
> in the language that prevents range checking or array boundaries.
They needed to be standard compliant.
I don't think it is possible/practical to make all required array,
pointer and array-pointer mix functionality in the standard
work with array range check.
Arne
More information about the Info-vax
mailing list