Компиляция
От: Aviator  
Дата: 05.05.06 20:59
Оценка:
Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.
Re: Компиляция
От: z00n  
Дата: 06.05.06 00:00
Оценка: 22 (3) +1
Здравствуйте, Aviator, Вы писали:

A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора.

...

Сейчас модно учить по курсу "Modern Compiler Implementation in C|Java|ML (aka Tiger book)".
Расписания, конспекты, задания etc. несложно найти по запросу:
http://www.google.com/search?q=compiler+course+handouts+appel+site:.edu


Еще из рекомендованного списка литеретуры:
Aho, Sethi and Ullman
Compilers: Principles, Techniques and Tools (Dragon book)

Steven Muchnick
Advanced Compiler Design and Implementation (Whale book)

Keith D. Cooper, Linda Torczon
Engineering a Compiler (Ark book)
Re: Компиляция
От: Mc_Leod  
Дата: 06.05.06 03:33
Оценка:
Здравствуйте, Aviator, Вы писали:

A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.


Ахо, Сети, Ульман.
"Компиляторы. Принципы, технологии, инструменты" однозначно.
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[2]: Компиляция
От: Aviator  
Дата: 06.05.06 03:57
Оценка:
Здравствуйте, Mc_Leod, Вы писали:

M_L>Здравствуйте, Aviator, Вы писали:


A>>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.


M_L>Ахо, Сети, Ульман.

M_L>"Компиляторы. Принципы, технологии, инструменты" однозначно.


Нет, этот вариант мне не нравится, огромное количество ненужного в курсе материала, отсутсвии практики.
Re[2]: Компиляция
От: Aviator  
Дата: 06.05.06 04:05
Оценка:
Здравствуйте, z00n, Вы писали:



Z>Сейчас модно учить по курсу "Modern Compiler Implementation in C|Java|ML (aka Tiger book)".


Да, спасибо, нижечку нашёл, правда пока не удалось нарыть в сети исходники к ней.


Z>Еще из рекомендованного списка литеретуры:

Z>Aho, Sethi and Ullman
Z>Compilers: Principles, Techniques and Tools (Dragon book)

есть, но не очень нравится обилием информации, скорее как справочник и нет ООП.

Z>Steven Muchnick

Z>Advanced Compiler Design and Implementation (Whale book)
Z>Keith D. Cooper, Linda Torczon
Z>Engineering a Compiler (Ark book)

Этого не нашёл,существует ли в электронном виде ?
Re[3]: Компиляция
От: A.Lokotkov Россия http://www.linkedin.com/pub/alexander-lokotkov/a/701/625
Дата: 06.05.06 05:08
Оценка: 3 (1)
Здравствуйте, Aviator, Вы писали:

Z>>Сейчас модно учить по курсу "Modern Compiler Implementation in C|Java|ML (aka Tiger book)".


A>Да, спасибо, нижечку нашёл, правда пока не удалось нарыть в сети исходники к ней.


Исходники там же.
bloß it hudla
Re: Компиляция
От: Kh_Oleg  
Дата: 06.05.06 07:24
Оценка: 3 (2)
Здравствуйте, Aviator, Вы писали:

A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.


N. Wirth, Compiler Construction
Re[3]: Компиляция
От: LaptevVV Россия  
Дата: 06.05.06 07:36
Оценка:
Здравствуйте, Aviator, Вы писали:

Z>>Еще из рекомендованного списка литеретуры:

Z>>Aho, Sethi and Ullman
Z>>Compilers: Principles, Techniques and Tools (Dragon book)

A>есть, но не очень нравится обилием информации, скорее как справочник и нет ООП.

ООП посмотри в книжке
Пратт. Зелковиц. Языки программирования: разработка и реализация. Классика CS — в издательстве Питер издана...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Компиляция
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 06.05.06 07:49
Оценка:
Здравствуйте, Aviator, Вы писали:

A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора?


Кроме книги Вирта, ссылку на которую уже дали, ещё существует учебное пособие:

