The present invention is directed to expanding the scope of execution
optimization by method inlining in a language with a security facility
such as Java. More particularly, the present invention is directed to a
step of generating a code necessary for looping by a tail recursion for a
first method including an invocation of a method whose process after its
invocation is indefinite and which includes a self recursion, and a step
of generating a code for counting the number of iterations of the loop are
included. SecurityManager corrects the depth of the frame associated with
a second method in the storage area by using the count value by the code
for counting the number of iterations of the loop. It also includes the
steps of: inlining a code of the first method into the second method,
wherein the second method includes an invocation of the first method whose
process after its invocation is indefinite; getting the invocation
relationship information between the first and the second methods in a
state before inlining the code of the first method, and storing the
invocation relationship information into a storage area available later;
and generating a code for storing information about the first method being
executed when the code of the inlined first method is executed.
SecurityManager traces the stack with generated invocation relationship
information.
Die anwesende Erfindung wird auf die Erweiterung des Bereichs der Durchführung Optimierung durch die Methode verwiesen, die in einer Sprache mit einem Sicherheit Service wie Java inlining ist. Besonders, wird die anwesende Erfindung auf einen Schritt des Erzeugens eines Codes verwiesen, der für die Schleifung durch eine Endstückrekursion für eine erste Methode einschließlich eine Anforderung einer Methode notwendig ist, deren Prozeß, nachdem seine Anforderung unbestimmt ist und die eine Selbstrekursion einschließt und ein Schritt des Erzeugens eines Codes für das Zählen der Zahl Wiederholungen der Schleife enthalten sind-. SecurityManager behebt die Tiefe des Rahmens, der mit einer zweiten Methode im Speicherbereich verbunden ist, indem er den Zählwert durch den Code für das Zählen der Zahl Wiederholungen der Schleife verwendet. Es schließt auch die Schritte von ein: einen Code der ersten Methode in die zweite Methode inlining, worin die zweite Methode eine Anforderung der ersten Methode einschließt deren Prozeß nach seiner Anforderung unbestimmt ist; die Anforderung-Verhältnis-Informationen zwischen dem ersten und den zweiten Methoden in einem Zustand, bevor der Code der ersten Methode inlining, und die Speicherung der Anforderung-Verhältnis-Informationen erhalten in ein vorhandenes späteres des Speicherbereichs; und einen Code für die Speicherung von von Informationen über die erste Methode erzeugend, die durchgeführt wird, als der Code von erste Methode inlined, wird durchgeführt. SecurityManager verfolgt den Stapel mit erzeugten Anforderung-Verhältnis-Informationen.