ЗАДАНИЯ НА КУРСОВУЮ РАБОТУ
В процессе выполнения курсовой работы необходимо разработать язык программирования, являющийся подмножеством заданного языка, и транслятор с этого языка в промежуточный язык, тип которого определяется вариантом индивидуального задания. Метод синтаксического анализа также определяется заданием. Язык должен обеспечивать операции над переменными и константами заданных базовых типов, а также над переменными и компонентами производного типа, которые определяются вариантом задания. Состав операций должен включать как предусмотренные базовым языком, так и перечисленные в варианте задания. В языке должна быть определена операция преобразования типов при структурной или именной эквивалентности типов. В языке должна быть предусмотрена возможность создания пользовательских типов. Язык должен допускать использование арифметических выражений, в состав которых могут входить константы и простые переменные базовых типов, компоненты структурированного типа, круглые скобки и знаки операций: сложение, вычитание, умножение, деление. Приоритет операций - обычный. Язык должен допускать использование логических выражений, в состав которых могут входить отношения, круглые скобки и знаки логических операций: И, ИЛИ, НЕ и, в случае наличия в языке логического типа, константы и переменные этого типа. Приоритет операций - обычный. Операции над переменными структурированного типа определяется вариантом задания. Состав операторов языка: · оператор присваивания; · оператор ввода; · оператор вывода; · составной оператор; · оператор безусловного перехода; · условный оператор, условие в котором задается логическим выражением; · оператор цикла, условие в котором задается логическим выражением. Конкретный вид операторов определяется вариантом задания. Программа на входном языке может содержать комментарии.
Задание 1 Базовый язык – Паскаль. Базовые типы: целый, вещественный, комплексный, ограниченный. Структурированный тип – вектор с комплексными компонентами. Операции над векторами: определение длины вектора, сумма и разность векторов, скалярное произведение векторов, умножение вектора на число. Операции над комплексными числами: доступ к вещественной и мнимой частям, определение модуля числа. Оператор цикла – с предусловием. Перегрузка операций – разрешается. Класс грамматик – грамматики простого предшествования. Промежуточный язык – тетрады.
Задание 2 Базовый язык – Паскаль. Базовые типы: целый, булевский. Структурированный тип – булевская матрица. Операции над булевскими матрицами: определение размеров матрицы, конъюнкция и дизъюнкция матриц, инверсия матрицы,вывод на экран. Оператор цикла – с постусловием. Перегрузка операций – не разрешается. Класс грамматик – SLR(1) - грамматики. Промежуточный язык – триады.
Задание 3 Базовый язык – Паскаль. Базовые типы: целый, символьный. Структурированный тип – символьная матрица. Операции над символьными матрицами: определение размеров матрицы, конъюнкция и дизъюнкция матриц, инверсия матрицы, вывод на экран. Оператор цикла – с постусловием. Перегрузка операций – не разрешается. Класс грамматик – SLR(1) - грамматики. Промежуточный язык – тетрады.
Задание 4 Базовый язык – Паскаль. Базовые типы: целый, рациональный, ограниченный, перечислимый. Структурированный тип – массив. Операции над рациональными числами: обращение к числителю и знаменателю, выделение целой и дробной части, приведение к неправильной дроби, нахождение общего знаменателя двух рациональных чисел, приведение к простой дроби. Оператор цикла – с параметром. Перегрузка операций – разрешается. Класс грамматик – LL(1) - грамматики. Промежуточный язык – тетрады.
Задание 5 Базовый язык – Паскаль. Базовые типы: целый, вещественный, булевский, ограниченный, перечислимый. Структурированные типы: запись, список. Операции над списком: определение количества элементов в списке, конкатенация списков, поиск элемента в списке, получение элемента списка с заданным номером, удаление элемента с заданным номером. Оператор цикла – с предусловием. Перегрузка операций – не разрешается. Класс грамматик – грамматики слабого предшествования. Промежуточный язык – триады.
Задание 6 Базовый язык – Паскаль. Базовые типы: целый, вещественный, булевский, символьный, ограниченный, перечислимый. Структурированные типы: символьная строка, стек. Операции над строками: определение длины строки, конкатенация строк, замена подстроки в строке, поиск подстроки в строке, доступ к элементу строки по индексу, доступ к подстроке. Операции над стеком: определение количества элементов в стеке, вталкивание элемента в стек, выталкивание элемента из стека, чтение верхушки стека. Оператор цикла – с параметром. Перегрузка операций – не разрешается. Класс грамматик – SLR(1) - грамматики. Промежуточный язык – тетрады.
Задание 7 Базовый язык – Паскаль. Базовые типы: целый, вещественный, ограниченный, перечислимый. Структурированные типы: запись, массив, массив записей. Оператор цикла – с параметром. Перегрузка операций – не разрешается. Класс грамматик – грамматики операторного предшествования. Промежуточный язык – тетрады.
Задание 8 Базовый язык – Visual Basic. Базовые типы: целый, вещественный, комплексный. Структурированный тип – массив. Операции над комплексными числами: доступ к вещественной и мнимой частям, определение модуля числа. Оператор цикла – DO … LOOP. Перегрузка операций – не разрешается. Класс грамматик – LL(1) - грамматики. Промежуточный язык – триады.
Задание 9 Базовый язык – Паскаль. Базовые типы: целый, булевский, символьный, ограниченный, перечислимый. Структурированный тип – множество. Операции над множествами: проверка принадлежности элемента множеству (in), объединение, пересечение, дополнение множеств. Оператор цикла – с предусловием. Перегрузка операций – разрешается. Класс грамматик – грамматики операторного предшествования. Промежуточный язык – тетрады.
Задание 10 Базовый язык – Паскаль. Базовые типы: целый, вещественный, комплексный, булевский. Структурированные типы: запись, указатель. Операции над указателями: присваивание, разыменование (@и^), сравнение (на равенство и неравенство). Дополнительные требования: операторы new и dispose. Операции над комплексными числами: доступ к вещественной и мнимой частям, определение модуля числа. Оператор цикла – с постусловием. Перегрузка операций – не разрешается. Класс грамматик – грамматики слабого предшествования. Промежуточный язык – тетрады.
Задание 11 Базовый язык – Си. Базовые типы: целый, вещественный, булевский. Структурированный тип – вектор с вещественными компонентами. Операции над векторами: определение длины вектора, сумма и разность векторов, скалярное произведение векторов, умножение вектора на число. Дополнительные требования: операции ++, --, условный оператор присваивания, операторы присваивания +=, *=, -=, /=. Оператор цикла – с параметром. Перегрузка операций – разрешается. Класс грамматик – LL(1)-грамматики. Промежуточный язык – тетрады.
Задание 12 Базовый язык – Си. Базовые типы: целый, вещественный, комплексный. Структурированные типы: структура, очередь. Операции над очередью: определение количества элементов в очереди, добавление элемента в очередь, изъятие элемента из очереди, чтение первого и последнего элемента очереди. Операции над комплексными числами: доступ к вещественной и мнимой частям, определение модуля числа. Дополнительные требования: операторы присваивания +=, *=, -=, /=. Оператор цикла – с предусловием. Перегрузка операций – не разрешается. Класс грамматик – грамматики слабого предшествования. Промежуточный язык – триады.
Задание 13 Базовый язык – Паскаль. Базовые типы: целый, рациональный комплексный, перечислимый, комплексный. Структурированный тип – массив комплексных чисел. Операции над рациоными комплексными числам: обращение к числителю и знаменателю, выделение целой и дробной части, приведение к неправильной дроби, нахождение общего знаменателя двух рациональных чисел, приведение к простой дроби. Оператор цикла – с параметром. Перегрузка операций – разрешается. Класс грамматик – LL(1) - грамматики. Промежуточный язык – LLVM Целевой язык — машинный код X86 Задание 14 Базовый язык – Си++. Базовые типы: целый, вещественный, перечислимый. Структурированные типы: массив, указатель. Операции над указателями: присваивание, разыменование (*. и->), сравнение (на равенство и неравенство). Дополнительные требования: операторы newи delete, операции ++, --, условный оператор присваивания, операторы присваивания +=, *=, -=, /=, функции. Оператор цикла – с параметром. Класс грамматик – грамматики простого предшествования. Промежуточный язык – тетрады.
Задание 15 Базовый язык – Java. Базовые типы: целый, вещественный, перечислимый. Структурированный тип: матрицы с вещественными компонентами. Операции над матрицами: определение размеров матрицы, сумма и разность матриц, произведение матриц, транспонирование матрицы. Дополнительные требования: операции ++, --, условный оператор присваивания, операторы присваивания +=, *=, -=, /=. Оператор цикла – с постусловием. Перегрузка операций – не разрешается. Класс грамматик – грамматики операторного предшествования. Промежуточный язык – тетрады.
Задание 16 Базовый язык – Си++. Базовые типы: целый, вещественный, рациональный. Структурированные типы: массив, указатель. Операции над указателями: присваивание, разыменование, сравнение (на равенство и неравенство). Операции над рациональными числами: обращение к числителю и знаменателю, выделение целой и дробной части, приведение к неправильной дроби, нахождение общего знаменателя двух рациональных чисел, приведение к простой дроби. Дополнительные требования: операторы newи delete, операции ++, --, условный оператор присваивания, операторы присваивания +=, *=, -=, /=. Оператор цикла – с параметром. Класс грамматик – грамматики простого предшествования. Промежуточный язык – триады.
Задание 17 Базовый язык – Си. Базовые типы: целый, вещественный, символьный. Структурированный тип: массив. Операции над массивами символьного типа: определение длины строки, конкатенация строк, замена подстроки в строке, поиск подстроки в строке, доступ к подстроке. Дополнительные требования: операции ++, --, условный оператор присваивания, операторы присваивания +=, *=, -=, /=. Оператор цикла – с параметром. Перегрузка операций – разрешается. Класс грамматик – LL(1)-грамматики. Промежуточный язык – тетрады.
Задание 18 Базовый язык – Си. Базовые типы: целый, вещественный, символьный, перечислимый. Структурированный тип: битовая строка. Операции над битовыми строками: сложение, вычитание, умножение, деление битовых строк (как двоичных чисел), доступ к элементу строки по индексу, доступ к подстроке, конкатенация строк, преобразование битовой строки к целому числу и обратно. Оператор цикла – с предусловием. Класс грамматик – SLR(1)-грамматики. Промежуточный язык – тетрады.
Задание 19 Базовый язык – С. Базовые типы: целый, вещественный, символьный. Структурированный тип: символьная строка. Операции над строками: определение длины строки, конкатенация строк, замена подстроки в строке, поиск подстроки в строке, доступ к подстроке. Дополнительные требования: функции, оператор new, операции ++, --, условный оператор присваивания. Оператор цикла – с предусловием. Класс грамматик – грамматики операторного предшествования. Промежуточный язык – триады.
Задание 20 Базовый язык – Java. Базовые типы: целый, вещественный, комплексный. Структурированный тип – матрицы с комплексными компонентами. Операции над матрицами: определение размеров матрицы, сумма и разность матриц, произведение матриц, транспонирование матрицы. Операции над комплексными числами: доступ к вещественной и мнимой частям, определение модуля числа. Дополнительные требования: функции, оператор new, операции ++, --. Оператор цикла – с постусловием. Перегрузка операций – не разрешается. Класс грамматик – LL(1) - грамматики. Промежуточный язык – тетрады.
Задание 21 Базовый язык – Java. Базовые типы: целый, вещественный, рациональный, булевский. Структурированный тип – вектор с рациональными компонентами. Вектор с рациональными компонентами: определение длины вектора, сумма и разность векторов, скалярное произведение векторов, умножение вектора на число. Операции над рациональными числами: обращение к числителю и знаменателю, выделение целой и дробной части, приведение к неправильной дроби, нахождение общего знаменателя двух рациональных чисел, приведение к простой дроби. Дополнительные требования: функции, оператор new, операции ++, --. Оператор цикла – с постусловием. Перегрузка операций – не разрешается. Класс грамматик – LL(1) - грамматики. Промежуточный язык – тетрады.
Задание 22 Базовый язык – C. Базовые типы: целый, вещественный, булевский, комплексный. Структурированный тип – массив. Операции над комплексными числами: доступ к вещественной и мнимой частям, определение модуля числа. Дополнительные требования: функции, оператор new, операции ++, --, условный оператор присваивания. Оператор цикла – с параметром. Класс грамматик – SLR(1)-грамматики. Промежуточный язык – тетрады.
Задание 23 Базовый язык – Basic. Базовые типы: целый, вещественный, булевский. Структурированный тип – очередь с приоритетом. Операции над очередью: определение количества элементов в очереди, добавление элемента в очередь, изъятие элемента из очереди, чтение первого элемента очереди. Дополнительные требования: функции, оператор new, операции ++, --, условный оператор присваивания. Оператор цикла – с предусловием. Перегрузка операций – не разрешается. Класс грамматик – LL(1) - грамматики. Промежуточный язык – триады.
Задание 25 Базовый язык – C++. Базовые типы: целый, вещественный, булевский, комплексный. Структурированный тип – массив комплексный. Операции над комплексными числами: доступ к вещественной и мнимой частям, определение модуля числа + операции над комплексными массивами: + *. Дополнительные требования: функции, оператор new, операции ++, --, условный оператор присваивания. Оператор цикла – с параметром. Класс грамматик – SLR(1)-грамматики. Промежуточный язык – тетрады.
Список литературы
1. Опалева Э.А., Самойленко В.П., Семенова О.Н. Формальные методы описания перевода: Учеб. пособие /СПбГЭТУ. СПб., 2000. 2. Опалева Э.А., Самойленко В.П., Семенова О.Н. Методы синтаксического анализа: Метод. указания к лабораторным работам/ СПбГЭТУ. СПб., 1995. 3. Опалева Э.А., Самойленко В.П. Формальные грамматики и распознающие автоматы: Учеб. пособие /ЛЭТИ. Л., 1991. 4. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов /Пер. с англ. М.: Мир, 1979. 5. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции: В 2 т. Т. 1/ Пер. с англ. М.: Мир, 1978. 6. Ахо А., Сети Р., Ульман Дж. Компиляторы: принципы, технологии и инструменты /Пер. с англ. М.: Изд. дом «Вильямс», 2001. 7. Эллис М., Строуструп В. Справочное руководство по языку программирования С++ с комментариями. Проект стандарта ANSI /Пер. с англ. М.:Мир, 1992. 8. Шмидт В. Visual Basic 5.0 / М.: «АБФ», 1997. 9. Ноутон П., Шилдт Г. JavaTM2/Пер. с англ. СПб.: «БХВ-Петербург», 2001.
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (574)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |