title: Declarative printer generation in grammar in the Backus-Naur form
metadata.name: dc.contributor.advisor
metadata.value: Булычев Дмитрий Юрьевич
metadata.lang: ru_RU
metadata.name: dc.contributor.author
metadata.value: Озерных Игорь Станиславович
metadata.lang: ru_RU
metadata.name: dc.contributor.author
metadata.value: Ozernykh Igor
metadata.lang: en_GB
metadata.name: dc.contributor.editor
metadata.value: Кандидат физико-математических наук Д.Ю.Булычев
metadata.lang: ru_RU
metadata.name: dc.contributor.editor
metadata.value: Candidate of Physics and Mathematics D.Y.Boulytchev
metadata.lang: en_GB
metadata.name: dc.date.accessioned
metadata.value: 2016-10-10T02:12:44Z
metadata.lang: -
metadata.name: dc.date.available
metadata.value: 2016-10-10T02:12:44Z
metadata.lang: -
metadata.name: dc.date.issued
metadata.value: 2016
metadata.name: dc.identifier.other
metadata.value: 011628
metadata.lang: en_GB
metadata.name: dc.identifier.uri
metadata.value: http://hdl.handle.net/11701/4202
metadata.lang: -
metadata.name: dc.description.abstract
metadata.value: Одним из декларативных подходов к заданию средств форматирования кода (принтеров) является метод синтаксических шаблонов, которые являются примерами форматирования синтаксических конструкций целевого языка. Для извлечения шаблонов из предоставленного образца кодовой базы на целевом языке с желаемым стилем форматирования используется синтаксический анализатор. Недостатком существующей системы является то, что для получения принтера нового целевого языка необходимо вручную реализовать языкозависимую прослойку между ядром системы и представлением синтаксического дерева, получаемого в результате работы анализатора. Этот процесс трудоёмок и требует глубоких знаний о системе. Данная работа посвящена автоматическому получению такой прослойки для случая, когда синтаксический анализатор генерируется по грамматике языка в форме Бэкуса-Наура. Реализация выполнена в виде расширения плагина Grammar-Kit для среды разработки IntelliJ IDEA, позволяющего по грамматике в форме Бэкуса-Наура получить и синтаксический анализатор, и принтер для целевого языка. В рамках апробации разработанная система была использована для получения принтеров по грамматикам учебного языка While и языка Erlang.
metadata.lang: ru_RU
metadata.name: dc.description.abstract
metadata.value: One of the declarative approaches to development of code formatting tools (prettyprinters) is a method of syntactic templates, which are examples of formatting syntactic constructions of the target language. To extract templates from the sample of a codebase with desired formatting a parser is used. The drawback of the existing system is the necessity of manual implementation of the language-aware interlayer between the core system and the representation of a syntactic tree. This may become a significant undertaking. 
  This degree paper addresses the issue of an automatic obtaining of that interlayer in case of parser is generated in grammar in the Backus-Naur form. Implementation is done as an extension of Grammar-Kit plugin for IntelliJ IDEA IDE, which is used for both parser generation and declarative code formatting tool generation in grammar in the Backus-Naur form. As part of the approbation the developed system was used for printer generation for While language and Erlang language.
metadata.lang: en_GB
metadata.name: dc.language.iso
metadata.value: ru
metadata.name: dc.subject
metadata.value: декларативное форматирование
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: декларативные принтеры
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: генерация принтеров
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: БНФ-грамматика
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: declarative formatting
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: prettyprinters
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: printer generation
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: BNF grammar
metadata.lang: en_GB
metadata.name: dc.title
metadata.value: Declarative printer generation in grammar in the Backus-Naur form
metadata.lang: en_GB
metadata.name: dc.title.alternative
metadata.value: Генерация декларативных принтеров по грамматике в форме Бэкуса-Наура
metadata.lang: ru_RU
resources.filename: diploma2016_-_0_diploma_(3).pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/4202/1/diploma2016_-_0_diploma_%283%29.pdf
resources.format: Adobe PDF
resources.description: Article
resources.size: 334,92 kB
resources.filename: reviewSV_ozernykh.pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/4202/2/reviewSV_ozernykh.pdf
resources.format: Adobe PDF
resources.description: ReviewSV
resources.size: 7,67 MB
resources.filename: reviewSV_st007252_Bulychev_Dmitrij_YUrevich_(supervisor)(Ru).txt
resources.url: https://dspace.spbu.ru/bitstream/11701/4202/3/reviewSV_st007252_Bulychev_Dmitrij_YUrevich_%28supervisor%29%28Ru%29.txt
resources.format: Text
resources.description: ReviewSV
resources.size: 3,35 kB
resources.filename: reviewSV_ozernykhReview.pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/4202/8/reviewSV_ozernykhReview.pdf
resources.format: Adobe PDF
resources.description: ReviewRev
resources.size: 25,88 kB
resources.filename: reviewSV_st007252_Bulychev_Dmitrij_YUrevich_(reviewer)(Ru).txt
resources.url: https://dspace.spbu.ru/bitstream/11701/4202/9/reviewSV_st007252_Bulychev_Dmitrij_YUrevich_%28reviewer%29%28Ru%29.txt
resources.format: Text
resources.description: ReviewRev
resources.size: 2,84 kB