Мегаобучалка Главная | О нас | Обратная связь


ЗАДАНИЯ НА КУРСОВУЮ РАБОТУ




 

В процессе выполнения курсовой работы необходимо разработать язык программирования, являющийся подмножеством заданного языка, и транслятор с этого языка в промежуточный язык, тип которого определяется вариантом индивидуального задания. Метод синтаксического анализа также определяется заданием.

Язык должен обеспечивать операции над переменными и константами заданных базовых типов, а также над переменными и компонентами производного типа, которые определяются вариантом задания. Состав операций должен включать как предусмотренные базовым языком, так и перечисленные в варианте задания. В языке должна быть определена операция преобразования типов при структурной или именной эквивалентности типов. В языке должна быть предусмотрена возможность создания пользовательских типов.

Язык должен допускать использование арифметических выражений, в состав которых могут входить константы и простые переменные базовых типов, компоненты структурированного типа, круглые скобки и знаки операций: сложение, вычитание, умножение, деление. Приоритет операций - обычный.

Язык должен допускать использование логических выражений, в состав которых могут входить отношения, круглые скобки и знаки логических операций: И, ИЛИ, НЕ и, в случае наличия в языке логического типа, константы и переменные этого типа. Приоритет операций - обычный.

Операции над переменными структурированного типа определяется вариантом задания.

Состав операторов языка:

· оператор присваивания;

· оператор ввода;

· оператор вывода;

· составной оператор;

· оператор безусловного перехода;

· условный оператор, условие в котором задается логическим выражением;

· оператор цикла, условие в котором задается логическим выражением.

Конкретный вид операторов определяется вариантом задания.

Программа на входном языке может содержать комментарии.

 

Задание 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-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (419)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.03 сек.)