ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 89
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской Федерации
Тольяттинский государственный университет
Институт математики, физики и информационных технологий
Кафедра «Прикладная математика и информатика»
Баумгертнер С.В., Кузьмичев А.Б.
Теоретические основы информатики. Выполнение курсовой работы
Учебно-методическое пособие
для студентов очной и заочной форм обучения
по направлению подготовки 01.03.02 Прикладная математика и информатика, 02.03.03 Математическое обеспечение и администрирование информационных систем (уровень бакалавриата)
Тольятти 2018
УДК 004
ББК 32.973я7
Рецензенты:
д.т.н., профессор кафедры «Прикладная математика и информатика» ФГБОУ «Тольяттинский государственный университет» С.В. Мкртычев;
к.т.н., доцент кафедры «Информационного и электронного сервиса» ФГБОУ ВО «Поволжский государственный университет сервиса» Б.В. Шишлин.
Баумгертнер С.В., Кузьмичев А.Б., Теоретические основы информатики. Выполнение курсовой работы. Учебно-методическое пособие для студентов направлений подготовки 01.03.02 Прикладная математика и информатика, 02.03.03 Математическое обеспечение и администрирование информационных систем. – Тольятти: ТГУ, 2018. – с.
Учебно-методическое пособие составлено в соответствии с требованиями федерального государственного образовательного стандарта высшего образования к содержанию и уровню подготовки выпускника бакалавриата по направлению подготовки 01.03.02 Прикладная математика и информатика, 02.03.03 Математическое обеспечение и администрирование информационных систем.
В учебном пособии приведены основные правила и требования к подготовке и защите курсовых работ бакалавра. Правила и требования базируются на нормативных правовых актах Российской Федерации в сфере образования, общегосударственных образовательных стандартах высшего образования, рекомендациях Министерства образования и науки Российской Федерации, а также на внутренней нормативной базе университета.
Рекомендовано к изданию научно-методическим советом Тольяттинского государственного университета.
© ФГБОУ ВО «Тольяттинский государственный университет», 2018
© Баумгертнер С.В., А.Б. Кузьмичев, 2018
содержание
-
Нормативные ссылки
В настоящем пособии использованы ссылки на следующие стандарты:
-
ГОСТ 2.104-2006. Единая система конструкторской документации. Основные надписи; -
ГОСТ 2.105-95. Единая система конструкторской документации. Общие требования к текстовым документам; -
ГОСТ 2.106-96. Единая система конструкторской документации. Текстовые документы; -
ГОСТ Р 7.0.5-2008. Система стандартов по информации, библиотечному и издательскому делу. Библиографическая ссылка. Общие требования и правила составления; -
ГОСТ 7.1-2003. Система стандартов по информации, библиотечному и издательскому делу. Библиографическая запись. Библиографическое описание. Общие требования и правила составления; -
ГОСТ Р 7.0.12-2011. Система стандартов по информации, библиотечному и издательскому делу. Библиографическая запись. Сокращение слов и словосочетаний на русском языке. Общие требования и правила; -
ГОСТ 7.82-2001. Система стандартов по информации, библиотечному и издательскому делу. Библиографическая запись. Библиографическое описание электронных ресурсов. Общие требования и правила составления; -
ГОСТ 7.32-2001. Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления; -
ГОСТ 7.9-95 (ИСО 214-76). Система стандартов по информации, библиотечному и издательскому делу. Реферат и аннотация. Общие требования; -
ГОСТ 8.417-2002. Государственная система обеспечения единства измерений. Единицы величин.
В настоящем документе использованы ссылки на следующие локальные акты ТГУ:
-
Порядок обеспечения самостоятельности выполнения письменных работ в ТГУ.
-
Положение о курсовой работе (курсовом проекте).
-
Цели и задачи выполнения
Цель выполнения курсовой работы – углубление теоретических знаний по выбранной теме и овладение студентами умениями и навыками при разработке составных частей, основных принципов построения и функционирования компиляторов, практического освоение методов построения простейших компиляторов для заданной грамматики входного языка.
Курсовая работа заключается в создании компилятора по заданной грамматике на выбранном студентом языке программирования. Результатами курсовой работы являются программная реализация
заданного компилятора и пояснительная записка, оформленная в соответствии с требованиями стандартов и задания на курсовую работу.
Для программной реализации компилятора можно использовать любые языки и системы программирования по согласованию с преподавателем.
Задачами выполнения курсовой работы являются:
-
разработка генератора таблицы идентификаторов; -
разработка лексического анализатора; -
разработка синтаксического разборщика; -
разработка генератора результирующего кода; -
формирование умений применять теоретические знания при решении практических задач; -
подготовка к практической профессиональной деятельности; -
формирование культуры написания выпускной квалификационной работы.
Для построения компилятора рекомендуется использовать методы, освоенные в ходе выполнения практических работ по курсу «Теоретические основы информатики».
Подготовка и защита курсовой работы является одним из контрольных мероприятий при изучении дисциплины, их обязательным условием.
Курсовые работы обучающихся проходят обязательную проверку на наличие заимствований (плагиата) из общедоступных сетевых источников в соответствии с Порядком обеспечения самостоятельности выполнения письменных работ в ТГУ.
Оценка по итогам курсовой работы является одним из критериев определения уровня профессиональной подготовки студента.
По содержанию данная курсовая работа должна носить опытно-экспериментальный характер. То есть в основной части курсовой работы опытно-экспериментального характера представлены: уровень разработанности проблемы в теории и практике, характеристики методов экспериментальной работы, обоснование выбранного метода, основные этапы эксперимента, обработка и анализ результатов опытно-экспериментальной работы, возможность применения полученных результатов.
- 1 2 3 4 5 6 7
Выбор темы и руководство
Тема курсовой работы для всех исполнителей называется «Разработка и реализация простейшего компилятора по заданному варианту исходных данных № ___».
Входной язык компилятора должен удовлетворять следующим требованиям:
-
входная программа может быть разбита на строки произвольным образом, все пробелы и переводы строки должны игнорироваться компилятором; -
текст входной программы может содержать комментарии любой длины, которые должны игнорироваться компилятором (вид комментария может выбран по усмотрению исполнителя работы и согласован с преподавателем при утверждении задания); -
должны быть предусмотрены следующие варианты операторов входной программы:
– оператор присваивания вида <переменная>=<выражение>;
– составной оператор вида {… };
– оператор условия или цикла, предусмотренный вариантом задания;
-
выражения в операторах должны содержать следующие операции:
– арифметические операции сложения (+), вычитания (-), умножения (*), деления (/);
– операции сравнения «меньше» (<), «больше» (>), «равно» (==) или логические операции И (and), ИЛИ (or), НЕ (not) (при варианте задания с условием);
-
операндами в выражениях могут выступать идентификаторы (переменные) и константы (тип допустимых констант указан в варианте задания); -
все идентификаторы, встречающиеся в исходной программе, должны восприниматься как переменные, имеющие тип, заданный в варианте задания (предварительного описания идентификаторов в исходной программе не требуется); -
Приоритет операций исполнитель работы должен выбрать самостоятельно (приоритет операций учитывается в грамматике входного языка). Для изменения приоритета операций должны использоваться круглые скобки.
Полное описание входного языка должно быть задано в грамматике входного языка, которая строится исполнителем на первом этапе работы. Грамматика входного языка должна предусматривать любые входные цепочки, удовлетворяющие изложенным требованиям. Допускаются любые модификации входного языка по выбору исполнителя, если они не выходят за рамки указанных требований. Допускается расширять набор разрешенных операций и операторов входного языка при условии удовлетворения заданным минимальным требованиям, но при этом не разрешается использовать операции и операторы из других вариантов задания – все такие операторы обязательно должны трактоваться как ошибочные.
В качестве выходного (результирующего) языка могут использоваться триады, тетрады или язык ассемблер.
Имя результирующей программы исполнитель выбирает самостоятельно.
Тип данных, используемый для всех переменных, задается в варианте задания.
Все встречающиеся в исходной программе идентификаторы следует считать простыми скалярными переменными, не требующими выполнения преобразования типов. Ограничения на длину идентификаторов и констант во входной программе исполнитель выбирает самостоятельно.
В случае если на вход компилятора подается входная программа, содержащая синтаксические ошибки, компилятор должен корректно завершать свое выполнение и выдавать сообщение о найденной ошибке во входной программе с указанием строки, в которой найдена ошибка. По возможности компилятор должен указывать тип найденной ошибки. Компилятор может указать несколько ошибок во входной программе, если они были им обнаружены.
Варианты заданий
Предлагаемые варианты заданий приведены в следующей таблице.
№ | Тип констант | Оператор цикла или условия | Тип данных |
| 2 | у1 | Char |
| 2 | у2 | Char |
| 2 | у3 | Char |
| 2 | ц1 | Char |
| 8 | ц2 | Char |
| 8 | ц3 | Integer |
| 8 | у1 | Integer |
| 8 | у2 | Integer |
| 16 | у3 | Integer |
| 16 | ц1 | Integer |
| 16 | ц2 | Char |
| 16 | ц3 | Char |
| 2 | у1 | Char |
| 2 | у2 | Char |
| 2 | у3 | Char |
| 2 | ц1 | Integer |
| 8 | ц2 | Integer |
| 8 | ц3 | Integer |
| 8 | у1 | Integer |
| 8 | у2 | Integer |
| 16 | у3 | Char |
| 16 | ц1 | Char |
| 16 | ц2 | Char |
| 16 | ц3 | Char |
| 2 | у1 | Char |
| 2 | у2 | Integer |
| 2 | у3 | Integer |
| 2 | ц1 | Integer |
| 8 | ц2 | Integer |
| 8 | ц3 | Integer |