Үш мекенжай коды - Three-address code

Жылы Информатика, үш мекенжай коды[1] (көбінесе TAC немесе 3AC деп қысқартылады) - бұл аралық код қолданған компиляторларды оңтайландыру іске асыруға көмектесу кодты жетілдіретін түрлендірулер. Әрбір TAC нұсқауында ең көп дегенде үш операнд бар және ол әдетте тағайындау мен екілік оператордың тіркесімі болып табылады. Мысалға, t1: = t2 + t3. Атау осы операторларда үш операнды қолданудан шыққан, бірақ одан аз операндты нұсқаулар орын алуы мүмкін.

Үш адрестік код компиляторларда аралық тіл ретінде қолданылатындықтан, операндтар нақты жад адрестері болмайды процессор регистрлері, бірақ символикалық мекен-жайлар, олар кезінде нақты мекен-жайға аударылады тіркеу бөлу. Операнд атауларының ретімен нөмірленуі де сирек емес, өйткені үш адрестік кодты әдетте компилятор жасайды.

Үш мекенжай кодын нақтылау болып табылады A-қалыпты формасы (ANF).

Мысалдар

Үш адрестік кодта бұл бірнеше бөлек нұсқауларға бөлінеді. Бұл нұсқаулар оңай аударылады құрастыру тілі. Оны анықтау оңайырақ жалпы ішкі өрнектер кодты қысқарту үшін. Келесі мысалда бір есептеу бірнеше кіші есептеулерден тұрады:

Үш адрестік кодта шартты және сөзсіз секіру және жадқа қол жеткізу әдістері болуы мүмкін. Сондай-ақ, ол функцияларды шақыру әдістеріне ие болуы мүмкін немесе оларды секірулерге дейін төмендетуі мүмкін. Осылайша үш мекен-жайлық код пайдалы болуы мүмкін ағынды басқару. С-ға ұқсас келесі мысалда цикл 0 мен 9 арасындағы сандардың квадраттарын сақтайды:

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ В., Ахо, Альфред (1986). Компиляторлар, принциптер, тәсілдер мен құралдар. Сети, Рави., Ульман, Джеффри Д., 1942-. Рединг, Массачусетс: Аддисон-Уэсли паб. Co. бет.466. ISBN  0201100886. OCLC  12285707.