[Info-vax] DEC Basic and dynamic memory ?

Arne Vajhøj arne at vajhoej.dk
Mon Jan 31 09:40:36 EST 2022


On 1/31/2022 8:36 AM, Simon Clubley wrote:
> On 2022-01-30, Arne Vajhøj <arne at vajhoej.dk> wrote:
>> On 1/30/2022 7:09 PM, Simon Clubley wrote:
>>> On 2022-01-30, Arne Vajhøj <arne at vajhoej.dk> wrote:
>>>> On 1/30/2022 6:54 PM, Simon Clubley wrote:
>>>>> On 2022-01-29, Arne Vajhøj <arne at vajhoej.dk> wrote:
>>>>>> In this case Simon outlined a problem where Pascal and C are obvious
>>>>>> languages and me with no Basic experience wrote some Basic code - that
>>>>>> is almost ensure an "unsual style". Or to put it another way: I am
>>>>>> (or was) a Fortran programmer and Fortran programmers can program
>>>>>> in Fortran in any language.  :-)
>>>>>
>>>>> Thanks for the demo program Arne.
>>>>>
>>>>> The approach you are forced to use in DEC Basic is way more ugly than
>>>>> doing it in C or Pascal.
>>>>
>>>> Ugly or just unfamiliar?
>>>
>>> Ugly because of all the tree management stuff you have to do for
>>> yourself that you get for free in C or Pascal.
>>
>> What is all the tree management stuff?
> 
> When you prune the tree, you have to mark the pruned nodes as deleted
> in the backing storage instead of just directly removing them from the
> tree and giving the memory back to the language RTL for later reuse.
> 
> When you later want to add nodes to the tree, you have to search the
> backing storage looking for deleted nodes to reuse.

Ah - the tree management stuff that was not there.

(it was an add only tree)

You would probably not search for  deleted node to reuse. You would
add to the top and then do a selective copying when top reaches
capacity. Almost a GC concept.

> In addition, you have to grow the backing storage manually when there
> are no more spare nodes available and you have to pick values for
> initial_size and growth_increment based on your expected application
> requirements.

It adds a little code.

But the values are not a big issue. It is an extremely widely
used concept.

> You don't have to do any of this in your code in C or Pascal.

There is a little extra code. But not particular scary.

Arne



More information about the Info-vax mailing list