Главная » Просмотр файлов » Теормин (2015)

Теормин (2015) (1157551)

Файл №1157551 Теормин (2015) (Теормин)Теормин (2015) (1157551)2019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

1. Инструкция внутреннего представления программы current_pos=initial_pos+16*stepТаблица символов (ТС)Внутреннее имяВнешнее имяАнализатор лексикиАтрибутыid1current_posintid2initial_posintnm316intid4stepint〈id,1〉〈=〉〈id,2〉〈+〉〈nm,3〉〈*〉〈id,4〉Внутреннее представление 1(2):инструкции вида: х ← op, y, zгде х, y, z – абстрактныеобласти памяти, отведенные подсоответствующие переменныеПоследовательность токеновАнализатор синтаксисаДерево разбораДерево разбораАнализатор семантикиАбстрактное синтаксическоедерево(АСД – Внутреннеепредставление 1)=〈id,1〉+〈id,2〉*〈nm,3〉Внутреннее представление 2(3):операции вида: OP X, Y, Z,где Х, Y, Z – регистры илиадреса ячеек памяти;операции объединяются в командыСтрока исходной программы〈id,4〉Генератор внутреннегопредставленияt1 ← *,nm3,id4t2 ← +,id2,t1id1 ← t2Внутреннее представление 22.

