Разработка нового формального языка и описание его грамматики в нотации БНФ (Форма Бэкуса-Наура)
ВВЕДЕНИЕ
Грамматика – это формальное описание синтаксиса языка программирования. Формальная грамматика применяет строгую систему обозначений. Имеются различные типы грамматик. НБФ-грамматика (грамматика Наура-Бэкуса или грамматика Бэкуса-Наура - БНФ-грамматика) является контекстно-свободной грамматикой.
Форма Бэкуса-Наура представляет собой формальную систему описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории. БНФ применяется для описания контекстно-свободных формальных грамматик. Существует расширенная БНФ, которая отличается лишь более ёмкими конструкциями.
Форма Бэкуса-Наура применяется для описания синтаксиса языков программирования, данных, протоколов (например, в документах RFC) и т. д. (причём как грамматики, так и регулярной лексики, поскольку регулярные грамматики являются подмножеством контекстно-свободных).
Целью данной работы является разработка нового формального языка и описание его грамматика в нотации БНФ.
Для достижения поставленной цели необходимо решить следующие задачи:
- рассмотреть простую форму Бэкуса-Наура;
- рассмотреть расширенную форму Бэкуса-Наура;
- разработать новый формальный язык.
1. ПРОСТАЯ ФОРМА БЭКУСА-НАУРА
Формальный язык является объединением нескольких множеств [1], а именно:
- множества исходных символов, которые называются литерами;
- множества правил, позволяющих формировать из букв алфавита новые слова;
- множества предопределённых идентификаторов или словаря ключевых слов;
- множества правил, позволяющих формировать из имён и ключевых слов выражения, на базе которых формируются простые и сложные предложения.
Грамматические правила можно записывать различными способами, однако грамматика естественного языка обычно описывается в виде грамматических правил на естественном языке.
Backus–Naur form или Backus normal form (BNF) представляет собой формальную систему описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории. Форма БНФ применяется для описания контекстно-свободных формальных грамматик, обычно применяется для описания форматов документов, синтаксиса языков программирования, наборов инструкций и протоколов связи. Можно сказать, что БНФ применяется везде, где необходимо точное описание синтаксиса [2].
Метаязык, который был предложен Бэкусом и Науром, использует следующие обозначения:
- символ «::=» отделяет левую часть правила от правой (читается: «определяется как»);
- нетерминалы обозначаются произвольной символьной строкой, заключенной в угловые скобки «<» и «>»;
2. РАСШИРЕННАЯ ФОРМА БЭКУСА-НАУРА
Расширенная форма Бэкуса – Наура (РБНФ) представляет собой формальную систему определения синтаксиса, в которой одни синтаксические категории последовательно определяются через другие. Применяется РБНФ для описания контекстно-свободных формальных грамматик. Данная форма была предложена Никлаусом Виртом, и является расширенной переработкой форм Бэкуса – Наура.
Расширенная форма Бэкуса – Наура отличается от БНФ более «ёмкими» конструкциями, которые позволяют при той же выразительной способности упростить и уменьшить в объёме описание.
Однако, применяется множество различных вариантов РБНФ. Международная организация по стандартизации приняла стандарт РБНФ: ISO/IEC 14977 [4].
Расширенная форма Бэкуса – Наура является доработкой нормальной нотации Бэкуса – Наура (БНФ) за счет улучшения синтаксиса, который позволяет упростить и сократить в объеме используемые конструкции, сохраняя при этом лаконичность и простоту грамматики. Основным преимуществом РБНФ перед БНФ является возможность описывать повторяющиеся конструкции без использования рекурсии [5].
3. НАБОР ЛЕКСЕМ И СИНТАКСИЧЕСКИХ ПРАВИЛВ НОТАЦИИ БНФ
Грамматика представляет собой формальное описание синтаксиса языка программирования, которая определяется набором правил, которые определяют формирование из лексем достоверных программ.
Формальная грамматика применяет строгую систему обозначений. Имеются различные типы грамматик, однако НБФ-грамматика является контекстно-свободной грамматикой, которая применяет НБФ-нотации, предложенные Джоном Бэкусом в конце 50-х годов для описания синтаксиса языка ALGOL.
Описание грамматики в БНФ и РБНФ представляет собой комплекс правил, которые определяют отношения между терминальными и нетерминальными символами.
Терминальные символы представляют собой минимальные элементы грамматики, которые не имеют собственной грамматической структуры. В РБНФ терминальными символами являются либо предопределенные идентификаторы, либо цепочки, то есть последовательности символов в кавычках или апострофах.
Нетерминальные символы представляют собой элементы грамматики, которые имеют собственные имена и структуру. Каждый нетерминальный символ состоит из одного или более терминальных и/или нетерминальных символов, сочетание которых определяется правилами грамматики. В РБНФ каждый нетерминальный символ имеет имя, которое представляет собой строку символов.
ЗАКЛЮЧЕНИЕ
Грамматика – это формальное описание синтаксиса языка программирования. Формальная грамматика применяет строгую систему обозначений. Имеются различные типы грамматик. НБФ-грамматика (грамматика Наура-Бэкуса или грамматика Бэкуса-Наура - БНФ-грамматика) является контекстно-свободной грамматикой.
Форма Бэкуса-Наура представляет собой формальную систему описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории. БНФ применяется для описания контекстно-свободных формальных грамматик. Существует расширенная БНФ, которая отличается лишь более ёмкими конструкциями.
Форма Бэкуса-Наура применяется для описания синтаксиса языков программирования, данных, протоколов (например, в документах RFC) и т. д. (причём как грамматики, так и регулярной лексики, поскольку регулярные грамматики являются подмножеством контекстно-свободных).
Целью данной работы является разработка нового формального языка и описание его грамматика в нотации БНФ.
Для достижения поставленной цели были решены следующие задачи:
- рассмотрена простая форма Бэкуса-Наура;
- рассмотрена расширенная форма Бэкуса-Наура;
- разработан новый формальный язык.
Использование MySQL в масштабируемом клиент-серверном Веб-приложении с использованием Javascript для полного цикла разработки
ВВЕДЕНИЕ
На сегодняшний день система управления базами данных (СУБД) MySQL является одной из самых известных, надежных и быстрых из всего семейства существующих СУБД. Основными причинами ее популярности являются цена и производительность. За СУБД MySQL является бесплатной и распространяется вместе со своими исходными текстами.
MySQL написан под десятки видов операционных систем, к которым относятся OpenBSD, FreeBSD, MacOS, OS/2, SunOS, Win9x/00/NT, Windows 7, Windows 8, Windows 10 и Linux.
Принцип работы MySQL подобен принципу работы любой СУБД, которая использует язык структурированных запросов SQL (Structured Query Language) в качестве командного языка для создания/удаления баз данных, таблиц, для пополнения таблиц данными, для осуществления выборки данных.
Целью данной работы является рассмотрение использования MySQL в масштабируемом клиент-серверном Веб-приложении с использованием Javascript для полного цикла разработки.
Для достижения поставленной цели необходимо решить следующие задачи:
- рассмотреть особенности MySQL;
- рассмотреть набор лексем и синтаксических правил MySQL;
- выявить преимущества MySQL.
1. ОСОБЕННОСТИ MYSQL
MySQL – это известная и популярная система управления базами данных с открытыми исходными текстами [1]. База данных – это структурированный набор данных.
MySQL представляет собой систему управления реляционными базами данных [2].
Реляционная база данных сохраняет данные в отдельных таблицах, что в свою очередь добавляет быстродействие и гибкость. Таблицы связываются определенными отношениями, которые делают возможным объединить данные из нескольких таблиц в одном запросе. SQL-часть MySQL направлена на Structured Query Language, наиболее общий стандартизированный язык, который применяется для того, чтобы обратиться к компьютерным базам данных.
MySQL является Open Source Software, то есть тексты открыты для чтения и правки всем желающим. Любой пользователь может скачать MySQL из глобальной сети Internet и использовать его совершенно бесплатно. Любой пользователь может изучать исходный текст и редактировать его по своему усмотрению.
MySQL является оперативным, надежным и легким в использовании. MySQL содержит в себе очень практичный набор свойств, которые разработаны в очень близком сотрудничестве с пользователями. Первоначально MySQL был создан для того, чтобы обрабатывать очень большие базы данных намного быстрее, чем существующие решения, и успешно применялся в высокотребовательных промышленных средах в течение многих лет. MySQL сегодня предлагает для разработки широкий и очень полезный набор функций.
Возможности MySQL:
- полностью многопоточное применение ядерных нитей;
- функционирует на многих различных платформах;
2. НАБОР ЛЕКСЕМ И СИНТАКСИЧЕСКИХ ПРАВИЛ MYSQL
Межсетевой экран уровня приложений предназначен для анализа и фильтрации трафика в отношении какого-либо приложения или класса приложений. При его создании появляется необходимость разговаривать на языке этого приложения. Для реляционной СУБД таким языком становится диалект SQL. Предположим, что необходимо построить межсетевой экран для СУБД. В этом случае потребуется распознавать и анализировать предложения SQL для принятия решения об их соответствии заданной политике безопасности. В зависимости от решаемых задач (например, обнаружение атак типа SQL-инъекция, управление доступом, корреляция SQL- и HTTP-запросов) будет необходима та или иная глубина анализа SQL. Так или иначе, потребуется выполнять лексический, синтаксический и семантический анализ предложений SQL [3].
Язык определяется на основе алфавита — множества символов. Буквы алфавита объединяются в значащие последовательности, называемые лексемами. Лексемы могут быть разных типов (идентификаторы, строки, ключевые слова и т. п.). Токеном называется кортеж, состоящий из лексемы и имени типа. Фраза представляет собой последовательность лексем, расположенных в особом порядке. Из фраз могут быть сформированы предложения. Затем под предложением рассматривается некоторая законченная последовательность лексем, которая в контексте заданного языка имеет самостоятельное значение. Понятие предложение имеет смысл только в прикладной сфере.
Приложения, которые построены на базе какого-либо языка, оперируют предложениями этого языка, например выполняют или интерпретируют их. Фразы, с прикладной точки зрения, являются незаконченными конструкциями, они могут являться частью предложения. Но при построении грамматики удобно применять именно фразы.
3. ПРЕИМУЩЕСТВА MYSQL
Кроме универсальности и распространенности MySQL, она имеет целый ряд важных преимуществ перед другими СУБД. В частности следует отметить такие качества как [5]:
- простота в использовании. СУБД MySQL достаточно легко устанавливается, а наличие множества плагинов и вспомогательных приложений упрощает работу с базами данных.
- масштабируемость. MySQL является универсальной СУБД, которая в равной степени легко может быть применена для работы и с малыми, и с большими объемами данных.
- безопасность. MySQL изначально была создана таким образом, что множество встроенных функций безопасности в ней работают по умолчанию.
- широкий функционал. СУБД MySQL обладает практически всем необходимым инструментарием, который может понадобиться в реализации практически любого проекта.
- скорость. Высокая производительность MySQL достигается путем упрощения некоторых применяемых в ней стандартов.
Существенным преимуществом является бесплатная лицензия для работы с открытым кодом, а также наличие коммерческих версий с расширенным функционалом.
ЗАКЛЮЧЕНИЕ
MySQL – это известная и популярная система управления базами данных с открытыми исходными текстами. База данных – это структурированный набор данных. MySQL представляет собой систему управления реляционными базами данных. Реляционная база данных сохраняет данные в отдельных таблицах, что в свою очередь добавляет быстродействие и гибкость.
MySQL является Open Source Software, то есть тексты открыты для чтения и правки всем желающим. Любой пользователь может скачать MySQL из глобальной сети Internet и использовать его совершенно бесплатно. Любой пользователь может изучать исходный текст и редактировать его по своему усмотрению.
В ходе выполнения данной работы была решена цель, а именно рассмотрено использование MySQL в масштабируемом клиент-серверном Веб-приложении с использованием Javascript для полного цикла разработки.
Для достижения поставленной цели были решены следующие задачи:
- рассмотрены особенности MySQL;
- рассмотрены набор лексем и синтаксические правила MySQL;
- выявлены преимущества MySQL.