Свердлов С. З.
Языки программирования и методы трансляции: Учебное пособие
http://www.piter.com/book/978546900378/

В книге рассматриваются вопросы сравнительного анализа языков программирования и конструирование компиляторов. В первой части издания подробно обсуждаются языки Ява и Си#. Большое внимание уделяется Оберону — одному из самых совершенных языков программирования. В этой книге впервые публикуется его спецификация на русском языке. Также приводятся результаты оригинальных исследований языков программирования. Вторая тема книги — конструирование компиляторов. Рассматриваются все элементы транслятора и этапы реализации языка от спецификации до формирования машинного кода, а также приводится полный исходный текст компилятора на нескольких языках программирования. При работе над книгой автор сделал акцент на понятное, конструктивное и интересное изложение материала. Книга адресуется студентам вузов, специализирующимся по компьютерным технологиям, программистам-практикам и всем, кто интересуется программированием. Предполагается, что читатель имеет начальные навыки программирования и обладает математической подготовкой в пределах программы средней школы Допущено министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности (направлению) 010200 (510200) — прикладная математика и информатика.

Правда есть одна неприятность. Из за того, что это сочинение является не просто обычной книгой, а именно учебным пособием рекомендованным для ВУЗов, в издательстве произошла какая-то заминка с получением каких-то не-то лицензий, не-то каких-то ещё официальных разрешений, которыми должны обладать все официально рекомендованные учебные пособия. Поэтому до сих пор этот учебник ещё не напечатан, так и застрял в издательстве. Будь это не учебник, а просто обычная книга, ещё год назад бы издали — первоначально планировали издать к сентябрю 2005 года. Остаётся надеяться, что хоть к сентябрю 2006 года издадут
Re[2]: Компиляция
От: Aviator  
Дата: 06.05.06 12:35
Оценка:
Здравствуйте, Kh_Oleg, Вы писали:

K_O>Здравствуйте, Aviator, Вы писали:


A>>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.


K_O>N. Wirth, Compiler Construction


Нет уж, самый совершенный язык оберон идёт лесом Не хотел никого обидеть — просто не считаю изучение этого языком оправданным и уж тем более мучить этим неокрепшие умы.
Re[3]: Компиляция
От: Kh_Oleg  
Дата: 06.05.06 13:00
Оценка:
Здравствуйте, Aviator, Вы писали:

A>Здравствуйте, Kh_Oleg, Вы писали:


K_O>>Здравствуйте, Aviator, Вы писали:


A>>>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.


K_O>>N. Wirth, Compiler Construction


A>Нет уж, самый совершенный язык оберон идёт лесом Не хотел никого обидеть — просто не считаю изучение этого языком оправданным и уж тем более мучить этим неокрепшие умы.


Тебе Оберон изучить надо и принципы построения компиляторов понять? Первого в книге немного, а вот второе изложено очень неплохо.
Re[4]: Компиляция
От: Kh_Oleg  
Дата: 06.05.06 13:01
Оценка:
Здравствуйте, Kh_Oleg, Вы писали:

K_O>Здравствуйте, Aviator, Вы писали:


A>>Здравствуйте, Kh_Oleg, Вы писали:


K_O>>>Здравствуйте, Aviator, Вы писали:


A>>>>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.


K_O>>>N. Wirth, Compiler Construction


A>>Нет уж, самый совершенный язык оберон идёт лесом Не хотел никого обидеть — просто не считаю изучение этого языком оправданным и уж тем более мучить этим неокрепшие умы.


Тебе Оберон изучить надо или принципы построения компиляторов понять? Первого в книге немного, а вот второе изложено очень неплохо.

опечатка...
Re[3]: Компиляция
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 06.05.06 13:02
Оценка: +2
Здравствуйте, Aviator, Вы писали:

A>Нет уж, самый совершенный язык оберон идёт лесом Не хотел никого обидеть — просто не считаю изучение этого языком оправданным и уж тем более мучить этим неокрепшие умы.


