Home Техника Принцип на компилация (MOC, предоставен от Harbin Institute of Technology)

Принцип на компилация (MOC, предоставен от Harbin Institute of Technology)



Естество на курса

Предистория на курса

Световният компютърен учен Алфред В. Ахо написа в първото изречение на глава 1 от „Компилатор“: „Напишете компилатор Принципът и технологията на компютъра има универсално значение, така че в изследователската кариера на всеки компютърен учен принципът и технологията в тази книга ще бъдат използвани многократно. Това изречение посочва принципа на компилация в курса на компютърните науки Важна позиция Обучаемите, които са използвали езици за програмиране на високо ниво за писане на програми, знаят, че когато една програма е въведена в компютъра, компютърът може да работи според хората намерения. Машинният код, съставен от 0 и 1, е езикът, който може да бъде директно разбран от компютъра. Следователно програма, написана на език от високо ниво, трябва в крайна сметка да бъде "преведена" в машинен код, съставен от 0 и 1 преди нея може да се изпълни на компютъра Този процес на превод се нарича компилация.

Цели на адаптиране

Принципите на компилация са насочени главно към студенти, изучаващи компютърни науки, и практикуващи свързани технологии.

Информация за започване на курса

< td width="311" height="30">

24 февруари 2020 г. ~ 31 юли 2020 г.

Брой започнати курсове

Начален час

Учител

Брой участници

Първият час започва

04 септември 2017 г. ~ 31 декември 2017 г.

Chen Yin, Guo Yong

10399

Вторият старт на класа

05 март 2018 г. ~ 2018-07 г. 31-во число на месеца

16424

Третият старт на класа

03 септември 2018 г. ~ 31 декември 2018 г.

Chen Yin, Guo Yong, Tu Zhiying, Huang Cheng

11272

Започва 4-ти клас

td>

18 февруари 2019 г. ~ 31 юли 2019 г.

Chen Yin, Guo Yong 、Tu Zhiying

17757

Започва 5 клас

td>

02 септември 2019 г. ~ 31 декември 2019 г.

14153

Започва 6 клас

< p>14168

Започва 7 клас

31 август 2020 г. ~ 31 януари 2021 г.

Предстои уточняване

Според официалния уебсайт на MOOC на Китайския университет, графикът за първия до седмия старт на курса е 3~5 часа на седмица.

Въведение в курса

Има 20 лекции за принципите на компилиране, които основно преподават основните теории и технологии за проектиране и внедряване на компилатор. Сред тях първата лекция въвежда концептуалните знания за принципите на компилация; втората и третата лекция въвеждат езика за програмиране и неговото съдържание за граматика и лексикален анализ; четвъртата до 14-та лекция въвеждат граматически анализ (части 1 до 4) и граматически насочен превод (част 1~3), междинно генериране на код (части 1~4); Лекция 15 въвежда знанията за работата на компютъра и разпределението на паметта; Лекции 16 до 20 въвеждат разширеното съдържание на оптимизацията на код (част 1 до 4) и реализирането на генериране на код.

Схема на курса

< td height="30">

4-14LALR метод за анализ

td>< td height="30">

Лекция 2 Език за програмиране и неговата граматика

< td height="30">

Бележки от тази лекция (PDF файл)

< td height="30">

Бележки за тази лекция (PPT документ)

tr>< /tr> tr>< td height="30">

8-15 Изтриване на индуктивни променливи

tr>

Лекция 1 Въведение

6-9 запълване на отчети за контролен поток

1-1 Какво е компилация

4-15 LR анализ на двусмислена граматика

Превод на 6-10switch statement

1-2 Структурата на системата за компилиране

Бележки за тази лекция (PPT документ)

Превод на изречения за извикване на процедура от 6-11

1-3 Преглед на лексикалния анализ

Обработка на грешки в 4-16LR анализ

Симулационни упражнения в тази лекция (без да се броят точките)

1-4 Общ преглед на анализа на синтаксиса

Симулационни упражнения за тази лекция (без точкуване)

Бележки за тази лекция (PDF файл)

1-5 Преглед на семантичния анализ

Бележки от лекции (PDF файл)

p>

Лекция 14 Тест (точкуване)

1-6 Преглед на генерирането на междинен код и бекенда на компилатора

[Дискусия 7-1] Защо сливането на концентрични набори от артикули не води до промяна в завръщането. Относно конфликт?

Бележки за тази лекция (PPT документ)

Симулационни упражнения в тази лекция (без точкуване)

[Дискусия 7-2] Защо методът за анализ LALR не извършва грешна операция за преместване?

Лекция 15 Изпълнение на разпределението на хранилището

Бележки от лекции (PDF файл)

Лекция 7 Тест (точкуване)

7-1 Преглед на текущото разпределение на паметта

【Дискусия 1-1 】Връзката между процеса на компилиране и процеса на ръчен превод

Лекция 8 Граматически насочен превод 1

7-2 Разпределение на статично хранилище

【Дискусия 1-2 】Дизайнът на полето NAME в таблицата със символи

5-1 Общ преглед на превода, ръководен от граматиката

7-3 Разпределение на подредено хранилище

