Главная » Просмотр файлов » Диссертация

Диссертация (1090660), страница 16

Файл №1090660 Диссертация (Методы и инструменты декларативного программирования динамических Web-узлов и приложений) 16 страницаДиссертация (1090660) страница 162018-01-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 16)

Если мы имеем некоторое множество с алфавитом = , , . . ., определенное квантификатором «+» (от одного и более), то мы можем сделать эквивалентную замену (2.1).95+ = **()+ = () ;(2.1)Условие конечности множества. Если в регулярном выражении имеется квантификатор «*» (от до ∞), то количество комбинаций, подходящих заданному регулярному выражению, неограниченно большое. Для устранения неопределенности такогорода используем замену, ограничивающую максимальную длину строки (2.2).* = {1,50} (От 1 до 50)(2.2)Также имеют смысл эквивалентные замены (2.3).(* )* = *| = (2.3)()|() = ()|();Алгоритм вычисления мощности множества.

Возьмем простой пример регулярного выражения (2.4).[a-z]{2}|[0–9]?[a-z]{2, 3}|[a-z][a-z]?(2.4)Разобьем данное выражение на три группы, разделяемые символом «|» и вычислиммощность каждой.1. Группа [a-z]{2} Множество [a-z] имеет 26 символов, квантификатор «{2}»говорит о том, что множество повторяется два раза. Иными словами, у нас две «единичные позиции» – два места: на каждом месте может быть один из 26 символов.А значит, количество возможных вариантов сочетаний равно 26 · 26 = 262 , где 26 –мощность алфавита a-z, а степень 2 – количество повторений.2. Группа [0–9]?[a-z]{2,3} Квантификатор «?» сообщает нам о том, что первое множество [0–9] может встретиться с набором множества [a-z]{2, 3}, а такжеможет и не встретиться.

Также множество [0–9] может встретиться как с множеством[a-z]{2}, так и с [a-z]{3}. Итого мы получаем следующий набор вариантов:96[0..9]*[a..z]*[a..z]*[a..z] = 10 · 263 , где степень 3 – квантификатор {3}[0..9]*[a..z]*[a..z] = 10 · 262 , где 10 – мощность множества [0–9];3[a..z]*[a..z]*[a..z] = 26 ;(2.5)[a..z] * [a..z] = 262 .Вычислив мощности множеств каждого слагаемого, найдем сумму всех результатов каждого из вариантов: 10 · 262 + 10 · 263 + 263 + 262 .3. Группа [0–9]?[a-z]{2,3} Мощность такого выражения равна 262 +26.

Делов том, что слово «ab» служит разделителем между двумя множествами, и его можноне учитывать, так как в перестановках слово «ab» не играет никакой роли.Теперь о том, как распоряжаться нашими результатами от каждой группы.– Результаты мощностей групп, разделенных символом «|», необходимо сложить– В случае, когда группы обособлены скобками «()», результаты мощностей такихгрупп необходимо перемножить.– В случае, когда идет чередование символа «|» и отдельных групп «()», результаты складываются и перемножаются соответственно, приоритетнее операцияумножения.Исходя из представленной методики, получим следующее выражение:(262 ) + (10 · 263 + 10 · 262 + 263 + 262 ) + (262 + 26)(2.6)Но на этом решение не заканчивается.

Дело в том, что мы не учли возможныепересечения множеств, т. е. повторения. В данном примере два раза повторяется множество [a-z]{2} – в первой и во второй группах. Мощность этого множества необходимо вычесть из результата. Таким образом, объединив все замечания, получимокончательный ответ: мощность нашего регулярного выражения равна 201474.Остается главный вопрос – как подобрать алгоритм, учитывающий все пересечения множеств (повторения)?972.9.2Алгоритм вычисления мощности в пересекаемых множествахНайдем количество возможных комбинаций в следующем регулярном выражении –A? B? A? B?. Если бы слагаемые A и B не повторялись, то решением такого выражения было бы (2 · 2 · 2 · 2) − 1 = 15, где 2 – количество состояний (символ может бытьили не быть), вычитаем единицу, так как в контексте практической части задачи неможет быть пустого варианта.В нашем же примере переменные повторяются, т.

е. всего 15 вариантов и минусповторения.ABAB или ABABABAB или ABABABAB или ABAB или ABAB и так далее.Окончательный ответ (2 · 2 · 2 · 2) − (2 · 2) − 1 = 11. Для более сложных выражений найти общее математическое решение по нахождению пересечений такихкомбинаций не удается. Проблемой служит неизвестное поведение роста некоторойфункции повторений таких комбинаций с добавлением новых слагаемых или группчередующихся слагаемых.

Например, A? A? B? A? B? A? B? A? A?, где группа ABAможет встретиться больше 6 раз, каждая из которых разбивается на отдельные повторяющиеся группы.Для более сложных выражений найти общее математическое решение по нахождению пересечений таких комбинаций не удается. Проблемой служит неизвестноеповедение роста некоторой функции повторений таких комбинаций с добавлениемновых слагаемых или групп чередующихся слагаемых.

Например, A? A? B? A? B?A? B? A? A?, где группа ABA может встретиться больше 6 раз, каждая из которыхразбивается на отдельные повторяющиеся группы. Данное ограничение стоит учестьпри реализации алгоритма [104].2.9.3Алгоритм поиска фактора неопределённостиДля решения пересечения множеств в регулярном выражении необходимо вестиотдельный список всех комбинаций, чтобы понять, повторялось ли определенное множество, и, если подобный случай имел место, исключить его.Поскольку поиск эффективного алгоритма сопряжен с поиском практического решения, допускается упрощение общего решения.