А у Вас какая цель-то?
Реально работающий компилятор написать или понты пораскинуть?
Если реально работающий компилятор написать, то Oberon наилучший выбор.
Re[4]: Компиляция
От: Cyberax Марс  
Дата: 06.05.06 13:50
Оценка: 1 (1)
Сергей Губанов wrote:
> А у Вас какая цель-то?
> Реально работающий компилятор написать или понты пораскинуть?
> Если реально работающий компилятор написать, то Oberon наилучший выбор.
Как сказать... В книге не затронуты возможности оптимизации, не затронут
вариант компиляции через промежуточное представление и т.п. То есть как
введение в теорию компиляции — она очень хорошо написана, но для
написания чего-то более серьезного уже нужно читать дальше.

Есть хорошая книжка "A Retargetable C Compiler" David R. Hanson,
Christopher W. Fraser (не знаю, есть ли русские переводы).

"Дракона" и "Тигра" тут уже упомянули.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[5]: Компиляция
От: Aviator  
Дата: 06.05.06 19:03
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Есть хорошая книжка "A Retargetable C Compiler" David R. Hanson,

C>Christopher W. Fraser (не знаю, есть ли русские переводы).

спасибо за ссылку, поищу, язык не имеет значения, даже на английском предпочтительнее.
По оберону боюсь отвечать а то опять разведут флуд.

C>"Дракона" и "Тигра" тут уже упомянули.
Re[5]: Компиляция
От: Aviator  
Дата: 07.05.06 08:42
Оценка:
Здравствуйте, Kh_Oleg, Вы писали:

K_O>Тебе Оберон изучить надо или принципы построения компиляторов понять? Первого в книге немного, а вот второе изложено очень неплохо.


Надо дать практические навыки разработки компиляторов. ОНабивать руку на разрабюотку в левом, невострубованном языке по моему совершенно неверно. Логичнее взять популярный язык, который пригодится ученикам в дальнейшем и набтватьт руку на разработку компиляторов в этом языке, в этом случае студенты сразу получают возможность активно включится в какой либо коммерческий проект, а не получать академичиские знания.
Re[6]: Компиляция
От: LaptevVV Россия  
Дата: 07.05.06 09:43
Оценка:
Здравствуйте, Aviator, Вы писали:

A>Здравствуйте, Kh_Oleg, Вы писали:


K_O>>Тебе Оберон изучить надо или принципы построения компиляторов понять? Первого в книге немного, а вот второе изложено очень неплохо.


A>Надо дать практические навыки разработки компиляторов. ОНабивать руку на разрабюотку в левом, невострубованном языке по моему совершенно неверно. Логичнее взять популярный язык, который пригодится ученикам в дальнейшем и набтватьт руку на разработку компиляторов в этом языке, в этом случае студенты сразу получают возможность активно включится в какой либо коммерческий проект, а не получать академичиские знания.

Тогда flex+bizon нужно использовать...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Компиляция
От: conraddk Россия  
Дата: 07.05.06 21:51
Оценка:
Здравствуйте, Aviator, Вы писали:

A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора.

Вот такой вариант подойдет? Ссылка на английскую версию не работает, но можно попробовать найти.
Д.К. << RSDN@Home 1.1.4 stable rev. 510>>
Все на свете должно происходить медленно и неправильно...
Re: Компиляция
От: mefrill Россия  
Дата: 08.05.06 06:49
Оценка:
Здравствуйте, Aviator, Вы писали:

A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ?


Мне кажется, это как раз то, что тебе нужно. Коды открыты и в книжке весь код объяъсняется. Есть даже специальная группа по этому поводу.
Re[2]: Компиляция
От: Aviator  
Дата: 08.05.06 18:57
Оценка:
Здравствуйте, mefrill, Вы писали:

M>Здравствуйте, Aviator, Вы писали:


A>>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ?


M>Мне кажется, это как раз то, что тебе нужно. Коды открыты и в книжке весь код объяъсняется. Есть даже специальная группа по этому поводу.


ага, неплохой вариант, только саму книжку не видно
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.