Jump to content

Трехадресный код

В информатике трехадресный код [1] (часто сокращенно TAC или 3AC) — это промежуточный код , используемый оптимизирующими компиляторами для помощи в реализации преобразований, улучшающих код . Каждая инструкция TAC имеет не более трех операндов и обычно представляет собой комбинацию присваивания и бинарного оператора. Например, t1 := t2 + t3. Название происходит от использования трех операндов в этих операторах, хотя могут встречаться инструкции с меньшим количеством операндов.

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

Уточнением трехадресного кода является А-нормальная форма (АНФ).

Примеры [ править ]

В трехадресном коде это будет разбито на несколько отдельных инструкций. Эти инструкции легче переводятся на язык ассемблера . Также легче обнаружить общие подвыражения для сокращения кода. В следующем примере одно вычисление состоит из нескольких более мелких:

Трехадресный код может иметь условные и безусловные переходы и методы доступа к памяти. Он также может иметь методы вызова функций или сводить их к переходам. Таким образом, трехадресный код может быть полезен при анализе потока управления . В следующем примере в стиле C цикл сохраняет квадраты чисел от 0 до 9:

См. также [ править ]

Ссылки [ править ]

  1. ^ В., Ахо, Альфред (1986). Составители, принципы, методы и инструменты . Сетхи, Рави, Ульман, Джеффри Д., 1942-. Ридинг, Массачусетс: Паб Addison-Wesley. Ко стр. 466 . ISBN  0201100886 . OCLC   12285707 . {{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6616260d4036814e9bfcd0cffc714e55__1682620020
URL1:https://arc.ask3.ru/arc/aa/66/55/6616260d4036814e9bfcd0cffc714e55.html
Заголовок, (Title) документа по адресу, URL1:
Three-address code - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)