Re: What's wrong with alloca() ?

wicklund@intellistor.com (Tom Wicklund)
Mon, 30 Dec 91 10:17:54 MST

          From comp.compilers

Related articles
What's wrong with alloca() ? preston@dawn.cs.rice.edu (1991-12-19)
Re: What's wrong with alloca() ? apang@mindlink.bc.ca (1991-12-15)
Re: What's wrong with alloca() ? pardo@cs.washington.edu (1991-12-21)
Re: What's wrong with alloca() ? preston@dawn.cs.rice.edu (1991-12-22)
Re: What's wrong with alloca() ? wjw@eb.ele.tue.nl (1991-12-23)
Re: What's wrong with alloca() ? David.Chase@Eng.Sun.COM (1991-12-23)
Re: What's wrong with alloca() ? pcg@aber.ac.uk (1991-12-26)
Re: What's wrong with alloca() ? wicklund@intellistor.com (1991-12-30)
Re: What's wrong with alloca() ? wws@renaissance.cray.com (1991-12-30)
Re: What's wrong with alloca() ? jfc@athena.mit.edu (1991-12-31)
Re: What's wrong with alloca() ? GORMAN_B@prime1.lancashire-poly.ac.uk (Barry Gorman) (1992-01-03)
Re: What's wrong with alloca() ? rankin@eql.caltech.edu (1992-01-05)
Re: What's wrong with alloca() ? pcg@aber.ac.uk (1992-01-05)
Re: What's wrong with alloca() ? barmar@think.com (1992-01-06)
| List of all articles for this month |
Newsgroups: comp.compilers
From: wicklund@intellistor.com (Tom Wicklund)
Keywords: storage
Organization: Compilers Central
References: 91-12-075 91-12-081
Date: Mon, 30 Dec 91 10:17:54 MST

Control Data's internal development language CYBIL had both an alloca type
structure and malloc type allocation within a fixed region.


The PUSH statement allocates storage which was freed on procedure exits.
I believe most implementations merely decrement the stack pointer,
providing a very low cost method of allocating structures whose size
varied at runtime.


CYBIL also had method of declaring a block of memory and allocating and
freeing that area as a distinct heap. Complementing this was the concept
of "relative pointers", basically an offset from a base location (which
was dereferenced using both the pointer and the base). I don't recall the
syntax and may be mistaken on exact semantics since all of this is from
work I did 7 years ago.


The CYBIL facilities of heap allocation within a memory block and relative
pointers allows complex data structures which include pointers to be
written to disk and read back -- just read the block which everything is
allocated within. Relative pointers don't need to be adjusted since they
don't contain absolute addresses. I assume this is what the feature was
used for.


Afraid I don't have any references, however I'm sure the CYBIL language
definition is available from Control Data.
[Relative pointers sound like PL/I OFFSET pointers, a useful feature. -John]
--


Post a followup to this message

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