Виды инструкций◊ Инструкции присваивания(х, y и z – имена (адреса) переменных или константы):х ← op, y, zвыполнить бинарную операцию ор над операндами y и zи поместить результат в хх ← op, yвыполнить унарную операцию ор над операндом yи поместить результат в хх ← yскопировать значение переменной y в переменную хх[i] ← yпоместить значение y в i-ю по отношению к х ячейку памятих ← y[i]поместить значение i-ой по отношению к y ячейки памяти в х Инструкции перехода:goto LБезусловный переход: следующей будет выполнена инструкция сметкой LifTrue x goto LУсловный переход: если х истинно, следующей будет выполненаинструкция с меткой LifFalse x goto LУсловный переход: если х ложно, следующей будет выполненаинструкция с меткой L◊ Процедуры:param хПередача фактического параметра вызываемой процедуре (если вызываемаяпроцедура имеет n параметров, то инструкции ее вызова предшествует n нструкцийparamcall p, nВызов процедуры p, имеющей n параметровreturn yВозврат из процедурыy – необязательное возвращаемое значение3.

Базовый блок (определение)Базовым блоком (или линейным участком) называетсяпоследовательность следующих друг за другом трехадресных команд,обладающая следующими свойствами:(1)поток управления может входить в базовый блок только черезего первую инструкцию, т.е. в программе нет переходов всредину базового блока;(2)поток управления покидает базовый блок без останова иливетвления, за исключением, возможно, в последней инструкциибазового блока.4. Как выделить базовый блок••Строится упорядоченное множество НББ (начало базового блока, либо перваяинструкция программы, либо место, куда указывает оператор условного/безусловногоперехода, либо первая инструкция после инструкции перехода)Каждому НББ соответствует ББ, который определяется как последовательностьинструкций, содержащая само НББ и все инструкции до следующего НББ (не включаяего) или до конца программы.5.

Множества Input и output для базового блока Каждый базовый блок задается тройкой объектов: B = 〈P, Input, Output〉,где P – последовательность инструкций блока B, Input – множество переменных,определения которых достигают блока B, Output –множество переменных, живыхпосле блока B.6. Локальная оптимизацияОптимизация в пределах одного базового блока.Оптимизация – это выполнение следующих преобразований:• Удаление общих подвыражений (инструкций, повторно вычисляющих ужевычисленные значения).• Удаление мертвого кода (инструкций, вычисляющих значения, которыевпоследствии не используются).• Сворачивание констант.• Изменение порядка инструкций, там, где это возможно, чтобы сократить времяхранения временного значения на регистре.Все указанные преобразования можно выполнить за один просмотр ББ, еслипредставить его в виде ориентированного ациклического графа (ОАГ).• Все задачи локальной оптимизации позволяет решить метод локальнойнумерации значений.• Избыточные вычисления внутри базового блока автоматически удаляются впроцессе построения ОАГ (ориентированного ациклического графа).• Множества Input и Output позволяют фиксировать использованиенеинициализированных переменных и исключить присваивание значениймертвым переменным.8.

Локальный метод нумерации значенийПредставление ОАГ в виде таблицы значений•Каждая строка таблицы значений представляет один узел ОАГ.•Первое поле каждой записи представляет собой код операции••Каждой правой части операции 〈op, left, right〉, где ор – код операции, а leftи right – левый и правый операнды, соответствует ее сигнатура〈op,#left, #right〉, где ор – код операции, а #left и #right – номера значенийлевого и правого операндов (у унарных операций #right равен 0).Унарные операции id и nm определяют соответственно имена переменных иконстанты (листовые узлы).• (7) Номер значения – это номер строки таблицы значений (ТЗ), в которой•определяется это значениеАлгоритм (на псевдокоде) построения ОАГ для базового блока B, содержащего nинструкций вида ti ← Opi, li, ri. Функция #val(s) определяет номерзначения, определяемого сигнатурой s = (Op, #val(l), #val(r)).for each "ti ← Opi, li, ri" dosi = (Opi, #val(li), #val(ri))if(ТЗ содержит sj == si)then вернуть j в качестве значения #val(si)elseзавести в ТЗ новую строку ТЗkзаписать сигнатуру si в строку ТЗkвернуть k в качестве значения #val(si)9.

Ориентированный ациклический граф - ОАГ, в котором в одну вершинуобъединены вершины синтаксического дерева, представляющие общиеподвыражения для базового блока. a = а + y*(b +(y-z)*b)+(y-z)* bt15t26t37t48t55t66t79a10←←←←←←←←-,*,+,*,-,*,+,+,y3, z4t15, b2b2, t26y3, t37y3, z4t55, b2t48,t66a1, t79Выражение в промежуточномпредставлении+aссылка в ТСссылка в ТСссылка в ТСссылка в ТС352381idididid*+*++# зна- КОПчения# операнда426769# операндаОпределение значения (сигнатура)+t7a* t6y t3 +t5 -b t2 * yt1yabyzt1, t5t2, t6t3t4t7aПрисоединенныепеременные+ t7at4 *Таблица значений(ТЗ)12345678910+at4 *+ t3bz- t1,t5zbyz* t2,t6bАСДОАГТаблица символов (ТС)Внутреннее имяВнешнее имяАтрибутыid1current_posintnm316int10. Граф потока управления - множество всех возможных путейисполнения программы, представленное в виде ориентированногографа, вершинами которого являются ББ.11.

Как построить ГПУВход: последовательность трехадресных инструкций.Выход: список базовых блоков для данной последовательностиинструкций, такой что каждая инструкция принадлежит толькоодному базовому блоку.Метод:1. Строится упорядоченное множество НББ (начало базового блока, либо перваяинструкция программы, либо место, куда указывает оператор условного/безусловногоперехода, либо первая инструкция после инструкции перехода)2. Каждому НББ соответствует ББ, который определяется как последовательностьинструкций, содержащая само НББ и все инструкции до следующего НББ (не включаяего) или до конца программы.3.

Строится множество дуг графа потока управления:• если последняя инструкция ББ не является инструкцией перехода, строитсядуга, соединяющая ББ со следующим ББ;• если последняя инструкция ББ является инструкцией безусловного перехода,строится дуга, соединяющая ББ с ББ, НББ которого имеет соответствующую метку;• если последняя инструкция ББ является инструкцией условного перехода, строятсяобе дуги.12. Региональная оптимизация - оптимизация в пределах нескольких базовыхблоков (например, суперблока).B113.

Суперблок - расширенный базовый блок Eопределяется как множество базовых блоков B1, B2,…, Bn, где у блока B1 может быть несколькопредшественников, а каждый из блоков Bi, 2 ≤ i ≤ nB2B4B5имеет в суперблоке единственного предшественника.Блоки Bi ∈ E формируют дерево с корнем B1. Усуперблока E может быть несколько выходов на блокиB6B7B3(или суперблоки), не входящие в состав E.Можно выделить три суперблока: {B1, B2, B4, B5, B6}, {B7} и {B3}. Блоки B7 и B3 имеютпо два предшественника, поэтому их нельзя включить в суперблок больших размеров14.

Глобальная оптимизация - оптимизация в пределах процедуры.15. Точки программы (…, pj , pj+1 , pj+2 , …) расположены между ее инструкциями(…, Ij , Ij+1 , …) и характеризуют соответствующие состояния программы.pj. . .Ijpj+1Ij+1pj+2. . .In[B]16. Входной точкой ББ является входная точка его первойBинструкции. Выходной точкой ББ является выходная точкаего последней инструкции.Out[B]17. Состояние программы – множество значений всех переменных программы,включая переменные в кадрах стека времени выполнения, находящихся нижетекущей вершины стека.18-20. Передаточная функцияПара состояний во входной и выходной точках фрагмента определяет передаточныефункции этого фрагмента: передаточная функция прямого обхода ( f ) переводитсостояние во входной точке в состояние в выходной точке, а передаточная функцияобратного обхода ( fb ) переводит состояние в выходной точке в состояние во входной точке.Для инструкций:Out[ I j ] = f I j ( In[ I j ]),Для ББ: по определениюIn[ I j ] = f b (Out[ I j ])IjIn[B] = In[I1], Out[B] = Out[In].

Передаточнаяфункция fB блока B по определению равна композиции передаточных функций егоинструкций I1,...,In :илиf B ( x) = f I n ( f I n−1 (... f I1 ( x)...)) = ( f I1  f I 2  ...  f I n )( x)f B = f I1  f I 2  ...  f I nи, соотв.,fB = fI  fIbbbnn −1b ... f I121. Определением переменной х называется инструкция, которая присваиваетзначение переменной х. Каждое новое определение переменной х убивает еепредыдущее определение.22. Использованием переменной х является инструкция, одним из операндовкоторой является переменная х.23. Определение d достигает точки p, если существует путь от точки,непосредственно следующей за d, к точке p, такой, что вдоль этого пути dостается живым. Для достигающих определений передаточная функция fIинструкции I может быть записана в виде: f I ( x ) = genI ∪ ( x − kill I )24.

Характеристики

Тип файла
PDF-файл
Размер
421,59 Kb
Материал
Высшее учебное заведение

Тип файла PDF

PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.

Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6547
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее