🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.gnu
Article #33

Re: was macht alloca?

#33
From: Lars Soltau
Date: Thu, 03 Sep 1992 09:07
38 lines
2504 bytes
>>>>> On 2 Sep 92 18:25:55 GMT, hcz@reto.stgt.sub.org (Heike C Zimmerer) said:

> In article <1992Sep01.065949.23504@rubikon.han.de> toad@rubikon.han.de 
> (Peter Cleve) writes:

>>Wenn du du Block durch Function austauscht liegst du richtig.
>>Nur absolut bescheuerte Compiler werden Variablen die lokal fuer einen
>>Block definiert sind beim Blockeintritt/austritt anlegen/loeschen.

> So bescheuert finde ich das nicht. Das Anlegen/Loeschen kostet nicht viel
> Assemblerinstruktionen (hier ists genau eine (1)).

Das ist auch nicht der Grund. Es wird nur kompliziert fuer den Compiler,
wenn mit break, continue oder goto aus dem Block oder in den Block gesprungen
wird. Dann muss der Compiler-Bauer dafuer sorgen, dass der Platz fuer die
lokalen Variablen auch brav immer angelegt und zerstoert wird.

> Neben dem Scope gibt es aber noch einen wichtigen Grund, Variable
> in einem lokalen Block zu definieren: Speicherplatz.

Das kann man aber auch anders loesen. Es ist naemlich viel einfacher,
festzustellen, welche Bloecke sich gegenseitig nie aufrufen. Damit koennen
dann die lokalen Variablen dieser Bloecke ueberlappend auf dem Stack
angeordnet werden.

Ich habe gerade den Gcc (1.39) darauf ueberprueft. Es werden tatsaechlich
lokale Variablen in sich gegenseitig ausschliessenden Bloecken nicht
ueberlappend angeordnet. Beim Winzelweich-C ist es so, dass Variablen gleichen
Typs ueberlappend angeordnet werden.
--
Lars Soltau	bang: <insert ridiculously long path>	    BIX: -- no bucks --
		smart: space@ncc1701.stgt.sub.org

     Germany, Stuttgart-Zuffenhausen, where dreams come true: Heaven is 911!

I mean, do we call lack of belief in a Holy Banana abananism and
say that various evil is justified by abananism?
			-- David Choweller on alt.atheism
Technical Details
Message-ID: <SPACE.92Sep3110721@ncc1701.stgt.sub.org>
Path: arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!news.netmbx.de!Germany.EU.net!rz.uni-hildesheim.de!agsc!nadia!ncc1701.stgt.sub.org!ncc1701!space
References: <1992Aug19.082419.13150@newsserver.rrzn.uni-hannover.de> <920829440@monad.swb.de> <SPACE.92Aug31103804@ncc1701.stgt.sub.org> <1992Sep01.065949.23504@rubikon.han.de> <5180@reto.stgt.sub.org>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!news.netmbx.de!Germany.EU.net!rz.uni-hildesheim.de!agsc!nadia!ncc1701.stgt.sub.org!ncc1701!space
From: space@ncc1701.stgt.sub.org (Lars Soltau)
Newsgroups: de.comp.gnu
Subject: Re: was macht alloca?
Date: 03 Sep 92 09:07:21 GMT
Organization: United Federation of Planets
Lines: 38
Message-ID: <SPACE.92Sep3110721@ncc1701.stgt.sub.org>
References: <1992Aug19.082419.13150@newsserver.rrzn.uni-hannover.de>
 <920829440@monad.swb.de> <SPACE.92Aug31103804@ncc1701.stgt.sub.org>
 <1992Sep01.065949.23504@rubikon.han.de> <5180@reto.stgt.sub.org>
NNTP-Posting-Host: ncc1701.stgt.sub.org
In-reply-to: hcz@reto.stgt.sub.org's message of 2 Sep 92 18:25:55 GMT