УДК 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 тен, и динамическим, когда синтаксис может меняться в процессе синтаксического анализа. <...> При этом статическое расширение синтаксиса можно рассматривать как частный случай динамического. <...> В случае статического расширения синтаксиса ключевым моментом, позволяющим говорить именно о расширении синтаксиса, а не об определении нового языка, можно считать наличие какого-либо формализма, используемого при описании расширений синтаксиса. <...> Т.е. если синтаксис языка описывается в виде грамматики <...>