philosoff's.community.forum

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » philosoff's.community.forum » Учеба и ВМК. » Вопросы по СП


Вопросы по СП

Сообщений 1 страница 30 из 205

1

Схема работы «чистого» компилятора: (исходная программа на ЯП) -> ЛА + СА + КУ + генерация кода -> (объектный модуль)

что есть КУ?

0

2

контекстные условия

он же семантик анализ

0

3

контекстные условия

он же семантик анализ

о! пасиба... теперь я въехал

0

4

Схема работы «чистого» компилятора: (исходная программа на ЯП) -> ЛА + СА + КУ + генерация кода -> (объектный модуль)

что есть КУ?

"Жёлтые штаны - два раза ку!"

0

5

где можно найти вопрос:
10.Задача разбора. Дерево вывода. ?

0

6

где можно найти вопрос:
10.Задача разбора. Дерево вывода. ?

Про деревья разбора в методичке есть.

0

7

угум...

А откуда брать первые четыре теоретических вопроса?

1. Этапы жизненного цикла программного продукта.
2. Состав и схема функционирования классической системы программирования.
3. Типы трансляторов, особенности интерпретаторов и компиляторов. Смешанная стратегия трансляции.
4. Общая схема работы компилятора.

0

8

угум...

А откуда брать первые четыре теоретических вопроса?

1. Этапы жизненного цикла программного продукта.
2. Состав и схема функционирования классической системы программирования.
3. Типы трансляторов, особенности интерпретаторов и компиляторов. Смешанная стратегия трансляции.
4. Общая схема работы компилятора.

Я бы брал из головы. Первое и второе - чистая болтология.

0

9

угум...

А откуда брать первые четыре теоретических вопроса?

1. Этапы жизненного цикла программного продукта.
2. Состав и схема функционирования классической системы программирования.
3. Типы трансляторов, особенности интерпретаторов и компиляторов. Смешанная стратегия трансляции.
4. Общая схема работы компилятора.

у меня есть файлик с частью ответов на теорию... тока я хз как его выложить

0

10

ну не знаю, не знаю...

на первый, во всяком случае, можно дать вполне однозначный ответ:
1) проектирование
2) кодирование
3) тестирование и отладка
4) внедрение
5) поддержка

может и на остальные есть ответы вроде этого...

0

11

ответы на вышеперечисленные вопросы а также многое другое вы найдёте здесь:
ВОТ ЗДЕСЬ

За этот документ +1 Ярику в репу

0

12

Выкладываю ссылки на варианты зачётов за 2002-й, 2003-й и 2005-й годы (вдруг у кого-нибудь их ещё нет):

2002
2003
2005 - Вариант 1
2005 - Вариант 2

Взято с cmcmsu.no-ip.info и cmcspec.ru.

Отредактировано DiMan (2007-06-03 22:26:35)

0

13

Вот ещё, конспект лекций И.А.Волковой за 2004-й год (его, что интересно, выполнили ребята из 204-й группы  :)  )

Взято с fds-net.ru.

Отредактировано DiMan (2007-06-03 22:27:16)

0

14

Да, у меня есть такой вопросик: помнится, в ночь перед коллоквиумом появился достаточно рульный конспект лекций Руденко этого года (правда, я об этом узнал только утром перед сдачей). Очень хотелось бы проботать продолжение оного...  :) Оно существует в природе?

Отредактировано DiMan (2007-06-03 22:09:18)

0

15

Да, у меня есть такой вопросик: помнится, в ночь перед коллоквиумом появился достаточно рульный конспект лекций Руденко этого года (правда, я об этом узнал только утром перед сдачей). Очень хотелось бы проботать продолжение оного...  :) Оно существует в природе?

Есть рукописный контекст Руденко. За 2003-й.

http://uploaded.to/?id=h17hsh

0

16

Да, у меня есть такой вопросик: помнится, в ночь перед коллоквиумом появился достаточно рульный конспект лекций Руденко этого года (правда, я об этом узнал только утром перед сдачей). Очень хотелось бы проботать продолжение оного...  :) Оно существует в природе?

если ты про файлик от Шаповалова и ко, то есть продолжение, правда кривоватое. если надо, вышлю аськой

0

17

вышли мне

0

18

Тём, а может, всё-таки на всеобщее пользование? Выложи здесь, плз. Или мне на почту пришли...

0

19

Тём, а может, всё-таки на всеобщее пользование? Выложи здесь, плз. Или мне на почту пришли...

Поддерживаю!

0

20

вышли мне

это то, что я тебе высылал

0

21

Вот результат моего сегодняшнего забота теории по СП - краткие ответы на теоретические вопросы курса.

Это переработка материала, предоставленного Ярославом, включающая в себя инфу из "Формальных грамматик и языков" Руденко, конспекта лекций И. А. Волковой за 2004-й год и конспекта лекций Т. В. Руденко за 2007-й год.

Пока в ней отсутствуют следующие вопросы:
20. Объектная модель лексического анализатора. Схема его работы.
26. Объектная модель синтаксического анализатора.
27. Использование исключений С++ при обработке синтаксических ошибок и нарушении контекстных условий.
30. ПОЛИЗ выражений.
32. Генерация ПОЛИЗа выражений и операторов.
34. Использование исключений С++ при обработке ошибок периода выполнения.
36. Принципы реализации виртуальных функций.

Соответственно, выношу их на повестку дня.  :)  И если по 20, 26 и 27 я ещё могу что-то сказать, то остальные 4 перечисленных вопроса пока вгоняют меня в ступор.  :ph34r:  Каким боком здесь оказались виртуальные функции, мне вообще непонятно.

UPD. Версия немного обновлена.

Отредактировано DiMan (2007-06-04 22:26:29)