Лекция 1 Тест (точкуване)

td>

5-2 Дефиниция на ръководство за синтаксис SDD

7-4 Поредица от повиквания и последователност за връщане

Бележки от лекции (PPT документ)

5-3 ред за оценка на SDD

7-5 Достъп до нелокални данни

5-4S-дефиниция на атрибут и дефиниция на L-атрибут

Таблица със 7-6 символа

2-1 Основни понятия

Симулационни упражнения в тази лекция (без точкуване)

Създаване на таблица със 7-7 символа

2-2 Дефиниция на закона

Бележки от тази лекция (PDF файл)

Този разговор за симулационни упражнения (без точки)

2-3 дефиниция на езика

[Дискусия 8-1] Как да представим семантична информация?

Бележки за тази лекция (PDF файл)

2-4 Класификация на граматиката

[Дискусия 8-2] Как да изчислим семантичните атрибути?

[Дискусия 15-1] Как да конструирам верига за достъп въз основа на таблицата със символи?

Дърво за анализ на 2-5CFG

[Дискусия 8-3] Как да определим дали даден атрибут е изчерпателен атрибут или наследен атрибут?

[Дискусия 15-2] Как да осъществя достъп до нелокални данни въз основа на таблицата със символи?

Симулационни упражнения за тази лекция (без точкуване)

[Дискусия 8-4] Какъв вид SDD може да гарантира реда, в който се изчисляват неговите атрибути?

Лекция 15 Тест (точкуване)

Бележки от тази лекция (PDF документ)

Бележки от тази лекция (PPT документ)

Бележки за тази лекция (PPT документ)

[Дискусия 2-1] Да в компютъра Как да изразя език?

[Дискусия 8-5] Защо S-SDD и L-SDD могат да гарантират съществуването на ред за изчисляване на атрибути?

Урок 16 Оптимизиране на код 1

[Дискусия 2-2] Може ли всеки тип дума да се разглежда като език?

Лекция 8 Тест (точкуване)

Бележки от лекции (PPT документ)

Лекция 2 Тест (точкуване)

Лекция 9 Граматически насочен превод 2

8-1 Блок-схема

< /td>

Бележки за тази лекция (PPT документ)

Тази лекция Бележки към курса (PPT документ)

8-2 Често използвани методи за оптимизация на код (1)

Урок 3 Лексикален анализ

5-5 Граматически направляван проект за превод SDT

8-3 Често използвани методи за оптимизиране на код (2)

3-1 регулярен израз

5-6 превода в процеса на нерекурсивен прогнозен анализ

< /td>

8-4 Оптимизиране на основни блокове

3-2 Редовна дефиниция

Симулационни упражнения за тази лекция (без точкуване)

Този разговор за симулационни упражнения (без точки)

3-3 крайни автомата

Бележки от тази лекция (PDF файл)

< /td>

Класификация на 3-4 крайни автомата

【 Дискусия 9-1] Защо SDT на S-SDD може да бъде приложен едновременно в процеса на синтактичен анализ?

Лекция 16 Тест (точкуване)

3-5 От регулярни изрази до крайни автомати

[Дискусия 9-2] Разширение на нерекурсивен прогнозен анализатор

Лекция 17 Оптимизиране на код 2

3-6 Преобразуване от NFA в DFA

Лекция 9 Тест (точкуване)

3-7 DFA за разпознаване на думи

Лекция 10 Граматически насочен превод 3

8-5 анализ на потока от данни

Тази лекция е симулационно упражнение (не се оценява)

td>

Бележки за тази лекция (PPT документ)

8-6 Анализ на определена стойност при пристигане

Бележки от лекции (PDF файл)

5-7 Превод в процеса на рекурсивен прогнозен анализ

8-7 Изчисляване на уравнението за достигане на фиксирана стойност

Урок 3 Тест (точкуване)

5-8L-атрибут, дефиниран Превод отдолу нагоре

Симулационни упражнения за тази лекция (без точкуване)

Бележки от лекции (PPT документ)

Симулационни упражнения за тази лекция (не се оценяват)

td>

Бележки за тази лекция (PDF файл)

< p>Лекция 4 Синтаксисен анализ 1

Бележки от лекцията (PDF файл)

Урок 17 Тест (точкуване)

4-1 отгоре Преглед на анализа надолу

[Дискусия 10-1] Разширение на рекурсивния прогнозен анализатор

Урок 18 Оптимизация на код 3

4-2 Преобразуване на граматика p>

[Дискусия 10-2] Промяна на плана за граматика и превод

Тази лекция Бележки към курса (PPT документ)

4-3LL(1) Граматика

Тест за урок 10 (точкуване)

8-8 Анализ на активни променливи

Симулационни упражнения за тази лекция (без точкуване)

Не. 11 Говорете за междинно генериране на код 1

8-9 налични анализи на изрази

Бележки за тази лекция (PDF файл)

израз от тип 6-1

td>

Симулационни упражнения за тази лекция (без точкуване)

4- 4 Изчисляване на ПЪРВИ набор и СЛЕДВАЩ набор

6-2 Превод на изречения с твърдения

< p>Бележки от лекции (PDF документ)

