Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Розробка сканера

Реферат Розробка сканера





Міністерство освіти РФ

Тульський державний університет

Кафедра АТМ






Курсова робота

за курсом

В«Теорія обчислювальних процесівВ»


















Тула - 2003

Зміст:


1.Постановка завдання ................................................................ 4

1.1. Завдання ............................................................................ 4

2.1. Глобальні змінні і необхідні підпрограми .............. 4

3.1. Діаграма станів .......................................................... 5

2.Текст програми .................................................................. 7

3. Інструкція користувачеві ..................................................... 14

4. Тестовий приклад ................................................................ 14

Список використаних джерел .......................................... 15

Вступ:


На сьогоднішній момент існує величезна кількість розмаїтості-них мов програмування. Всі вони мають свою історію, свою область застосування, та перераховувати навіть найбільш відомі з них не має сенсу. Але всі ці мови побудовані на основі одних і тих же принципів, основи яких визначає теорія формальних мов і граматик.

1. Постановка завдання:

В 

1.1. Завдання:


У даній контрольно-курсовій роботі необхідно виконати лексичний аналіз тексту програми на певному умовному мовою програмування. Таким чином потрібно розробити сканер, який зчитує літери первісної, вихідної програми і будує слова, чи інакше символи, вихідної програми (ідентифікатори, службові слова, одно-або двулітерние роздільники).

Символами в мові, для якого необхідно розробити сканер є:

1.Служебние слова: Цикл ...;

Поки ... Робити;

Продовжити;

Речовий;

Подвійний.

2.Оператори: +, -, *, /, (,), =, <>, <,>.

3.Ідентіфікатори: (рус.буква | _), (рус.буква | _ | цифра) *.

4.Логіческіе операції: І, АБО, НЕ.

5.Комментарій: {* ... *}, {{-до кінця рядка.


1.2. Глобальні змінні і необхідні підпрограми:


Для роботи сканера потрібні такі змінні і підпрограми:

1. char c, де c - глобальна змінна, значенням якої завжди буде сканована літера вихідної програми.

2. int Class, де Class містить ціле число, яке характеризує клас літери, що знаходиться в с. Будемо вважати, що якщо Class = 1 то це цифра, Class = 2 - буква, Class = 3 - літера '{', Class = 4 - оператор, Class = 5 - неприпустиме вираз.

3. char s [20] - масив який буде містити ланцюжок літер, складових символ.

4. void Getchar (char, int &) - функція, завдання якої полягає в тому, щоб вибрати наступну літеру вихідної програми і помістити її в с, а клас літера в Class. p> 5. int LookUp (char * ) - Функція яка здійснює пошук символу, набраного в s, за таблицею службових слів і логічних операцій. Якщо символ є службовим словом, то LookUp поверне 1, якщо символ це логічна операція то LookUp поверне 2, в іншому випадку функція поверне 3. br/>

1.3. Діаграма станів:


Мітка D використовується замість кожної з міток 0, 1, 2, ..., 9, тобто D представляє клас цифр. Це робиться для спрощення діаграми. Аналогічно мітка L представляє клас літери А, Б, ..., Я, а, б, ..., я, а DELIM представляє клас роздільників (операторів). Літера {обробляється особливим чином. p> Деякі дуги помічені. Ці дуги будуть обрані, якщо сканована літера не співпадає ні з однією з літер, якими позначені інші дуги.

Додамо семантику в діаграму станів. Введемо команду Gc, скорочено позначивши таки чином функцію void Getchar (char, int &). Під першою дугою, провідною до стану S, записана команда init, яка вказує на необхідність виконання підготовчих дій і початкових установок, а саме перевірка вмісту з, і якщо там пробіл, то повторно викликається void Getchar (char, int &) до тих пір, поки в з не виявиться літера, відмінна від пропуску якщо команда init визначить кінець файлу то програма буде завершена. Команда ADD означає, що літера з додається до рядка s. У стані Print int друкується певне програмою ціле число, в Print sl - Службове слово, в Print log - логічна операція, в Print id - ідентифікатор, в Print com - коментар, в Print еrror - Неприпустиме вираз. З будь-якого стану Print дуги ведуть в стан S до тих пір, поки init не з'ясує кінець файлу.






















...


сторінка 1 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: The Marx's class
  • Реферат на тему: Розробка програми перекладу введеного рядка тексту в послідовність кодів аб ...
  • Реферат на тему: Аналіз Виконання планових Завдання з виробничої програми за рік
  • Реферат на тему: Розробка програми на платформі Android на тему "Інформатика - 2 клас&q ...
  • Реферат на тему: The "new class"