Information is computed about the reachability relationships among objects
and pointers to enable transformation of a computer program for optimizing
the creation and destruction of objects, while strictly performing the
semantics of the original program. An interprocedural analysis is used to
determine whether an object that is allocated on the heap during the
execution of a procedure is not reachable from any global variable,
parameter, or the return value of the procedure after it returns. If so,
that object can be allocated on the stack frame of the procedure in which
it is otherwise heap-allocated. This simplifies the memory allocation and
deallocation operations, as allocation on the stack can be done more
efficiently than allocation on the heap, and objects allocated on the
stack frame of a procedure are automatically deallocated when the
procedure returns, without incurring the overhead of garbage collection.
This, in turn, leads to faster programs which use fewer computer processor
resources to execute. The interprocedural analysis of the program
summarizes the effect of a procedure call succinctly for different calling
contexts of the procedure using a single summary representation. The
method handles exceptions in the programming language, while taking
advantage of the information about the visibility of variables in the
exception handler. Variants of the method show how one or several of the
features of the method may be performed.
Informationen werden über die reachability Verhältnisse unter Gegenständen und Zeigern berechnet, um Umwandlung eines Computerprogramms für die Optimierung der Kreation und der Zerstörung der Gegenstände zu ermöglichen, beim die Semantik des ursprünglichen Programms ausschließlich durchführen. Eine interprocedural Analyse wird verwendet, um festzustellen, ob ein Gegenstand, der auf dem Haufen während der Durchführung eines Verfahrens zugeteilt wird, nicht von irgendeiner globalen Variable, vom Parameter oder vom Rückholwert des Verfahrens nach ihm zurückgeht erreichbar ist. Wenn so, kann dieser Gegenstand auf dem Stapelrahmen des Verfahrens zugeteilt werden, in dem er anders Haufen-zugeteilt wird. Dieses vereinfacht die Speicherallozierung und Aufhebungbetriebe, während Verteilung auf dem Stapel leistungsfähiger erfolgt werden kann als Verteilung auf dem Haufen, und die Gegenstände, die auf dem Stapelrahmen eines Verfahrens zugeteilt werden, werden automatisch wenn die Verfahren Rückkehr freigegeben, ohne auf die Unkosten der Abfallansammlung sich zu nehmen. Dieses führt der Reihe nach zu schnellere Programme, die wenige Computerprozessorbetriebsmittel benutzen, um durchzuführen. Die interprocedural Analyse des Programms faßt den Effekt eines Verfahren Anrufs succinctly für unterschiedliche benennende Kontexte des Verfahrens mit einer einzelnen zusammenfassenden Darstellung zusammen. Die Methode faßt Ausnahmen in der Programmiersprache, beim Ziehen des Nutzens aus den Informationen über die Sicht von Variablen in der Ausnahmezufuhr an. Varianten der Methode zeigen, wie eine oder mehrere der Eigenschaften der Methode durchgeführt werden können.