[Info-vax] VAX Macro to C conversion
Bill Gunshannon
bill.gunshannon at gmail.com
Thu Jul 11 21:26:45 EDT 2019
On 7/11/19 5:26 PM, Arne Vajhøj wrote:
> 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 77 Fortran standard and various Pascals (I don't have a copy
of the standard handy) added strings to the language. C never has.
And the C in use at the time Safe C was created was pure K&R.
>
>>> "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.
In what way? I don't need unbounded arrays to write an OS. Or a
device driver.
>
> I have no idea what the ANSI/ISO people were thinking back in the
> late 1980's.
And still people wonder why I have never been impressed with the
work ANSI does.
>
> 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".
And yet the tried to add OO to COBOL. They created a standard for
Pascal which, for obvious reasons, couldn't please all Pascal users.
They added strings to Fortran, a language specifically intended for
complex mathematics. Go figure.
>
>> 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.
Does the standard explicitly state that boundaries and ranges can
not be validated?
>
> 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.
If it can't be fixed then why do people still complain about the fact
that C does it?
bill
More information about the Info-vax
mailing list