[Info-vax] BASIC (and Horizon)

Dave Froble davef at tsoft-inc.com
Wed Jan 31 13:27:57 EST 2024


On 1/31/2024 7:03 AM, Chris Townley wrote:
> On 31/01/2024 04:28, Dave Froble wrote:
>> On 1/30/2024 9:40 AM, Chris Townley wrote:
>>> On 30/01/2024 07:06, Dave Froble wrote:
>>>> On 1/29/2024 8:02 PM, Arne Vajhøj wrote:
>>>>> On 1/29/2024 7:50 PM, kludge at panix.com wrote:
>>>>>> =?UTF-8?Q?Arne_Vajh=C3=B8j?=  <arne at vajhoej.dk> wrote:
>>>>>>> The code is VB6.
>>>>>>>
>>>>>>> But none of the problems are Basic specific. It is possible
>>>>>>> to write the same bad code in C or Fortran or whatever.
>>>>>>>
>>>>>>> So it just shows that there are some really really bad programmers out
>>>>>>> there.
>>>>>>
>>>>>> I have worked with people who could write spaghetti Fortran in any
>>>>>> programming language available.
>>>>>
>>>>> "A real Fortran programmer can write Fortran in any language"
>>>>>
>>>>> Every time this comes up I post this Fortran/Pascal code:
>>>>>
>>>>>       PROGRAM GOTOFUN(INPUT,OUTPUT);
>>>>>       LABEL L731,L113,L247,L588,L761,L922,L399,L601;
>>>>>       VAR LBL:INTEGER;
>>>>>       VAR I:INTEGER;
>>>>>       BEGIN
>>>>> L731: GOTO L113;
>>>>>       LBL:=399;
>>>>> L113: I:=0;
>>>>>       WRITELN(I);
>>>>> L247: LBL:=601;
>>>>>       IF(I<0)THEN GOTO L588 ELSE IF(I=0)THEN GOTO L922 ELSE GOTO L399;
>>>>> L588: I:=I+1;
>>>>>       WRITELN(I);
>>>>>       GOTO L399;
>>>>> L761: CASE(LBL)OF 399: GOTO L399; 601: GOTO L601; END;
>>>>> L922: I:=I+1;
>>>>>       WRITELN(I);
>>>>>       CASE(I)OF 1: GOTO L588; 2: GOTO L399; 3: GOTO L922; END;
>>>>> L399: GOTO L761;
>>>>> L601: END.
>>>>>
>>>>> :-)
>>>>>
>>>>> Arne
>>>>>
>>>>
>>>> I'm amused every time the GoTo bashing begins.
>>>>
>>>> Not only is there nothing wrong when using a branch operation, when
>>>> appropriate, just look at the assembler listings after compilation.  Branching
>>>> is just about all assembler does, as required.
>>>>
>>>> Now, I won't defend what I and most consider improper use of the poor
>>>> misunderstood GoTo statement.
>>>>
>>>
>>> But unless used very carefully, it can create horrible spaghetti like code, and
>>> is also easy to screw up.
>>>
>>> Using proper structured constructs is much better - easier to read as well,
>>> hence better maintainability.
>>>
>>>
>>
>> Prey tell, what structured construct will perform cleanup and exit?  I always
>> expected a return from routines and such.
>>
>
> It would depend on what is needing to be done
>

Final cleanup, if required, and exit the program.

Knew a guy that would us a gosub to go to the END statement.  Drove me nuts.

-- 
David Froble                       Tel: 724-529-0450
Dave Froble Enterprises, Inc.      E-Mail: davef at tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA  15486



More information about the Info-vax mailing list