Розробка системних програмних модулів та компонент систем програмування

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ути кнопку Make program. Тепер у вікні текстового редактора слід ввести текст програми і зберегти. Програма компілюється натисканням кнопки Compile. Аби запустити утворений виконавчий файл слід натиснути кнопку Run.

 

Рис.4.1. Оболонка М9

 

 

5. Відлагодження та тестування програми

 

5.1 Виявлення лексичних помилок

 

Повідомлення про лексичну помилку виводиться, коли лексичний аналізатор знаходить лексему, що не відповідає лексиці мови програмування та ні одному з імен описаних користувачем змінних. Для перевірки розробленого компілятора на виявлення лексичних помилок внесемо в текст програми помилку лексему Error. Результат тестування в додатку В1.

 

5.2 Виявлення синтаксичних помилок

 

Повідомлення про синтаксичну помилку виводиться, коли синтаксичний аналізатор знаходить ланцюжок лексем, що не відповідає граматиці заданої мови. Для перевірки компілятора на виявлення синтаксичних помилок внесемо в текст програми зайву операцію додавання. Результат тестування в додатку В2.

 

5.3 Виявлення семантичних помилок

 

Повідомлення про семантичну помилку виводиться семантичним аналізатором, коли у виразі не співпадають типи використовуваних змінних. Для перевірки компілятора на виявлення семантичних помилок внесемо в текст програми вираз з використанням змінних різних типів. Результат тестування в додатку В3.

 

5.4 Загальна перевірка коректності роботи транслятора

 

Загальна перевірка полягає у здатності розробленого компілятора виконувати свої функції. Компілятор повинен транслювати програму у проміжне представлення на асемблерній мові та створити обєктний і виконуваний файли за допомогою файлів tasm.exe та tlink.exe. Для перевірки вводимо коректний текст програми та виконуємо усі дії зазначені у розділі 4. Результат тестування в додатку В4.

 

 

Висновки

 

Підчас виконання курсової роботи:

  1. Складено формальний опис мови програмування М9 у формі розширеної нотації Бекуса-Наура, дано опис усіх символів та ключових слів.
  2. Створено компілятор мови програмування М9, а саме:
  3. Розроблено лексичний аналізатор, здатний розпізнавати лексеми, що є описані в формальному описі мови програмування, та додані під час безпосереднього використання компілятора.
  4. Розроблено синтаксичний аналізатор на основі автомата з магазинною памяттю. Складено таблицю переходів для даного автомата згідно правил записаних в нотації у формі Бекуса-Наура.
  5. Розроблено генератор коду, який починає свою роботу після того, як лексичним, синтаксичним та семантичним аналізатором не було виявлено помилок у програмі, написаній мовою М9. Проміжним кодом генератора є програма на мові Assembler(i8086). Вихідним кодом є машинний код, що міститься у виконуваному файлі
  6. Проведене тестування компілятора за допомогою тестових програм за наступними пунктами:
  7. Виявлення лексичних помилок.
  8. Виявлення синтаксичних помилок.
  9. Загальна перевірка роботи компілятора.

Тестування не виявило помилок в роботі компілятора, а всі помилки в тестових програмах мовою М9 були виявлені і дано попередження про їх наявність.

В результаті виконання даної курсової роботи було успішно засвоєно методи розробки та реалізації компонент системного програмного забезпечення.

Список використаної літератури

 

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

2. ШильдтГ. С++. Санкт-Петербург: BXV, 2002. 688с.

3. КомпаниецР.И., МаньковЕ.В., ФилатовН.Е.Системное программирование. Основы построения трансляторов. СПб.: КОРОНА принт, 2004. 256с.

4. Б.Керниган, Д.Ритчи Язык программирования Си. Москва Финансы и статистика, 1992. 271с.

5. Л.Дао. Программирование микропроцессора 8088. Пер.с англ.М. Мир, 1988.

6. Ваймгартен Ф. Трансляция языков программирования. М.: Мир, 1977.