From: cross@spitfire.i.gajendra.net   
      
   In article <10gn29j$2d8ve$2@dont-email.me>,   
   Arne Vajhøj wrote:   
   >On 12/2/2025 10:46 AM, Dan Cross wrote:   
   >> In article <10gn0cq$2d8ve$1@dont-email.me>,   
   >> Arne Vajhøj wrote:   
   >>> On 12/2/2025 8:50 AM, Dan Cross wrote:   
   >>>> An issue with COBOL is that, given procedures A, B, ..., Z,   
   >>>> written sequentially in source, `PERFORM A THRU Z` means that it   
   >>>> is difficult to see when procedures B, C, ..., Y are called just   
   >>>> through visual inspection since calls to them are implicit; you   
   >>>> really need semantically aware tools to do that. So if you need   
   >>>> to change paragraph D, then you run the risk of implicitly   
   >>>> changing dependent behavior in your system unintentionally. You   
   >>>> might end up violating some assumption you didn't even know   
   >>>> existed; talk about spooky action at a distance.   
   >>>   
   >>> That is a classical argument found on the internet.   
   >>   
   >> Yes. I myself have been making it for years.   
   >>   
   >>> But I am not convinced that it is critical.   
   >>>   
   >>> It is all within one file.   
   >>>   
   >>> $ search foobar.cob thru,through   
   >>>   
   >>> should reveal if the feature is used.   
   >>>   
   >>> Unless the file is very long and the code is very ugly, then   
   >>> I believe it should be relative easy possible to track the   
   >>> perform flow even in VT mode EDT or EVE.   
   >>   
   >> I'm not at all convinced of that in a large code base; call   
   >> graphs resulting in such `PERFORM`s can be too big to trace by   
   >> hand. And many of these extant COBOL applications are quite   
   >> large, indeed.   
   >   
   >There are lots of hundreds of thousands or millions of lines of   
   >code applications.   
   >   
   >But hopefully not as single file.   
      
   I don't see how that's relevant. If a call comes from outside   
   of a file that results in that PERFORM, you've still got the   
   same problem. The point is, some very distant part of the   
   system may be relying on that implicit behavior. You really   
   have no way to tell.   
      
    - Dan C.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|