Бележки от лекции (PPT документ)

td>

Симулационни упражнения за тази лекция (без точкуване)

Тест на лекция 18 (точкуване)

Лекция 4 Тест (точкуване)

< /td>

Бележки за тази лекция (PDF документ)

Лекция 19: Оптимизация на код 4

Лекция 5 Синтаксисен анализ 2

[Дискусия 11-1] Как да изчислим израза на типа и ширината на масив?

Бележки за тази лекция (PPT документ)

4-5 Метод за рекурсивен прогнозен анализ

Лекция 11 Тест (точкуване)

8-10 доминиращи възли и задни ръбове

4-6 Метод за нерекурсивен прогнозен анализ

Този материал за лекционен курс (PPT документ)

8-11 Естествена циркулация и нейното разпознаване

4-7 Обработка на грешки при прогнозен анализ

Урок 12 Генериране на междинен код 2

8-12 Изтриване на общи общи подизрази и копиране на изречения

Тази лекция е симулационно упражнение (не се оценява)

6-3 превод на прости изречения със задачи

8-13 движение на кода

Бележки за тази лекция (PDF документ)

6-4 Превод на препратки към масив

8-14 Отслабването на интензитета, действащ върху индуктивната промяна

Урок 5 Тест (точкуване)

Симулационни упражнения за тази лекция (без точкуване)

Бележки за тази лекция (PPT документ)

Бележки от тази лекция (PDF файл)

Симулация на тази лекция Практически въпроси (без оценка)

Лекция 6: Граматичен анализ 3

[Дискусия 12-1] Превод на адресиране на елемент от масив

Бележки от лекции (PDF документ)

Бележки от лекции (PPT документ)

Лекция 12 Тест (точкуване)

Лекция 19 Тест (точкуване) )

4-8 преглед на анализа отдолу нагоре

Бележки от лекции (PPT документ)

Лекция 20 Генериране на код

Общ преглед на метода за анализ 4-9LR

Лекция 13 Генериране на междинен код 3

Бележки за тази лекция (PPT документ)

4-10LR(0) анализ

Бележки за тази лекция (PPT документ)

< /td>

Основните задачи на генератора на код 9-1

4 -11LR (0) алгоритъм за изграждане на таблица за анализ

6-5 оператор на контролен поток и неговия SDT

9-2 Опростен модел на целева машина

Симулационни упражнения за тази лекция (без точки)

6-6 Булев израз и неговия SDT

9-3 Избор на команда

Бележки от лекции (PDF файл)

6-7 пример за превод на контролен поток

9-4 избор на регистър Избор

[Дискусия 6-1] Връзката между натискащи надолу автомати и крайни автомати

Симулационни упражнения за тази лекция (без точкуване)

9-5 функция за избор на регистър getReg Design

[Дискусия 6-2] Връзката между информацията за състоянието и информацията за граматическия символ в стека за граматичен анализ на LR< /p>

Бележки за тази лекция (PDF файл)

9-6 оптимизация на шпионка

Лекция 6 Тест (точкуване)

Урок 13 Тест (точкуване)

Симулационни упражнения за тази лекция (без точкуване)

Лекция 7 Синтаксисен анализ 4

Лекция 14 Генериране на междинен код 4

Бележки от лекции (PDF документ)

4-12SLR анализ

Запълване на 6-8 булеви израза

Лекция 20 Тест (точкуване)

4 -13LR (1) анализ

(Забележка: оформлението на учебната програма е отляво на дясната колона)

Подготовка преди класа

Предварителни познания

Преди да научите принципите на компилиране, трябва да подготвите езици за програмиране за напреднали, структури от данни, колекции и професионални знания като теория на графите.

Учебни материали

Учебните материали за принципите на компилация включват „Принципи на компилация (2-ро издание): издание за бакалавърско обучение“ и „Принципи на компилация“.

< td width="261" height="30">

"Компилатори: Принципи, техники и инструменти(второ издание)"

Заглавие на книгата

< p>Автор

ISBN

< p>Време на публикуване

Издател

"Принципи на компилация (второ издание): Издание за бакалавърско обучение"

(САЩ) Алфред В.Ахо

9787111269298

2009 г

Преса за машиностроителна индустрия

Алфред В. Ахо и др.

------

td>

2006 г.

Pearson Education, Inc p>

"Принципи на компилиране"

Jiang Zongli и др.

9787040290585

2010 г

Преса за висше образование

Референтни материали за съдържание на таблици

Спечелени отличия

През 2018 г. принципът на компилация беше одобрен от Китайската народна република, признат от Министерството на образованието като „Национален отличен онлайн отворен Курс“.

Профил на учител

Чен Ин, жена, доцент и главен преподавател в катедрата по компютърни технологии, Харбинския технологичен институт.

Гуо Йонг, мъж, преподавател в Харбинския технологичен институт.

Tu Zhiying, мъж, националност Хан, роден през 1983 г., доктор по инженерни науки, доцент и главен преподавател в Училището по компютърни науки и технологии, Харбинския технологичен институт (Вейхай).

This article is from the network, does not represent the position of this station. Please indicate the origin of reprint
TOP