A system and method is provided for enabling the reuse of algorithms in
multiple application frameworks with no alterations required of the
algorithm once it is developed. An inverted memory allocation mechanism
enables various algorithm modules to be integrated into a single
application without modifying the source code of the algorithm modules.
During a design phase of an application, a set of algorithm modules is
linked with a calling program to form an initial software program. Each of
the set of algorithm modules has a memory interface which responds to a
memory allocation inquiry with memory usage requirements of an instance of
the algorithm module. The calling program sends a query to the memory
interface of each algorithm module to request memory usage requirements
for each instance of the algorithm module. A response is then sent from
the memory interface of each algorithm module identifying memory usage
requirements for each instance of the algorithm module. The calling
program then allocates a portion of memory to each algorithm module to
instantiate each instance in accordance with the memory usage requirement
identified by the memory interface of each algorithm module. Thus, each
instance of the plurality of algorithm modules is instantiated and
allocated memory at design time of an application. The set of algorithm
module instantiations is then combined with the framework to form a final
software program.
Ein System und eine Methode wird für das Ermöglichen der Wiederverwendung von Algorithmen in den mehrfachen Anwendung Rahmen ohne die Änderungen zur Verfügung gestellt, die vom Algorithmus erfordert werden, sobald er entwickelt wird. Eine umgekehrte Speicherallozierungeinheit ermöglicht verschiedenen Algorithmusmodulen, in eine einzelne Anwendung integriert zu werden, ohne das Quellenprogramm der Algorithmusmodule zu ändern. Während einer Designphase einer Anwendung, wird ein Satz Algorithmusmodule mit einem benennenden Programm verbunden, um ein Ausgangs-Software-Programm zu bilden. Jeder des Satzes der Algorithmusmodule hat eine Gedächtnisschnittstelle, die auf eine Speicherallozierunganfrage mit Gedächtnisverbrauchanforderungen eines Falls des Algorithmusmoduls reagiert. Das benennende Programm schickt eine Frage zur Gedächtnisschnittstelle jedes Algorithmusmoduls zu den Antraggedächtnis-Verbrauchanforderungen für jeden Fall des Algorithmusmoduls. Eine Antwort wird dann von der Gedächtnisschnittstelle jedes Algorithmusmoduls gesendet, das Gedächtnisverbrauchanforderungen für jeden Fall des Algorithmusmoduls kennzeichnet. Das benennende Programm teilt dann einen Teil des Gedächtnisses jedem Algorithmusmodul instantiate zu, das jeder Fall in Übereinstimmung mit der Gedächtnisverbrauchanforderung durch die Gedächtnisschnittstelle jedes Algorithmusmoduls kennzeichnete. So ist jeder Fall der Mehrzahl der Algorithmusmodule instantiated und zuteilte Gedächtnis zur Designzeit einer Anwendung. Der Satz von Algorithmusmodul instantiations wird dann mit dem Rahmen kombiniert, um ein abschließendes Software-Programm zu bilden.