Контрольная работа по "Основам трансляции"
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ВОЛГОГРАДСКИЙ
ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
ФАКУЛЬТЕТ ПОДГОТОВКИ ИНЖЕНЕРНЫХ КАДРОВ
КАФЕДРА САПР и ПК
Контрольная работа
по курсу: «Основы трансляции»
Выполнил:
Глава № 1
- Вопрос:
Обоснуйте необходимость разработки новых формальных языков и трансляторов.
- Ответ:
Есть две причины, почему приходиться разрабатывать новые языки и соответственно, трансляторы с них:
а) Универсальный язык не всегда удобен в конкретной узкой области – или громоздок, или не подходит модель, взятая за его основу, или…
б) САПР создается для конечных пользователей – конструкторов и технологов, следовательно, взаимодействие с САПР должно вестись на удобном для пользователя языке. Конструкторы и технологи не обязаны знать программирование. Элементы вновь созданного языка должны быть близки к области, в которой работают конструкторы. Пользователь должен легко оперировать знакомыми и понятными ему терминами.
- Вопрос:
Чем языки проектирования отличаются от языков программирования?
2. Ответ:
Языки проектирования – языки, предназначенные для описания информации об объекте и процессе проектирования.
Языки программирования – формальные языки для описания данных (информации) и алгоритма (программы) их обработки на ЭВМ. Основу языков программирования составляют алгоритмические языки.
- Вопрос:
По каким признакам классифицируют языки проектирования?
3. Ответ:
Языки проектирования классифицируются по следующим признакам:
а) По месту в процессе проектирования, которые в свою очередь делятся:
1) Входные
2) Внутренние
3) Промежуточные
4) Выходные
5) Сопровождения
6) Управления
б) По связи с универсальными ЯП
1) Автономные
2) Расширяющие
в) По оперативности
1) Диалоговые
2) Пассивные
г) По способу представления информации
1) Алф-цифровые
2) Графические
3) Голосовые
4) Смешанные
- Вопрос:
Перечислите требования к языкам проектирования.
4. Ответ:
Требования к языкам проектирования:
- Эффективность – точность передачи задания пользователя и лаконичность записи.
- Полнота – возможность описания всех объектов проектирования, а также всех действий, имеющих отношение к цели проектирования конкретной САПР.
- Непротиворечивость – каждое предложение, сформулированное в терминах данного языка с использованием правил (синтаксиса) данного языка должно иметь естественную семантическую интерпретацию (смысл).
- Расширяемость – обеспечение возможности дополнения языка в соответствии с развитием предметной области.
- Выразительность и проблемная ориентация – обеспечение простоты изучения и использования языков проектировщиками – не программистами. Языки должны быть близки к естественному.
Глава № 2
- Вопрос:
В чем состоит задача трансляции?
1. Ответ:
Задача трансляции – построить алгоритм, осуществляющий перевод программы, написанной на языке L1 в требуемый выход (в частности, на другой язык).
- Вопрос:
Какой тип языкового процессора называют компилятором? Препроцессором? Интерпретатором?
2. Ответ:
Компилятором – называют транслятор, у которого язык L2 (объектный язык) – язык машинных команд.
Препроцессором – называют транслятор, у которого язык L2 (объектный язык) – язык высокого уровня.
Интерпретатором – называют транслятор, который не выдает результата на языке L2, а сразу выполняет действие.
- Вопрос:
Из каких основных блоков обычно состоит компилятор?
3. Ответ:
Компилятор обычно состоит из следующих блоков:
1) Лексического
2) Синтаксического
3) Генератора кода
Иногда дополнительно используются:
1) Семантический блок
2) Блок оптимизации
- Вопрос:
Что понимается под лексемой при разработке компилятора?
4. Ответ:
Лексема – совокупность форм и значений, свойственных одному и тому же слову во всех его употреблениях и реализациях.
- Вопрос:
Какова главная
функция лексического блока?
5. Ответ:
Лексический блок – устанавливает из каких частей состоит данная цепочка и преобразует части в лексемы.
Синтаксический блок (парсер) – переводит последовательность лексем, построенную сканером, в последовательность лексем, которая непосредственно отражает порядок, в котором должны выполняться операции в программе.
Генератор кода) – «развертывает» атомы, построенные синтаксическим блоком в последовательность команд ЭВМ.
- Вопрос:
Опишите входную и выходную информацию при обработке каждым блоком компилятора следующей программы:
Begin a:=5; b:=a+7*(2*a/b-abc)/40b; end
6. Ответ:
Лексический блок:
Входная инф.:
Begin a:=5; b:=a+7*(2*a/b-abc)/40b; end
Выходная инф.:
Begin | a | := | 5| ; | b | := | a | + | 7 | * | ( | 2 | * | a | / | b | - | abc | ) | / | 40b | ; | end
Begin (1,0)
a (30,1)
:= (24,0)
5(40,1)
; (20,0)
b (30,2)
:= (24,0)
a (30,1)
+ (22,0)
7 (40,2)
* (23,0)
( (25,0)
2 (40,3)
* (23,0)
a (30,1)
/ (23,1)
b (30,2)
- (22,1)
abc (30,3)
) (26,0)
/ (23,1)
40b (30,4)
; (20,0)
end (2,0)
Синтаксический блок:
Входная инф.:
Выходная инф. с лексического блока.
Выходная инф.:
begin
сум(5,0,a)
умнож(2,а,R1)
дел(R1,b,R2)
выч(R2,abc,R3)
умнож(7,R3,R4)
дел(R4,40b,R5)
сум(a,R5,b)
end
Генератора кода
Входная инф.:
Выходная инф. с синтаксического блока.
Выходная инф.:
Выполнение программы
Глава №3
- Вопрос:
Что понимается под словарем языка? Синтаксисом? Семантикой?
1. Ответ:
Словарь языка содержит множество лексем.
Синтаксис языка представляет собой совокупность правил построения языковых конструкций (предложений) из лексем.
Семантика языка это совокупность правил интерпретации лексем и языковых конструкций.
- Вопрос:
В чем суть метода синтаксически-ориентированной трансляции?
2. Ответ:
Метод синтаксически-ориентированной трансляции, основанный на работах американского ученого Ноэля Хомского. Из гипотезы Хомского следует, что семантический анализ сводится к синтаксическому и состоит из двух процедур:
- распознавание структуры входного предложения;
- построение выходного текста (действий) на основе этой структуры.
- Вопрос:
Назовите основные понятия теории формальных языков.
3. Ответ:
Основные понятия теории формальных языков:
Словарь – это конечное множество элементов, называемых символами.
Цепочка над словарем V – это произвольная упорядоченная последовательность символов словаря.
Пустая цепочка – это цепочка, не содержащая символов (обозначается e).
- Вопрос:
Перечислите основные операции над цепочками.
4. Ответ:
Операции над цепочками:
- Конкатенация (склеивание) – бинарная операция на множестве V*.
Если a, bÎV*, то результат конкатенации – цепочка ab.
- Подстановка – замена некоторой цепочки заданной цепочки a цепочкой b: a= aabcc, b= bca, g= abcac.
- Вопрос:
Что называется языком над словарем?
5. Ответ:
Языком над словарем V называется некоторое множество цепочек над словарем V.
Обозначение: L(V)Î V*.
- Вопрос:
Дан словарь V={a, в, с}. Приведите примеры конечного и бесконечного языков над данным словарем.
6. Ответ:
- L={авс, аавс, васс} Это пример конечного языка, состоящего из трех цепочек.
- L={an , вn , сn} (n³0). aaaвввсссÎ L, aaaвсÏL. Это пример языка содержащего бесконечное количество цепочек.
- Вопрос:
Дан язык L={синий лес, синий темный лес, темный лес}. Приведите примеры словарей, над которыми можно определить этот язык.
7. Ответ:
V1={синий, лес, темный}
V2={с,и,н,й,л,е,т,м,ы}
Глава №4
1. Вопрос:
К какому описанию языка применим термин формальная грамматика?
1. Ответ:
Термин «формальная грамматика» применим к любому определению формального языка, основанному на грамматических правилах, с помощью которых можно порождать и анализировать цепочки аналогично тому, как грамматики используются при изучении естественных языков.
2. Вопрос:
Опишите при помощи грамматики язык, состоящий из следующих предложений:
Зеленый крокодил видит зеленый лес.
Большой зеленый крокодил видит лес.
Крокодил видит большой зеленый лес.
Крокодил видит зеленый лес.
2. Ответ:
V={крокодил, лес, зеленый, большой, видит}
Правила:
1) <предложение>®<подлежащее><
2)<подлежащее>®<
<существительное>
3) <дополнение >®<прилагательное><
<существительное>
4) <прилагательное>®зеленый | большой | большой зеленый
5) <существительное>®лес | крокодил
6) <сказуемое>®видит
3. Вопрос:
Дайте определение порождающей грамматики Хомского
3. Ответ:
Порождающей грамматикой Хомского – называется грамматика, которая «порождает» (выводит) множество называемое языком.
4. Вопрос:
Задайте с помощью грамматики Хомского следующий язык: L={aab, abab, abc, aabc}. Постройте дерево вывода для одной из цепочек языка.
4. Ответ:
G0=(T0 , N0 , S , R0)
T0={a,b}
N0={A,B,S}
R0:
S®aAb|aBc
A®a|ba
B®b|ab
S®aAb® abab
aab
5. Вопрос:
Пусть грамматика G содержит следующие правила: bA®acBc, aBc®c. Выводимы ли в данной из цепочки a=acbAacaBc цепочки b= acacBcacc, g= acacBcaca ? Докажите.
Дана грамматика G: G= (Т, N, S, R), Т= {a, b}, N= {A, B, S}, R: S®aS
bA®ab
aS®bA
Какой язык задает данная грамматика? Постройте вывод цепочки языка. Приведите пример сентенциальной формы для данного вывода.
5.Ответ:
1) a=acbAacaBc
b= acacBcacc
a=acbAacaBc® acacBcacaBc ® acacBcacc=b
g= acacBcaca
так как грамматика G содержит следующие правила: bA®acBc, aBc®c.
из a можно вывести b и нельзя вывести g
2) Дана грамматика G: G= (Т, N, S, R), Т= {a, b}, N= {A, B, S}, R: S®aS
bA®ab
aS®bA
Язык L={(a)nb; n>=1}
S®aS®aaS®abA®aab
Cентенциальные формы: aS,aaS,abA
6. Вопрос:
Приведите пример продукции, задающей процесс усвоения знаний студентом на лекции.
6. Ответ:
Выучи лекции, если хочешь сдать экзамен, ответь на билет и получи отличную оценку.
Выучи лекции – условие применимости ядра
если хочешь сдать экзамен - ядро продукции
ответь на билет и получи отличную оценку - постусловия продукции
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.Ответ:
Законы диалога:
- диалог не вынуждает существенно подменять свои традиционные способы работы;
- стиль сообщения должен быть разговорным, а не письменным;
- избегать фамильярности;
- добавление имени пользователя в запросе быстро надоедает;
- фразы не должны требовать дополнительных пояснений;
- допустимо использовать жаргонизмы при условии использования их в среде пользователя;
- важен порядок запроса системой информации, необходимо придерживаться порядка, в каком пользователь обычно обрабатывает информацию;
- не следует заставлять человека вручную обрабатывать информацию перед вводом или после вывода;
- при размещении данных на экране необходимо соблюдать последовательность и место вывода сообщения на экран;
- в диалоге пользователь не должен вводить незначащие цифры или символы;
- не нужно запрашивать информацию, которая была введена ранее или которая может быть сформирована автоматически;
- объекты следует вводить в уникальной форме;
- не требовать от пользователя информации, которая не используется в системе;
- ввод по умолчанию;
- сокращения не должны быть двусмысленными и неестественными;
- по возможности использовать идентификаторы из одной буквы или цифры;
- выходные сообщения должны содержать только ту информацию, которая запрашивалась.

- Контрольная работа по "Основам уголовного права"
- Контрольная работа по "Основам уголовного права"
- Контрольная работа по основам управления
- Контрольная работа по "Основам управления"
- Контрольная работа по "Основам управления"
- Контрольная работа по "Основам управления интеллектуальной собственностью"
- Контрольная работа по «Основам управления перевозочным процессом»
- Контрольная работа по «Основам технологии производства и переработки продукции животноводства»
- Контрольная работа по «Основам технологии производства и ремонта»
- Контрольная работа по "Основам тифлопедагогики и психологии"
- Контрольная работа по "Основам товароведению"
- Контрольная работа по "Основам товароведения"
- Контрольная работа по "Основам товароведения"
- Контрольная работа по "Основам торгового бизнеса"