Доступні вирази

Доступні вирази — алгоритм розбору, що визначає для кожної точки програми набір виразів, що не мають бути переобчислені. Кажуть, що в цій точці ці вирази доступні. Щоб бути доступним в точці програми, операнди вирази не повинні бути змінені з часу зустрічі цього виразу до цієї точки.

Цей розбір є прикладом задачі аналізу потоку даних вперед. Набір доступних зберігається. Кожне твердження розбирається на питання чи не змінює воно значення операнда одного чи декількох доступних виразів. Отримуємо набір доступних виразів на завершенні кожного базового блоку, відомий як початок (англ. outset) в термінах аналізу потоку даних. Вираз доступний на старті базового блоку, якщо він доступний наприкінці кожного його попередника. Звідки ми можемо отримати набір виразів доступних на початку блока.

Розбір доступних виразів використовується в усуненні глобальних загальних виразів. Якщо вираз доступний в точці, немає потреби заново рахувати його.

Джерела

  • Aho, Sethi & Ullman: Compilers - Principles, Techniques, and Tools Addison-Wesley 1986
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.