0

22

У меня пара вопросов по машинно-независимой оптимизации (приводимые куски встречались и в исходном тексте, и в том, который remade by DiMan)
1)

Код:
a)	Удаление бесполезных присваиваний
a=b*c;  d=b+c;  a=d*c; => p=2a;  a=b*c;  d=*p+c;  a=d*c;

Я полагал, что лишним тут является только первое присваивание
Во что это оптимизируется, мне ну совсем непонятно  :blink:
Что такое p=2a? и что за звездочку мы от него берем?
В общем, налицо или куча опечатаг, или мое банальное невтыкание во все происходящее... Дим, ты проверял эту тему? Если нет, проверь плз

Похожие претензии к:

Код:
d)	Перестановка операций:
a=2*b*3+c; => a=(2*3)*(b*c);

и

Код:
e)	Арифметические преобразования:
a=c+b*d; => a=b*(c+d);

0

23

Да; я, если честно, не проверял это место, понадеялся на исходник...  :blink:
Сейчас попробую разобраться...

0

24

Думаю, должно быть так:

Код:
a) Удаление бесполезных присваиваний
a=b*c;  d=b+c;  a=d*c; => d=b+c;  a=d*c;
Код:
d) Перестановка операций:
a=2*b*3*c; => a=(2*3)*(b*c);
Код:
 
e) Арифметические преобразования:
a=b*c+b*d; => a=b*(c+d);

Соответственно обновил выложенную версию.

Отредактировано DiMan (2007-06-04 22:31:16)

0

25

Могу ответить на вопрос ПОЛИЗ выражений:

ПОЛИЗ выражений задаётся следующими правилами:
1) Если Е является простым (единственным) операндом, то его ПОЛИЗ - это и есть этот операнд Е

2) ПОЛИЗом выражения Е1 * Е2,  где * - любая бинарная операция, а Е1 и Е2 - её операнды, является запись Е1' E2' *, где Е1' и Е2' - ПОЛИЗ запись выражений Е1 и Е2 соответственно

3) ПОЛИЗом выражения * Е,  где * - любая унарная операция, а Е - её операнд, является запись Е' *, где Е' - ПОЛИЗ запись выражения Е

4) ПОЛИЗом выражения (Е) является ПОЛИЗ выражения Е

______________________________________________________________________________

но остальные вопросы остаются тёмным лесом и для меня. Ответьте, кто знает, плз!!!

0

26

27. Использование исключений С++ при обработке синтаксических ошибок и нарушении контекстных условий.

Тут все просто. Пихаете throw в анализатор, а вызов анализатора завертывате в catch. Если используется метод рекурсивнго спуска, то ошибка может возникать на большом уровне вложенности и, если не использовать исключения, вам прийдется гемороиться чтобы выйти из этого уровня вложенности и передать сообщение об ошибке. Прийдется делать функции с побочным эффектом, обрабатывать возникновение ошибок во вложенных функциях. А с исключениями: раз, и оно провалилось на нужный уровень, вышло из рекурсии. Удобно.

30. ПОЛИЗ выражений.

Это в руденко подробно есть.
1) Если есть переменная или константа, то её полиз - имя переменной или константа соответсвенно.
2) Если есть выражение A*B где A и B какие-то выражения, а * любая двуместная операция, то её полиз AB*.
3) Если есть одноместная операция *A то её полиз A*.

32. Генерация ПОЛИЗа выражений и операторов.

Оно в Руденко есть. Во время рекурсивного спуска генерим. Для генерации операторов вводим новые операции, как то переход, условный переход, read, write и т.п. Вводим новый тип: адрес переменной. А в остальном синтез для операторов не отличается от синтеза для выражений.

34. Использование исключений С++ при обработке ошибок периода выполнения.

А тут они хотят как их использовать или как оно работает?

36. Принципы реализации виртуальных функций.

Я знаю один способ: помимо тех свойст класса, которые мы задаем явно, каждый объект этого класса имеет таблицу указателей на функции. При вызове виртуальной функции, происходит обращение в эту таблицу, оттуда берется адрес и туда передается управление. Таблица эта заполняется при создании объекта класса.
Дальше уже можно извращаться на тему общей таблицы функций и присваивания классам уникальных идентификаторов, что жолжно сократить объем используемой памяти и т.п.

0

27

Это всё классно, спасибо, но вот на экзамене просто написать "тут все просто, пихаем throw в анализатор, а вызов анализатора завертываем в catch", я думаю, не получится.  :blink:

0

28

Эх, хотел вставить ответы в тот документ, но не смог его отформатировать. Стили - это очень удобная штука! Только народ вместо этого использует смену шрифтов и размеров шрифтов. Надо бы эту менюшку по дефолту прятать как можно дальше, а стили выносить на главную панель.

0

29

я кое-что переправил в файлике, конкретнее: добавил ответы по вопросам 27, 30, 32. И ещё дополнил ответ на вопрос 31.
Посмотрите, скажите, если что исправить.

del (неправильно прочитал вопрос  :X: )

Обновлённую версию можно взять тут

Отредактировано S-Strange (2007-06-05 14:14:37)

0

30

НО! Подчёркиваю, что до сих пор остаются неотвеченными следующие вопросы:

20. Объектная модель лексического анализатора. Схема его работы.
26. Объектная модель синтаксического анализатора.
34. Использование исключений С++ при обработке ошибок периода выполнения.
36. Принципы реализации виртуальных функций. (Лёхин ответ мне не понравился)

А до экзамена остальсь 1,5 дня. Если есть идеи, выкладывайте! Вместе что-нить наклепаем...

0


Вы здесь » philosoff's.community.forum » Учеба и ВМК. » Вопросы по СП