Лексика языков программирования. Регулярные выражения
Анализ программ автоматизации разработки трансляторов ВебТрансЛаб. Пользовательский интерфейс пакета, файлов с исходными данными/результатами работы. Метаязык регулярных выражений и технологии разработки правил определения лексики языков программирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 13.03.2022 |
Размер файла | 197,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Отчет
по лабораторной работе №1
Лексика языков программирования. Регулярные выражения
Выполнил Черепанов С.В
1. Цель работы
транслятор язык программирования лексика
Освоение основных навыков работы с учебным пакетом программ автоматизации разработки трансляторов ВебТрансЛаб, изучение и освоение пользовательского интерфейса пакета и форматов файлов с исходными данными/результатами работы, изучение метаязыка регулярных выражений и технологии разработки систем правил определения лексики языков программирования.
Порядок выполнения:
1. Изучить интерфейс пакета ВебТрансЛаб: запуск, регистрация, состав основного окна, команды меню.
2. Используя справку Вебтранслаба (команда меню «Помочь»), изучить структуру таблицы лексических правил (и расширения лексического анализатора) основного окна, приемы и способы формирования/редактирования ее содержимого, назначение колонок «имя автомата», «имя группы слов», «регулярное выражение», «действие» и «примечание».
3. Освоить:
- открытие системы лексических и/или синтаксических правил;
- редактирование лексических правил;
- операции сортировки таблицы лексических правил, добавления пустых строк, удаления, вырезания и вставки правил;
- сохранение правил в файле;
4. Изучить структуру текстового xml-файла, содержащего систему правил; освоить внешние операции (в частности - редактирование) с этими файлами.
5. Изучить технологию разработки сложных систем регулярных выражений, ориентируясь на свой вариант задания на курсовую работу. Разработать и сохранить фрагмент системы регулярных выражений (пока без действий) для всех (или выбранной самостоятельно части) групп слов языка, заданного в курсовой работе.
6. Разработать описание лексики заданного языка в качестве фрагмента расчетно-пояснительной записки к курсовой работе.
Подготовить, сдать и защитить отчет к лабораторной работе.
2. Ход работы
Согласно варианту курсовой работы имеем следующие идентификатор и константы, который будут составлять лексику нашего языка:
- Идентификатор:<Б>_<пбЦ>;
- Константы:целые по основанию 10; вещественные и экспоненциальные; символьные.
Результаты разработки фрагмента системы лексических правил языка:
Рисунок 1 -- правила лексики
Вывод
В ходе лабораторной работы №1 были освоены навыки работы с учебным пакетом программ автоматизации разработки трансляторов ВебТрансЛаб; изучен и освоен пользовательский интерфейс пакета и форматов файлов с исходными данными/результатами работы; изучен метаязык регулярных выражений и технология разработки систем правил определения лексики языков программирования.
Приложение
1. <?xml version="1.0" encoding="windows-1251"?>
2. <transLab>
3. <lexic>
4. <automat name='main'>
5. <rule groupWordsName='backslash'>
6. <expression>[[\]]</expression>
7. <comment>Символ обратного слеша</comment>
8. </rule>
9. <rule groupWordsName='brackets'>
10. <expression>[(){}]</expression>
11. <comment>Скобки</comment>
12. </rule>
13. <rule groupWordsName='delimiter'>
14. <expression>[;]</expression>
15. <comment>Точка с з запятой</comment>
16. </rule>
17. <rule groupWordsName='identifier'>
18. <expression>[A-Z][_][a-zA-Z0-9]*</expression>
19. <comment>Идентификатор: <Б>_<пбЦ>(например: K_,Z_37,C_out)</comment>
20. </rule>
21. <rule groupWordsName='controlCharacters'>
22. <expression>[ \t\n\r]+</expression>
23. <action>ignoreLastWord=true;</action>
24. <comment>Управляющие символы языка</comment>
25. </rule>
26. <rule groupWordsName='sings'>
27. <expression>[-+*/=]</expression>
28. <comment>Управляющие символы языка</comment>
29. </rule>
30. <rule groupWordsName='constOfIntTen'>
31. <expression>[0-9]+</expression>
32. <comment>Целые по основанию 10 </comment>
33. </rule>
34. <rule groupWordsName='constOfFloat'>
35. <expression>[0-9]+[.][0-9]+</expression>
36. <comment>Вещественная константа</comment>
37. </rule>
38. <rule groupWordsName='constOfChar'>
39. <expression>[']([] | [\\][tnrbv])[']</expression>
40. <comment>Символьная константа для \t,\n,\r,\b,]v</comment>
41. </rule>
42. <rule groupWordsName='constOfExponent'>
43. <expression>[0-9]*[+][e]</expression>
44. <comment>Экспоненциальная константа.</comment>
45. </rule>
46. </automat>
47. </lexic>
48. </transLab>
Примечание: комментарии пришлось откорректировать, так как не было ясно какая кодировка.
Размещено на Allbest.ru
Подобные документы
Особенности и суть языков программирования, способы их задания, цепочки символов и операции над ними. Классификация языков и грамматик, форма Бэкуса-Наура. Определение и свойства регулярных выражений, конечные автоматы и грамматики, описание программы.
курсовая работа [231,5 K], добавлен 23.06.2011Система дистанционного обучения Distance Learning Belarus и лабораторный практикум курса "Разработка трансляторов для языков программирования", его перенос в интерактивную среду обучения. Описание работы программы и её взаимодействия с пользователями.
курсовая работа [588,5 K], добавлен 03.11.2012Особенности способов описания языков программирования. Язык программирования как способ записи программ на ЭВМ в понятной для компьютера форме. Характеристика языка Паскаль, анализ стандартных его функций. Анализ примеров записи арифметических выражений.
курсовая работа [292,0 K], добавлен 18.03.2013Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.
курсовая работа [759,5 K], добавлен 04.11.2014Сущность и функции языков программирования, их эволюция и оценка популярности различных видов. Особенности компьютерных программ, разработанных на компилируемом, интерпретируемом или смешанном языке. Основные классы и иерархия языков программирования.
презентация [873,4 K], добавлен 23.01.2013Рассмотрение и ознакомление с одним из наиболее используемых языков программирования - С++. Его применение в процессе работы со строковыми типами данных и символами. Исследование кодов написания программ в режиме разработки консольного приложения.
курсовая работа [6,1 M], добавлен 20.01.2016Операторы регулярных выражений, их построение и лексический анализ. Разработка конечного автомата для распознавания регулярных выражений в среде разработки C/C++. Создание программ для поиска в тексте необходимой информации, их тестирование и отладка.
контрольная работа [199,0 K], добавлен 04.06.2013Классификация языков программирования. Использование циклических конструкций и выполнение итерационных процессов. Алгоритмические структуры циклов языков C, C++, Java, C#. Особенности современных языков программирования высокого уровня и их применение.
курсовая работа [345,6 K], добавлен 13.11.2009Построение, исследование описательных и формальных информационных моделей. Применение электронных обучающих средств в современной системе образования. Обусловленность выбора средств разработки и языков программирования. Обзор пользовательского интерфейса.
дипломная работа [7,3 M], добавлен 09.02.2017