Абстрактне синтаксичне дерево (англ. Abstract syntax tree) (АСД) в інформатиці — це скінченна множина, позначене і орієнтоване дерево, в якому внутрішні вершини співставлені з відповідними операторами мови програмування, а листя з відповідними операндами. Синтаксичні дерева використовуються в парсерах для проміжного представлення програми між деревом розбору (конкретним синтаксичним деревом) і структурою даних, яка потім використовується як внутрішнє представлення компілятора або інтерпретатора комп'ютерної програми для оптимізації і генерації коду. Можливі варіанти подібних структур описуються абстрактним синтаксисом.
Відмінність від дерева розбору
Синтакси́чне де́рево (також називається «конкретним синтаксичним деревом» або «деревом розбору») виводу слова ω у граматиці G — це впорядковане дерево, корінь котрого позначено аксіомою, в проміжних вершинах знаходяться нетермінали, а на кроні — термінали.
АСД відрізняється від дерева розбору тим, що в ньому відсутні вузли і ребра для тих синтаксичних правил, що не впливають на семантику програми. Класичним прикладом такої відсутності є групувальні дужки через те, що в АСД групування задається структурою дерева. Для мови, яка описується контекстно-вільною граматикою, якими є майже всі мови програмування, створення абстрактного дерева в синтаксичному аналізаторі є тривіальним завданням. Більшість правил в граматиці створюють нову вершину, а символи в правилі стають ребрами. Правила, які нічого не привносять в АСД, такі як правила групування, просто заміняються в вершині одним з своїх символів. Крім того, аналізатор може створити повне дерево розбору і після цього пройтися по ньому, видаляючи вузли і ребра, які не використовуються в абстрактному синтаксисі, щоб створити АСД.
Примітки
- (PDF). Факультет кібернетики КНУ ім. Тараса Шевченка, Кафедра теорії та технології програмування. 2013. Архів оригіналу (PDF) за 4 березня 2016. Процитовано 10 жовтня 2015.
Посилання
- AST View [ 21 квітня 2009 у Wayback Machine.], плагін для Eclipse показує АСД для мови Java;
- Корисна інформація про представлення АСД в Eclipse і маніпулюванні початковим кодом Java [ 4 вересня 2008 у Wayback Machine.];
- Стаття «» Джоела Джонса (англ. Joel Jones) (огляд реалізацій АСД в різних сім'ях мов)
- Стаття «» Ніколя Ховарта (англ. Nicola Howarth) (описується дизайн АСД одного конкретного проекту і стаття не містить загального погляду)
- Стаття «Дослідження еволюції коду з використанням порівняння АСД» Юліана Немтью (англ. Iulian Neamtiu), Джеффрі Фостера (англ. Jeffrey S. Foster) та Міхаеля Хікса (англ. Michael Hicks);
- Стаття «» Біта Флурі (англ. Beat Fluri), Міхаеля Вурщ (англ. Michael Würsch), Мартина Пінцгера (англ. Martin Pinzger) та Гаральда Галла (англ. Harald C. Gall);
- Дипломна робота Міхаеля Вурща (англ. Michael Würsch) «»
- Стаття «Думки про АСД у Visual C++ [ 10 травня 2007 у Wayback Machine.]» Джейсона Лукаса (англ. Jason Lucas);
- Навчальний посібник «Стандарт метамоделі АСД [ 15 вересня 2009 у Wayback Machine.]»;
- Представлення CAST [ 14 червня 2010 у Wayback Machine.];
- .
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Abstraktne sintaksichne derevo angl Abstract syntax tree ASD v informatici ce skinchenna mnozhina poznachene i oriyentovane derevo v yakomu vnutrishni vershini spivstavleni z vidpovidnimi operatorami movi programuvannya a listya z vidpovidnimi operandami Sintaksichni dereva vikoristovuyutsya v parserah dlya promizhnogo predstavlennya programi mizh derevom rozboru konkretnim sintaksichnim derevom i strukturoyu danih yaka potim vikoristovuyetsya yak vnutrishnye predstavlennya kompilyatora abo interpretatora komp yuternoyi programi dlya optimizaciyi i generaciyi kodu Mozhlivi varianti podibnih struktur opisuyutsya abstraktnim sintaksisom Vidminnist vid dereva rozboruSyudi perenapravlyayetsya zapit Sintaksichne derevo Na cyu temu potribna okrema stattya Sintaksi chne de revo takozh nazivayetsya konkretnim sintaksichnim derevom abo derevom rozboru vivodu slova w u gramatici G ce vporyadkovane derevo korin kotrogo poznacheno aksiomoyu v promizhnih vershinah znahodyatsya neterminali a na kroni terminali ASD vidriznyayetsya vid dereva rozboru tim sho v nomu vidsutni vuzli i rebra dlya tih sintaksichnih pravil sho ne vplivayut na semantiku programi Klasichnim prikladom takoyi vidsutnosti ye grupuvalni duzhki cherez te sho v ASD grupuvannya zadayetsya strukturoyu dereva Dlya movi yaka opisuyetsya kontekstno vilnoyu gramatikoyu yakimi ye majzhe vsi movi programuvannya stvorennya abstraktnogo dereva v sintaksichnomu analizatori ye trivialnim zavdannyam Bilshist pravil v gramatici stvoryuyut novu vershinu a simvoli v pravili stayut rebrami Pravila yaki nichogo ne privnosyat v ASD taki yak pravila grupuvannya prosto zaminyayutsya v vershini odnim z svoyih simvoliv Krim togo analizator mozhe stvoriti povne derevo rozboru i pislya cogo projtisya po nomu vidalyayuchi vuzli i rebra yaki ne vikoristovuyutsya v abstraktnomu sintaksisi shob stvoriti ASD Primitki PDF Fakultet kibernetiki KNU im Tarasa Shevchenka Kafedra teoriyi ta tehnologiyi programuvannya 2013 Arhiv originalu PDF za 4 bereznya 2016 Procitovano 10 zhovtnya 2015 PosilannyaAST View 21 kvitnya 2009 u Wayback Machine plagin dlya Eclipse pokazuye ASD dlya movi Java Korisna informaciya pro predstavlennya ASD v Eclipse i manipulyuvannipochatkovim kodom Java 4 veresnya 2008 u Wayback Machine Stattya Dzhoela Dzhonsa angl Joel Jones oglyad realizacij ASD v riznih sim yah mov Stattya Nikolya Hovarta angl Nicola Howarth opisuyetsya dizajn ASD odnogo konkretnogo proektu i stattya ne mistit zagalnogo poglyadu Stattya Doslidzhennya evolyuciyi kodu z vikoristannyam porivnyannya ASD Yuliana Nemtyu angl Iulian Neamtiu Dzheffri Fostera angl Jeffrey S Foster ta Mihaelya Hiksa angl Michael Hicks Stattya Bita Fluri angl Beat Fluri Mihaelya Vursh angl Michael Wursch Martina Pincgera angl Martin Pinzger ta Garalda Galla angl Harald C Gall Diplomna robota Mihaelya Vursha angl Michael Wursch Stattya Dumki pro ASD u Visual C 10 travnya 2007 u Wayback Machine Dzhejsona Lukasa angl Jason Lucas Navchalnij posibnik Standart metamodeli ASD 15 veresnya 2009 u Wayback Machine Predstavlennya CAST 14 chervnya 2010 u Wayback Machine Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi