Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

По системному программному обеспечению

доцент кафедры АСОИУ Д.Г. Хохлов

 

Цель работы – изучение принципов функционирования и построения компонентов трансляторов и освоение технологии модульного программирования.

Курсовая работа включает разработку, отладку и документирование транслятора для заданного входного языка. Результатом курсовой работы является программа транслятора и пояснительная записка – отчет, оформленная в соответствии с требованиями стандартов и задания на курсовую работу [6, 7].

Пояснительная записка включает следующие основные разделы: задание, описание применения, описание программы, заключение и приложение. По согласованию с руководителем допускается изменение (конкретизация) названий разделов, а также включение дополнительных разделов. Содержание разделов описано в пособиях [6, 7].

Разработка транслятора, как правило, проводится методом внесения изменений в модули программы учебного компилятора С0 [4, 5]. Описание программы транслятора должно включать перечень основных изменений компилятора С0, а также сведения о средствах, разработанных для отладки модулей транслятора: тестах, заглушках (имитаторах), драйверах, программах отладочного вывода и др.

В приложении приводится: полный список вставляемых, удаляемых и изменяемых строк исходного текста компилятора С0 с указанием их номеров в порядке возрастания и/или исходная программа разработанного транслятора; контрольный пример для проверки и демонстрации его работы; а также тексты основных отладочных средств: тестов, заглушек (имитаторов), драйверов, программ отладочного вывода и др.

Оценка курсовой работы зависит от следующих факторов:

- корректности и качества разработанных программ, в том числе полноты реализации требований задания;

- полноты и качества пояснительной записки;

- защиты курсовой работы – умения объяснить и обосновать принятые проектные решения, ответить на вопросы по функционированию программы и ориентироваться в проблемах и методах данной предметной области.

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

Дополнительные бонусы (“плюсы”) при оценке могут быть получены за следующие расширения заданной минимальной функциональности:

- реализацию параметров управления работой транслятора;

- дополнительный интерактивный интерфейс с пользователем;

- оптимизацию объектной программы, например, эффективное (“сокращенное”) выполнение логических операций и операций сравнения, задание начальных значений глобальных и/или локальных переменных и т. п.;

- реализацию дополнительных операторов и операций входного языка (выход из цикла break, переход к следующей итерации цикла continue и т. п.).

Не допускается реализация функциональности, предусмотренной другими вариантами задания на курсовую работу. Такая реализация рассматривается не как достоинство, а как недостаток курсовой работы!

Дополнительные бонусы не учитываются, если не реализована минимальная функциональность, предусмотренная вариантом задания.

Литература

 

1. Ахо А., Сети Р., Ульман Дж. Компиляторы: принципы, технологии и инструменты: Пер. с англ. - М.: Издательский дом "Вильямс", 2003. - 768 с.

2. Молчанов А.Ю. Системное программное обеспечение: Учебник для вузов. - СПб.: Питер, 2003. - 396 с.

3. Молчанов А.Ю. Системное программное обеспечение. Лабораторный практикум. - СПб.: Питер, 2005. - 284 с.

4. Хохлов Д.Г. Системное программное обеспечение: Учебное пособие.- Казань: КГТУ (КАИ), Кафедра АСОИУ, 2006. - 136 с.

5. Хохлов Д.Г., Захарова З.Х. Введение в системное программирование: Учебное пособие.- Казань: Изд-во Казан. техн. ун-та, 2005. - 163 с.

6. Хохлов Д.Г. Программирование на языке высокого уровня. Часть 2: Методы программирования: Учебник. - Казань: Мастер Лайн, 2006. - 266 с.

7. Хохлов Д.Г. Основы технологии модульного программирования: Учебное пособие.- Казань: КГТУ (КАИ), Кафедра АСОИУ, 2005. - 63 с.

8. Хохлов Д.Г. Структуры данных и комбинаторные алгоритмы: Учебное пособие.- Казань: Изд-во Казан. техн. ун-та, 2006. - 100 с.

9. Хохлов Д.Г., Захарова З.Х. Практикум по структурам данных и комбинаторным алгоритмам: Учебное пособие. - Казань: Изд-во Казан. техн. ун-та, 2005. - 48 с.

10. Хохлов Д.Г., Захарова З.Х. Операционные системы: Учебное пособие. - Казань: КГТУ (КАИ), Кафедра АСОИУ, 2005. - 154 с.

11. Зубков С.В. Assembler для DOS, Windows и UNIX. М.: ДМК Пресс, 2000. - 608 с.

12. Хохлов Д.Г. Лабораторный практикум по методам трансляции: Методические указания.- Казань: КГТУ (КАИ), Кафедра АСОИУ, 1995. - 34 с.

13. Шень А. Программирование: теоремы и задачи. – М.: МЦНМО, 2004. – 296 с.

 

 

Задание на курсовую работу

 

Разработать, отладить и документировать транслятор для заданного входного языка в соответствии с вариантом задания.

 

Дополнительный тип данных (с минимальным набором операций):

с – char;

u – unsigned;

i32 – int 4-байтовый вместо 2-байтового;

L – long int (4 байта);

f – float;

b – локальные переменные блока - составного оператора;

p - указатель;

a – массив (многомерный);

ag – глобальный одномерный массив;

al – локальный одномерный массив;

str – строка (не более 255 символов), как в языке Pascal (длина в нулевом элементе);

set – множество до 256 элементов (например, как в языке Pascal).

 

Дополнительный тип констант:

2 – двоичная;

8 – восьмеричная;

16 – шестнадцатеричная;

с – символьная;

f – вещественная с фиксированной точкой, например 3.14;

e – вещественная экспоненциальная (с плавающей точкой), например 31.4Е-1;

str – строковая, например ‘КАИ’, операция + - сцепление строк;

set – множество, как в языке Pascal, например [‘A’..’Z’, ‘0’..’9’], операция + - объединение, - - вычитание, in - принадлежность.

 

Дополнительные операции:

++ - инкремент (увеличение переменной на 1);

-- - декремент (уменьшение переменной на 1);

& - битовая И;

| - битовая ИЛИ;

~ - битовое отрицание;

^ - битовое исключающее ИЛИ;

&& - логическая И;

|| - логическая ИЛИ;

! - логическое отрицание;

>> << - сдвиг вправо и влево арифметический или логический (по выбору);

& - определение адреса;

?: - условная операция;

+= -= *= /= %= <<= >>= &= ^= |= - присваивание с операцией.

 

Дополнительные операторы:

1 – цикл с постусловием do оператор while (выражение);

2 – цикл for (выражение; выражение; выражение) оператор

3 - цикл с параметром как в языке Pascal

for переменная:= выражение {to | downto} выражение do оператор

4 – условный оператор if (выражение) оператор else [оператор]

5 – переключатель как в языке С

switch (выражение)

{ [case константа: [оператор]…] …

[default: [оператор]…]

}

и оператор выхода из переключателя break;

6 – new и delete.

 

Тип комментария:

1 – комментарий от двойной косой черты до конца строки: // …;

2 - комментарий в “скобках” из косой черты и звездочки: /* … */;

3 - комментарий в круглых скобках со звездочкой: (* … *);

4 - комментарий в фигурных скобках: { … }. Операторные скобки -

begin … end.

 

Варианты заданий

 

  № Дополн. тип данных Дополн. тип костант Дополн. Операции Дополн. операторы Тип ком- ментария Дополнение
  c c ++ --      
  u   + - * / < >      
  i32   + - * % ун. -      
  L   && ||!      
  f f + - * /      
  p NULL & *      
  Ag p [ ]      
  Al   [ ]      
  c   & | ~      
  u   + - * / < >      
  i32   << >>      
  L   + - * / %      
  c   && ||!      
  u c ^      
  i32   *= /= %=      
  L   += -=      
  c   & | ~      
  u   &= ^=      
  i32   ?:      
  L   += -=      
  p NULL & *      
  set set + in      
  Al   [ ]      
  f E + - * /      
  B   & | ~      
  c   ++ --      
  u   += -=      
  i32   + -      
  L   += -=      
  f F * / += -=      
  p NULL & *      
  ag   [ ]      
  al   [ ]      
  a   [ ]      
  p NULL & * + -      
  set set + - n      
  str str +      
  C c & | ~      
  U   *= /= %=      
  i32 c * / %      
  L   &= |= ^=      
  F e */ /=      
  P NULL & * +=      
  Ag   [ ]      
  Al   [ ]      
  p NULL & *      
  set set + - &      
  str str val() str()      
  c   += -=      
  u   & | ~      
  i32   && ||!      
  L   &= |= ^=      
  f f + - *= /=      
  p NULL & *?:      

 

<== предыдущая лекция | следующая лекция ==>
Развития уголовно-исполнительной системы 2 страница | Понятие и сущность менеджмента
Поделиться с друзьями:


Дата добавления: 2015-03-29; Просмотров: 372; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.026 сек.