Реферат: Разработка системного программного обеспечения
Задача функциональной схемы -более наглядно, на языке инженера, отразить обработку входного языка по принципу рекурсивного спуска. Для примера решим задачу:
Задача: принадлежит ли грамматике языка следующее синтаксическое предложение:
IF ( A < B ) BULL () ;
Для решения задачи обратимся к имеющемуся входному
языку G <Оператор>.
Любой язык, назовём его G <Z> в независимости от его классификации и функционального назначения содержит следующие базисные элементы: G <Z> ={ Vt, Vn, Z, P }, где:
Vt - словарь терминальных символов
Vn - словарь нетерминальных символов
Z - начальный нетерминальный символ
P - множество правил вывода
Для языка G <Оператор> имеем следующие множества:
Vt ={ 0, 1, 2, ... , 9 ; a, b, c, d, ... ,z ; A, B, C, ..., Z; <, >, = };
Vn ={«Оператор», «УслВыр», «Терм», «Операнд», «Функция», «Идентификатор», «Скобки», «Целое» };
Z = { «Оператор» };
P = {
1. < Оператор > - IF ( < УслВыр > ) < Функция >; [ ELSE < Функция >; ]
2. < УслВыр > - T | < УслВыр > < T | < УслВыр > > T | < УслВыр > = Т
3. < Терм > - O | «Целое»{ «Целое» } | «Идентификатор»{ О }
4. < Функция > - O< Скобки > | О{ О }< Скобки >
5. < Операнд > - «Целое» | «Идентификатор»
6. < Целое > = { 0, 1, 2, 3, ... , 9 }
7. < Идентификатор > - { a, b, c, d, ... , z; A, B, C, ... ,Z }
8. < Скобки > - { ( , ) }
}
< Оператор >
< УВ >
< УВ >