
- •Вариант 1 Разработка транслятора языка программирования midi- файлов
- •Вариант 3 Разработка программы "Интерпретатор выражений алгебры комплексных чисел"
- •Вариант 4 Разработка программы "Транслятор выражений в обратную польскую запись"
- •Вариант 5 Разработка программы-интерпретатора специализированного языка программирования для операций над массивами
- •Вариант 7 Разработка программы "Интерпретатор арифметики вещественных чисел"
- •Вариант 8 Разработка программы "Интерпретатор выражений булевой алгебры"
- •Вариант 9 Разработка программы "Калькулятор алгебраических матричных выражений"
- •Вариант 10 Разработка программы "Текстовый редактор с подсветкой синтаксиса"
- •Вариант 11 Разработка программы "Графический командный процессор"
- •Вариант 12 Разработка программы "Интерпретатор операций над множествами"
- •Вариант 13 Разработка программы "Командный файловый процессор"
- •Вариант 14 Разработка программы "Конвертер форматированного текста"
- •Вариант 15 Разработка программы "Интерпретатор побитовых логических операций"
- •Вариант 16 Разработка программы "Командный калькулятор арифметических выражений"
- •Вариант 17 Разработка программы-интерпретатора упрощенного языка программирования
- •Вариант 18 Разработка программы-интерпретатора упрощенного языка программирования
Вариант 18 Разработка программы-интерпретатора упрощенного языка программирования
Программа получает на вход файл с текстом программы (кодировка ANSI). Текст может содержать следующие операторы упрощенного языка программирования:
1) Объявление переменной (начальное значение не определено)
Тип список_имён_переменных;
Имена переменных в списке разделяются запятой. Имеется два типа данных: STR – строка символов длиной до 255 символов, и INT – целое 4-байтовое число со знаком.
2) Объявление переменной с одновременным присвоением им начального значения.
Тип ИмяПеременной1 = значение, ИмяПеременной2 = значение, и т.д.;
Значение переменных типа INT задается как число со знаком в 10-тичной системе счисления, или как результат вычисления выражения. Выражение может содержать знаки + –, числа и имена ранее объявленных целочисленных переменных, оператор LEN(ИмяСтроковойПеременной), возвращающий текущую длину строки.
Значение переменных типа STR задается как строка символов в кавычках “ … “, или как результат вычисления выражения. Выражение может содержать знак . (точка), означающий конкатенацию строк, имена строковых переменных, стрớки символов в кавычках и оператор взятия подстроки ИмяСтроковойПеременной[начальный_индекс : конечный_индекс]. Индексы отсчитываются от 1. Вместо индекса можно писать число или имя целочисленной переменной. Результат конкатенации строк усекается до 255 символов.
3) Оператор присваивания
ИмяПеременной = значение;
Значение, в зависимости от типа переменной, может задаваться константой или строкой, или является результатом вычисления выражения. Правила составления выражений см п.(2).
4) Оператор вывода
WRITE( Список для вывода через запятую );
Список для вывода может содержать: имена переменных, выражения, числа и строки. Правила составления выражений см п.(2).
5) Оператор цикла на фиксированное число повторений
DO (ИмяПараметраЦикла = начальное_значение STEP шаг_изменения TO конечное_значение)
BEGIN тело цикла END;
Параметром цикла может быть целочисленная переменная (объявленная ранее или объявленная внутри скобок оператора DO). Начальное и конечное значения и шаг задаются числами. Тело цикла содержит операторы, разделенные точкой с запятой (;). Цикл прекращается, когда параметр цикла превысит конечное_значение.
Программа состоит из последовательности перечисленных операторов. Операторы разделяются точкой с запятой (;). Специальных конструкций для объявления начала и конца программы нет. Объявления переменных могут быть в любом месте программы. Повторные объявления имён не допускаются. Область «видимости» имени лежит от объявления переменной до конца программы.
Вариант 19
Транслятор текстовых файлов из формата HTML в формат TeX
Программа получает на вход произвольный HTML-файл, транслируя текст в файл формата издательской системы TeX (с учётом тегов форматирования). Определения стилей CSS игнорировать. Тэги HTML, не имеющие аналогов в системе TeX, также игнорировать.
Варианты 20-35
Варианты существуют в двух модификациях:
asm: Разработка кросс-ассемблера для однокристальной микроЭВМ
dis: Разработка дизассемблера для однокристальной микроЭВМ
Задание для кросс-ассемблеров:
Разработать кросс-компилятор с языка ассемблера однокристальной микроЭВМ (ОМЭВМ).
Кросс-компилятор получает на вход имя текстового файла, содержащего текст программы на языке ассемблера ОМЭВМ. Если программа не содержит ошибок, кросс-компилятор формируется выходной бинарный файл с машинными кодами. Бинарный файл представляет собой образ ПЗУ для последующей «прошивки» в ОМЭВМ. Если текстовый файл содержит ошибки, выводить диагностическое сообщение, а бинарный файл не создавать.
Задание для дизассемблеров:
Разработать дизассемблер для однокристальной микроЭВМ (ОМЭВМ). Дизассемблер на вход получает имя бинарного файла, содержащего машинные коды ОМЭВМ. Формат этого файла соответствует образу ПЗУ ОМЭВМ. На выходе дизассемблер формирует текстовый файл с мнемониками команд, эквивалентных машинным кодам. Если бинарный файл содержит неизвестный машинный код или имеет недопустимый размер, выводить сообщение об ошибке.
Пояснения: индивидуальным вариантом определяется тип однокристальной микроЭВМ. Система команд ОМЭВМ в зависимости от ее модели включает от 20 до 150 машинных команд. Те, кто пишет кросс-ассемблер: разрешается реализовывать не всю систему команд ОМЭВМ, а только часть (20 команд из разных групп).
Те, кто пишут дизассемблер – нужно реализовывать всю систему команд.
№ вар. |
Тип МЭВМ (серия, семейство) |
Фирма-производитель (официальный сайт) |
Файлы с документацией (VtServer \\ PUBLIC\ Системное ПО \ Курсовая \ Документация… ) |
20 |
AT89 |
ATMEL (www.atmel.com) |
Microcontrollers\Atmel\AT89xxx\ AT89C55.pdf Microcontrollers\ВЕ31-ВЕ51\ Описание ВЕ31-ВЕ51.doc |
21 |
AT90 |
ATMEL (www.atmel.com) |
Microcontrollers\Atmel\AT90\ AT90S1200\ AT90S1200.pdf Microcontrollers\Atmel\AT90\ Instruction Set.pdf |
22 |
SAB семейство С166 |
Infineon Technologies (Siemens) (www.infineontechnologies.com) |
Microcontrollers\Infineon Technologies\C166\ c166 167 manual.pdf Microcontrollers\Infineon Technologies\C166\ c166 instruction set.pdf |
23 |
SAB семейство С500 |
Infineon Technologies (бывшая Siemens) (www.infineontechnologies.com) |
Microcontrollers\Infineon Technologies\C500\ d80517.pdf Microcontrollers\Infineon Technologies\C500\ c500 instruction set.pdf Microcontrollers\ВЕ31-ВЕ51\ Описание ВЕ31-ВЕ51.doc |
24 |
семейство PIC16С6х |
MicroChip (www.microchip.com) |
Microcontrollers\MicroChip\PIC15\ 16c5xrus.pdf Microcontrollers\MicroChip\PIC16\ Описание PIC16.doc Microcontrollers\MicroChip\PIC16\ PIC16C6X.pdf |
25 |
семейство PIC17C4x |
MicroChip (www.microchip.com) |
Microcontrollers\MicroChip\PIC17\ PIC17C4x.PDF Microcontrollers\MicroChip\PIC15\ 16c5xrus.pdf Microcontrollers\MicroChip\PIC16\ Описание PIC16.doc |
26 |
семейство PIC18Cxx2 |
MicroChip (www.microchip.com) |
Microcontrollers\MicroChip\PIC18\ *.* Microcontrollers\MicroChip\PIC15\ 16c5xrus.pdf |
27 |
сем-во MC68HC16хх |
Motorola (www.motorola.com) |
Microcontrollers\Motorola\MC68HC16\*.* Microcontrollers\Motorola\MC68HC11\*.* |
28 |
PD 703116 (серия V850E1) |
NEC Electronics (www.necel.com) |
Microcontrollers\NEC Electronics\seria V850E1\*.* |
29 |
µPD750008 |
NEC Electronics (www.necel.com) |
Microcontrollers\NEC Electronics\mPD750008\*.* |
30 |
SX18AC |
Scenix (www.scenix.com) |
Microcontrollers\Scenix\*.* |
31 |
ST6200С |
ST Microelectronics (eu.st.com) |
Microcontrollers\ST Microelectronics\St6\*.* |
32 |
ST90135M6 |
ST Microelectronics (eu.st.com) |
Microcontrollers\ST Microelectronics\St9\*.* |
33 |
ST10F269 |
ST Microelectronics (eu.st.com) |
Microcontrollers\ST Microelectronics\St10\*.* |
34 |
Z86C06 |
Zilog (www.zilog.com) |
Microcontrollers\Zilog\*.* |
35 |
1816 ВЕ51 |
отечественное производство |
Microcontrollers\ВЕ31-ВЕ51\*.* |