Разработка компиляторов

       

Фрагменты


Фрагментом называется произвольный подграф графа управления (под подграфом мы понимаем некоторое непустое подмножество вершин графа, содержащее все ребра графа между ними).

Для фрагмента F определяются четыре множества вершин:

  • входные вершины (entry (F)) - множество вершин F , до которых существует путь из start , не содержащий других вершин F
  • начальные вершины (begin(F)) - множество вершин F , в которые входит хотя бы одна дуга извне F
  • выходные вершины (exit(F)) - множество вершин F, из которых исходит хоть одна дуга вовне F
  • конечные вершины (end(F)) - множество вершин вовне F, в которые входит хоть одна дуга из F

Схематически соотношения между фрагментом и этими его множествами вершин показаны на слайде.

Фрагменты графа потока управления являются абстракциями конструкций управления языков программирования. Известно, что практически все языки программирования определяют сходный набор конструкций управления. Следовательно, перейдя от анализа конкретных конструкций к их обобщениям, можно разработать способы анализа свойств программ независимо от входных языков.

Далее мы рассмотрим некоторые виды фрагментов.



Содержание раздела