Автор: Пользователь скрыл имя, 27 Января 2013 в 05:09, контрольная работа
Вопрос:
Обоснуйте необходимость разработки новых формальных языков и трансляторов.
Ответ:
Есть две причины, почему приходиться разрабатывать новые языки и соответственно, трансляторы с них:
а) Универсальный язык не всегда удобен в конкретной узкой области – или громоздок, или не подходит модель, взятая за его основу, или…
б) САПР создается для конечных пользователей – конструкторов и технологов, следовательно, взаимодействие с САПР должно вестись на удобном для пользователя языке. Конструкторы и технологи не обязаны знать программирование. Элементы вновь созданного языка должны быть близки к области, в которой работают конструкторы. Пользователь должен легко оперировать знакомыми и понятными ему терминами.
Выучи лекции – условие применимости ядра
если хочешь сдать экзамен - ядро продукции
ответь на билет и получи отличную оценку - постусловия продукции
7. Вопрос:
а) Дана грамматика G= (Т, N, S, R), Т= {a, b, c, d}, N= {A, B, S},
R0: S®aSc
bAB®ab
bAd®abc
aS®bAdc
Какой язык порождает данная грамматика?
Построить эквивалентную ей грамматику.
б) Построить нетривиальную грамматику, порождающую следующий язык:
L={abcda, abcaba, daabc, aabdaa, cada}. Докажите, что построенная Вами грамматика действительно порождает этот язык.
7. Ответ:
а) Язык: L={(a)nb(c)n+2; n>=0}
Эквивалентная грамматика:
G= (Т, N, S, R), Т= {a, b, c}, N= {S},
R0: S®aSc
aS®abcc
б) L={abcda, abcaba, daabc, aabdaa, cada}.
R1: S® abcda | abcaba | daabc | aabdaa | cada; G1={{a,b,c,d},{S},S,R1}
R2: S® AB | Aaba | BA | aabBa | caB, A®abc, B®da; G2={{a,b,c,d},{S,A,B},S,R2}
Проверка:
8. Вопрос:
Можно ли построить дерево вывода для грамматики G из упражнения 7а ? Поясните.
8. Ответ:
Не для каждой грамматики можно построить дерево вывода. Деревом вывод можно представить в грамматиках, у которых левая часть правил состоит из одного нетерминала. Для грамматики G из упражнения 7а это условие не выполняется.
9. Вопрос:
Построить вывод в данной грамматике следующих констант: 0.253, 0.5E35, 2E-3
9.Ответ:
<константа>®<десятичное число>®<целое без знака>.<целое без знака>®<0>.<253>®0.253
<константа>®<десятичное число>E<целое>®<целое без знака>.<целое без знака>E<целое без знака>®<0>.<5>E<35>®0.5E35
<константа>®<целое>E<целое>®<
10. Вопрос:
Постройте вывод в данной грамматики следующей конструкции: ((АТОМ.(АТОМ.АТОМ))(АТОМ.АТОМ)
10. Ответ:
<S>®(<S>.<S>)®((<S>.<S>).<S>)® ((<S>.<S>)(<S>.<S>))® ((<S>.(<S>.<S>))(<S>.<S>))® ((АТОМ.(АТОМ.АТОМ))(АТОМ.АТОМ)
11. Вопрос:
Постойте в данной грамматике вывод цепочки (2+7)*(5-(3+1)). Покажите, каким образом для данной цепочки определяются операнды в каждой операции.
11. Ответ:
12. Вопрос:
а) Приведите примеры правил для каждого типа грамматик.
б) Определите типы следующих грамматик:
1) G1= {{a, b, c}, {A, B, S}, S, R}
R: S®AaB; A®Bbc; B®ab.
2) G= {{a, b, c}, {A, B, S}, S, R}
R: S®AaB; aAb®aBbcb; aB®ab.
3) G= {{a, b, c}, {A, B, S}, S, R}
R: S®aA; A®cB; B®e
в) Для каких из данных грамматик существует самый эффективный алгоритм распознавания цепочек?
12. Ответ:
а)
0-типа:
G= (Т, N, S, R), Т= {a, b, c}, N= {S}, R: S®aFD; F®AFB; FB®bA; AF®D; D® ε
1-типа:
G= {{a, b, c}, {A, B, S}, S, R}, R: S®AaB; aAb®aBbcb; aB®ab.
2-типа:
G1= {{a, b, c}, {A, B, S}, S, R}, R: S®AaB; A®Bbc; B®ab.
3-типа:
G= {{a, b, c}, {A, B, S}, S, R}, R: S®aA; A®cB; B®e
б)
1) G1= {{a, b, c}, {A, B, S}, S, R}; R: S®AaB; A®Bbc; B®ab.
Грамматика 2типа: контекстно-свободная
2) G= {{a, b, c}, {A, B, S}, S, R}; R: S®AaB; aAb®aBbcb; aB®ab.
Грамматика 1типа: контекстно-зависимая
3) G= {{a, b, c}, {A, B, S}, S, R}; R: S®aA; A®cB; B®e
Грамматика 3типа: автоматная
в) Для 2-типа – существует алгоритм, и он более эффективен, а также для 3-типа – существует простой и эффективный алгоритм.
Глава№7
1.Вопрос:
С какой целью множество входных символов обрабатывают двумя автоматами?
1.Ответ:
Множество входных символов обрабатываются двумя автоматами с целью уменьшения размера таблицы переходов.
2.Вопрос:
Какой способ представления состояний называют явным, а какой неявным ?
2.Ответ:
Явный - это способ представления состояния, который заключается в запоминании номера, соответствующего текущему состоянию автомата, в некотором регистре или переменной.
Неявный - это способ, который заключается в том, что для каждого состояния имеется отдельная часть программы. Тот факт, что моделирующий автомат находится в заданном состоянии, «запоминается» тем, что моделирующая программа исполняет часть кода, которая принадлежит этому состоянию.
3.Вопрос:
Составьте таблицу переходов данного автомата для цепочки 001101. Опишите переходы методом вектора переходов и методом списка переходов. Каким из методов это удобнее сделать?
3.Ответ:
Таблица переходов для цепочки 001101:
0 |
1 | |
А |
B |
- |
B |
D |
B |
D |
- |
B |
Вектор переходов для состояния B:
0 |
1 | |
B |
- |
B |
Список переходов для состояния B:
0 |
D |
1 |
B |
Переходы по неудаче - обработчик ошибок
0 |
B |
|
1 |
B |
4.Вопрос:
Построить конечный процессор, имеющий входной алфавит {О, М, С, Ы, И, А, ε} для идентификации множества {САМ, СОМ, САМИ, СОМЫ, МЫС}.
4.Ответ:
О |
М |
С |
Ы |
И |
А |
ε | |
ε |
М |
С |
|||||
М |
МЫ |
||||||
С |
СО |
СА |
|||||
МЫ |
МЫС |
||||||
СО |
СОМ |
||||||
СА |
САМ |
||||||
МЫС |
«МЫС» | ||||||
СОМ |
СОМЫ |
«СОМ» | |||||
САМ |
САМИ |
«САМ» | |||||
СОМЫ |
«СОМЫ» | ||||||
САМИ |
«САМИ» |
Элементы таблицы в кавычках означают, что автомат идентифицировал соответствующее слово. Пустые ячейки соответствуют выходам «слово Ï множеству». Сообщение об ошибке откладывается, пока слово не просмотрено полностью. Переходы не сопровождаются никакими действиями, кроме изменения состояния.
5.Вопрос:
В чем главная сложность применения метода индексов?
5.Ответ:
Сложность применения метода индексов заключается в том, что данный метод применим только в следующих случаях:
6.Вопрос:
Укажите достоинства и недостатки метода линейного списка.
6.Ответ:
Достоинства: Метод легко приспособить к случаю расширяющихся множеств. Можно применять алгоритмы бинарного, логарифмического поиска, хеширования и т.п.
Недостатки: Поиск по длинному списку занимает много времени.
Глава№11
1.Вопрос:
Что понимают под точностью программной системы?
1.Ответ:
Точность - если в программу поступают заданные данные, то на выходе должны быть получены ожидаемые результаты.
2.Вопрос:
Какие группы факторов влияют на комфорт общения?
2.Ответ:
3.Вопрос: Перечислите
основные критерии оценки
3.Ответ:
4.Вопрос:
Назовите правила ведения разговора.
4.Ответ:
Правило 1: Участники разговора должны понимать друг друга.
Правило 2: Нельзя говорить одновременно.
Правило 3: Информация, которую сообщает, новый оратор обычно связана с тем, что говорилось ранее.
5.Вопрос:
Каковы задачи диалогового процесса?
5.Ответ:
Задачи диалогового процесса:
6.Вопрос:
Какие бывают типы сообщений?
6.Ответ:
Подсказка - это выходное сообщение системы, побуждающее пользователя вводить данные.
Входные управляющие сообщения - это данные, вводимые пользователем, которые могут вызвать процесс выполнения данного задания
Сообщение об ошибке - это сигнал диалогового процесса о том, что невозможно дальнейшее выполнение обработки.
Сообщение о состоянии системы - это информация для пользователя о том, что произошло или происходит в системе.
7.Вопрос:
Чем отличается
подсказка от справочной
7.Ответ:
Подсказка - это выходное сообщение системы, побуждающее пользователя вводить данные.
Справочная информация - эта информация может выводиться процессом для пояснения пользователю, что дальше делать и почему.
8.Вопрос:
Какие бывают типы диалоговых процессов?
8.Ответ:
Диалоговые процессы делятся на два класса:
1 - диалог, управляемый системой;
2 - диалог, управляемый пользователем.
9.Вопрос:
Приведите примеры всех вариантов подсказок.
9.Ответ:
а) Меню: любое меню программы
б) Вопрос: элемент ввода Combo Box
в) Форма: элемент ввода Edit Box
г) Запрос на ввод команды: командная строка MS-DOS
10.Вопрос:
Перечислите основные законы диалога.
10.Ответ:
Законы диалога:
Информация о работе Контрольная работа по "Основам трансляции"