Кіріспе

Ағаш дерек құрылымдарын жасау үшін қолданылатын компьютерлік код тілі. Ағаш сипаттама тілі (TreeDL) – қатаң түрде типіленген ағаш дерек құрылымдарын және олармен жасалатын амалдарды сипаттауға арналған компьютерлік тіл. TreeDL-дің негізгі қолданысы – тілге бағытталған құралдарды (компиляторлар, аудармашылар және т.б.) жасау, абстрактілі синтаксистік ағаштардың құрылымын сипаттау үшін. Ағаш сипаттамасын парсер және басқа да жүйелер арасындағы интерфейстің құжаттамасы ретінде қолдануға болады; нысаналық бағдарламалау тілдерінде ағашты бейнелейтін дерек түрлерін жасау үшін бастапқы дерек көзі ретінде; түрлі қосымша кодты (келушілер, аралап өтушілер, фабрикалар және т.б.) жасау үшін бастапқы дерек көзі ретінде пайдалануға болады. TreeDL кез келген парсер генераторымен (мысалы, ANTLR, JavaCC) бірге қолданылуы мүмкін, егер ол парсерлік кезінде қосымша әрекеттерді орындауға мүмкіндік берсе.

Тілдер туралы жалпы түсінік

Ағаш сипаттамасы ағашта рұқсат етілген түйін түрлерін тізімдейді. Түйін түрлері бір ғана мұрагерлікті қолдайды. Түйін түрлері балалары мен атрибуттарына ие. Балалар анықталған түйін түрінде болуы керек. Атрибуттар примитивті типте (сандық, жол, логикалық), enum түрінде немесе түйін түрінде болуы мүмкін. Атрибуттар ағаш құрылымы кезінде мәндік тұрақтыларды сақтауға және ағаш талдауы кезінде жиналған қосымша ақпаратты сақтауға қолданылады (мысалы, анықтама мен сілтеме арасындағы байланыстарды, жоғары деңгейлі абстрактілі синтаксисті бейнелеу үшін). Ағашпен жасалатын операциялар көпәдістілер ретінде анықталады. Бұл тәсілдің артықшылықтары Treecc: Компиляторларды жазуға бағытталған аспектілік тәсіл мақаласында сипатталған. Ағаш сипаттамалары модульділікті қамтамасыз ету және тілді кеңейту үшін негізгі тілдің ағаш сипаттамаларын қайта пайдалануға мүмкіндік беру үшін мұрагерлікті қолдайды.