An optimizer (100) comprises a memory (110) and a processor (130). The
memory stores a program (200) to be optimized and optimization software
(301). Controlled by the optimization software, the processor (120) (a)
determines local vectors ("local") in instructions of the program (200)
which indicate the use of resources by the instructions (use-vectors,
exh-vectors); (b) scans the program (200) for Single-Entry-Single-Exit
(SESE) structures (U, T, V, S); and (c) determines SESE vectors from the
local vectors. The SESE vectors indicate the use of resources by the SESE
structures and can be combined by the optimizer to obtain a program
vector. When some instructions are modified, then optimizer (100) only
re-calculates the SESE vector of the corresponding SESE and re-combines
the old SESE vector with the modified SESE vector to determine a new
program vector.
Optimizer (100) bestaat uit een geheugen (110) en uit een bewerker (130). Het geheugen slaat een programma (200) op om worden geoptimaliseerd en optimaliseringssoftware (301). Gecontroleerd door de optimaliseringssoftware, bepaalt de bewerker (120) (a) lokale vectoren ("lokaal") in instructies van programma (200) die op het gebruik van middelen door de instructies wijzen (gebruik-vectoren, exh-vectoren); (b) tast programma (200) de structuren voor van de enig-ingang-enig-Uitgang (SESE) af (U, T, V, S); en (c) bepaalt vectoren SESE van de lokale vectoren. De vectoren SESE wijzen op het gebruik van middelen door de structuren SESE en kunnen door optimizer worden gecombineerd om een programmavector te verkrijgen. Wanneer sommige instructies worden gewijzigd, dan berekent optimizer (100) slechts de vector SESE van het corresponderen SESE opnieuw en combineert de oude vector SESE met de gewijzigde vector SESE opnieuw om een nieuwe programmavector te bepalen.