Re: modifying constants in Fortran and elsewhere

David Brown <david.brown@hesbynett.no>
Mon, 17 Jul 2023 13:09:43 +0200

          From comp.compilers

Related articles
modifying constants in Fortran and elsewhere gah4@u.washington.edu (gah4) (2023-07-10)
Re: modifying constants in Fortran and elsewhere tkoenig@netcologne.de (Thomas Koenig) (2023-07-15)
Re: modifying constants in Fortran and elsewhere DrDiettrich1@netscape.net (Hans-Peter Diettrich) (2023-07-16)
Re: modifying constants in Fortran and elsewhere tkoenig@netcologne.de (Thomas Koenig) (2023-07-16)
Re: modifying constants in Fortran and elsewhere gah4@u.washington.edu (gah4) (2023-07-16)
Re: modifying constants in Fortran and elsewhere gah4@u.washington.edu (gah4) (2023-07-16)
Re: modifying constants in Fortran and elsewhere david.brown@hesbynett.no (David Brown) (2023-07-17)
Re: modifying constants in Fortran and elsewhere gah4@u.washington.edu (gah4) (2023-07-17)
| List of all articles for this month |

From: David Brown <david.brown@hesbynett.no>
Newsgroups: comp.compilers
Date: Mon, 17 Jul 2023 13:09:43 +0200
Organization: Compilers Central
References: 23-07-003
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="81027"; mail-complaints-to="abuse@iecc.com"
Keywords: history, forth
Posted-Date: 17 Jul 2023 12:18:48 EDT
In-Reply-To: 23-07-003

On 11/07/2023 04:42, gah4 wrote:
> A potential bug since the earliest days of Fortran is passing a
> constant to a subroutine, and then changing the value of the dummy
> argument.
>
> In at least some Fortran system, this modifies the value of a constant
> used other places in a program.
>
> As this was known when PL/I was designed, it is defined such that
> modifiable constants are passed to called procedures. C avoids it by
> not allowing the & operator on constants. (Though K&R allows
> modification of string constants.)
>
> Somehow, in all the years, that feature was never added to Fortran.
>
> It is easy to write programs and test for it, but I wonder if there
> are any stories for real program that had this bug, and even better,
> stories about the difficulty of finding it, or problems caused by it.


I don't think any language can beat Forth here:


1 .
=> 1 ok
1 1 + .
=> 2 ok


: 1 2 ;
=> ok
1 .
=> 2 ok
1 1 + .
=> 4 ok


If you want to redefine the meaning of a number, you just define it like
any other identifier.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.