Предлагается добавление функции,98устанавливающей факт неопределенности регулярного выражения, что будет предупреждать пользователя о неточной или неэффективной установке шаблона, даваявозможность исправить ошибку. Поскольку случаи, когда под один URL подпадаетнесколько шаблонов, встречаются не часто, а их пересечение происходит еще реже,данное решение имеет законченный практический вид. Таким образом, допустимынекоторые ограничения на регулярное выражение, которые вполне подходят под условия поставленной задачи.Также совместно с другими решениями в реализации проекта BlockSet допустимоприменение предварительной детерминизации. Поскольку каждый блок имеет строго заданное регулярное выражение [101], становится возможным на этапе разработкиинструментария самостоятельно установить мощности множеств регулярных выражений для каждого блока.

Исключение составляет блок типа «string» (строка), имеющийатрибут regexp, с помощью которого задается пользовательское регулярное выражение (мощность которого также придется высчитать с помощью одного из представленных методов). Мощность множества регулярного выражения у каждого блока втаком случае зависит от типа данных блока и его атрибутов. Например, для блока«number» (число) такими атрибутами являются «min» и «max», устанавливающие допустимый числовой отрезок. Так, при = 1 и = 10 мощность множествабудет равна 10.

У блока «float» (число с плавающей запятой) добавляется также атрибут «precision» (точность), устанавливающий число знаков после запятой, что можетмногократно увеличивать число комбинаций. Но несмотря на то что вычисляемое значение вариативно, структура регулярного выражения достаточно детерминирована,чтобы предсказать точную мощность множества в каждом конкретном случае (кроме блока типа «string»). Именно это решение легло в основу методики BlockSet валгоритме выбора локации (динамической страницы).2.10Выводы по второй главеВ данной главе разработан метод декларативного программирования Webприложений на серверной стороне, а также его фундаментальные элементы и их взаимодействие. Предложены базовые сущности языка: модель, локация, набор, блок.Обозначены принципы взаимодействия между сущностями.

Показаны принципы полиморфизма отдельных блоков в зависимости от своих типов. Определен порядокзаписи базовых сущностей методики BlockSet в исходном коде языка BML. Представлен обзор свойств и их значений для основных сущностей: модели, локации, блока99и набора. Проведён подробный обзор типов блоков и их функциональных характеристик. Разработан перечень данных, передаваемых из интерпретатора в шаблонизатори наоборот.100Глава 3Разработка метода комплекснойоценки инструментовимперативной и декларативнойразработки динамическихWeb-узловИсследование качества программного обеспечения – комплексная задача, требующая разработки системы оценивания по ряду критериев.

Подзадачами данной главытакже являются выявление данных критериев и построение на их основе оценочноймодели. Среди критериев оценивания присутствуют элементы оценки как программного кода, так и пользовательского тестирования. В данной главе рассматриваетсяметод, основанный на анализе программного кода и выявляющий объективные показатели, выражающиеся в численных характеристиках [113].Проблеме количественной оценки эффективности языков программирования в целом и качества программного кода в частности посвящены многие труды ученыхсовременников, являющихся основоположниками научных методик в данной области.Стоит отдельно отметить наиболее известные методы: метрика Холстеда [38], метрика Джилба [19], цикломатическая сложность МакКейба [42].

Данные характеристики основаны на количественном подсчете лексем рассматриваемого языка, а такжеоценке сложности графа потока управления. Множество новейших научных иссле-101дований провели Матей Чрепиншек, Томаж Косар, Марьян Мерник. Так, в работе[13] учеными предложен автоматизированный подход к анализу и оценке грамматик языков программирования.

Помимо алгоритмического представления оценки исистематизации метода, они разработали программное обеспечение, позволяющее автоматизировать процесс оценки программного кода, используя заранее подготовленные абстрактные синтаксические деревья на основе предварительно заданных грамматик. Для построения деревьев используется программный комплекс синтаксического и лексического анализа ANTLR (автор профессор Томас Парр [50]. В работе[34] предложены метрики, четко разграничивающие языки общего назначения (англ. general purpose language, GPL) и предметно-специфичные языки (англ. domainspecific language, DSL). Безусловно, фундаментальным трудом, где описаны характеристики DSL и объяснено, в каком случае оправдана его разработка, можно назватьработу Мерника [44].Разрабатываемый в рамках данной диссертационной работы язык BML, безусловно, является предметно-ориентированный, однако большая часть языков в рассматриваемой предметной области (Web-разработка) являются языками общего назначения.

Именно по этой причине основной задачей ставится поиск эффективного методаоценки данного языка с устоявшимися технологиями [95].3.1Разработка обобщённой оценочной моделиРазработка оценочной модели начинается с исследования предметной области,представляющей собой здесь конкурирующие технологии. Предметная область – множество объектов, рассматриваемых в пределах одного рассуждения или научной теории. Далее необходимо разработать методику сравнения и определить набор функционала, который может предоставить технология. Но из-за того, что понятие «функционал» достаточно обширное, его стоит рассматривать на уровне более мелких составляющих.

Характеристики

Список файлов диссертации

Методы и инструменты декларативного программирования динамических Web-узлов и приложений
Документы
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6374
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее