Кіріспе
Түпнұсқа кодтың абстрактілік синтаксистік құрылымының ағаш түрінде бейнеленуі, лингвистикада қолданылатын ағаштар. Абстрактілік синтаксистік ағаш (АСТ) – компьютерлік ғылымда бағдарламаның немесе кодтың фрагментінің құрылымын көрсету үшін қолданылатын дерек құрылымы. Бұл формальды тілде жазылған мәтіннің (әсіресе түпнұсқа кодтың) абстрактілік синтаксистік құрылымының ағаш түріндегі бейнесі. Ағаштың әрбір түйіні мәтінде кездесетін конструкцияны көрсетеді. Ол кейде жай ғана синтаксистік ағаш деп аталады. Синтаксис "абстрактілік" деп аталуының себебі, ол нақты синтаксистегі барлық егжей-тегжейді емес, құрылымдық немесе мазмұндық ақпаратты ғана көрсетеді. Мысалы, топтастыру қашандары ағаш құрылымында жасырын түрде болады, сондықтан оларды жеке түйіндер ретінде көрсетудің қажеті жоқ. Сол сияқты, егер-сонда синтаксистік конструкциясы үш тармақтары бар бір түйін арқылы белгіленуі мүмкін. Бұл абстрактілік синтаксистік ағаштарды нақты синтаксистік ағаштардан, дәстүрлі түрде талдау ағаштары деп аталатын ағаштардан ерекшелендіреді. Талдау ағаштары әдетте кодты аударғанда және компиляциялағанда парсермен құрастырылады. Құрылғаннан кейін, AST-ға қосымша ақпарат, мысалы, контекстік талдау арқылы қосылады. Абстрактілік синтаксистік ағаштар бағдарламаны талдау және бағдарламаны түрлендіру жүйелерінде де қолданылады.
the trees used in linguistics
An abstract syntax tree (AST) is a data structure used in computer science to represent the structure of a program or code snippet. It is a tree representation of the abstract syntactic structure of text (often source code) written in a formal language. Each node of the tree denotes a construct occurring in the text. It is sometimes called just a syntax tree. The syntax is "abstract" in the sense that it does not represent every detail appearing in the real syntax, but rather just the structural or content related details. For instance, grouping parentheses are implicit in the tree structure, so these do not have to be represented as separate nodes. Likewise, a syntactic construct like an if condition then statement may be denoted by means of a single node with three branches. This distinguishes abstract syntax trees from concrete syntax trees, traditionally designated parse trees. Parse trees are typically built by a parser during the source code translation and compiling process. Once built, additional information is added to the AST by means of subsequent processing, e. g., contextual analysis. Abstract syntax trees are also used in program analysis and program transformation systems.
Компиляторларда қолдану
Абстрактты синтаксистік ағаштар – бағдарламалық кодтың құрылымын көрсету үшін компиляторларда кеңінен қолданылатын дерек құрылымдары. AST әдетте компилятордың синтаксистік талдау кезеңінің нәтижесі болып табылады. Ол компилятордың қажеттілігіне сәйкес бірнеше кезеңде бағдарламаның аралық өрнегі ретінде қызмет етеді және компилятордың соңғы нәтижесіне елеулі әсер етеді.
АСТ-ны ажырату
AST дифференциациясы, немесе қысқаша айтқанда ағаш дифференциациясы, екі AST арасындағы айырмашылықтар тізімін есептеуден тұрады. Бұл айырмашылықтар тізімі әдетте өңдеу скрипті деп аталады. Өңдеу скрипті тікелей кодтың AST-сына сілтеме жасайды. Мысалы, өңдеу әрекеті функцияны көрсететін жаңа AST түйінін қосуға алып келуі мүмкін.
Клондарды анықтау
AST — кодты көшіруді анықтау үшін қуатты абстракция.