У цій роботі розглядаються техніки, що представляють собою, у відмін- ність від низькорівневих оптимізацій, зазвичай реалізованих у сучасних компіляторах, більш абстрактний рівень компонентної оптимізації, пов'язаної з агрегуванням і спільною взаємодією різних незалежних компонентів усередині однієї програми. Як правило, стандартні компоненти написані й підтримуються без врахування того середовища в якому вони працюють у рамках кінцевої кліє- нтської програми, тому просте їх комбінування зазвичай малоефективне й затратно по швидкодії і пам'яті. , а також для мов високого рівня, що просто не надають про- грамісту можливість «ретельно» налаштувати використовувані компоненти. Зазвичай, при розробці програм, оптимізації такого рівня проводяться вручну програмістом, що, як було показано вище(у розділі 1.1), має ряд недо- ліків.