Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 610204)
Контекстум
Вестник Воронежского государственного университета. Серия: Системный анализ и информационные технологии  / №2 2008

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К ОПИСАНИЮ И РАСШИРЕНИЮ СИНТАКСИСА ЯЗЫКОВ ПРОГРАММИРОВАНИЯ (90,00 руб.)

0   0
Первый авторСоломатин
Страниц5
ID519675
АннотацияВ статье рассматривается механизм расширения синтаксиса языков программирования, основанный на применении к PEG-грамматикам (Parsing Expression Grammars)
УДК519.682.1
Соломатин, Д.И. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К ОПИСАНИЮ И РАСШИРЕНИЮ СИНТАКСИСА ЯЗЫКОВ ПРОГРАММИРОВАНИЯ / Д.И. Соломатин // Вестник Воронежского государственного университета. Серия: Системный анализ и информационные технологии .— 2008 .— №2 .— С. 49-53 .— URL: https://rucont.ru/efd/519675 (дата обращения: 16.04.2025)

Предпросмотр (выдержки из произведения)

УДК 519.682.1 ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К ОПИСАНИЮ И РАСШИРЕНИЮ СИНТАКСИСА ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Д. И. <...> Соломатин Воронежский государственный университет Поступила в редакцию 24.04.2008 г. Аннотация. <...> В статье рассматривается механизм расширения синтаксиса языков программирования, основанный на применении к PEG-грамматикам (Parsing Expression Grammars) принципов объектно-ориентированного программирования. <...> The article describes the mechanism for programming language syntax extensibility based on the principles of object-oriented programming as applied to PEG-grammars (Parsing Expression Grammars). <...> ВВЕДЕНИЕ Реализация любого языка программирования или же другого однозначного языка (под однозначным языком понимается формальный язык, любые выражения которого поддаются строго однозначном разбору), как правило, начинается с описания синтаксиса этого языка в какой-либо форме. <...> При этом построение лексического и синтаксического анализаторов языка по таким грамматикам выполняется автоматически с помощью подходящей утилиты построения анализаторов, например, Lex/Yaxx и их развитие Flex/Bison (LALR(1)) для языка С (а также множество клонов для других языков), JavaCC (LL(1)) – для Java, ANTLR (LL(K)) – для нескольких языков (C, Java, C#, Python, Ruby и др.) и т.д. <...> Под расширением синтаксиса будем понимать возможность добавления в язык новых синтаксических конструкций или изменение существующих. <...> При этом расширение синтаксиса может быть статическим, т.е. на момент запуска синтаксического анализатора новый синтаксис полностью извес© Соломатин Д. И., 2008 тен, и динамическим, когда синтаксис может меняться в процессе синтаксического анализа. <...> При этом статическое расширение синтаксиса можно рассматривать как частный случай динамического. <...> В случае статического расширения синтаксиса ключевым моментом, позволяющим говорить именно о расширении синтаксиса, а не об определении нового языка, можно считать наличие какого-либо формализма, используемого при описании расширений синтаксиса. <...> Т.е. если синтаксис языка описывается в виде грамматики <...>