Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.
Здравствуйте, Aviator, Вы писали:
A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора.
...
Здравствуйте, Aviator, Вы писали:
A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.
Здравствуйте, Mc_Leod, Вы писали:
M_L>Здравствуйте, Aviator, Вы писали:
A>>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.
M_L>Ахо, Сети, Ульман. M_L>"Компиляторы. Принципы, технологии, инструменты" однозначно.
Нет, этот вариант мне не нравится, огромное количество ненужного в курсе материала, отсутсвии практики.
Здравствуйте, Aviator, Вы писали:
A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.
Здравствуйте, Aviator, Вы писали:
Z>>Еще из рекомендованного списка литеретуры: Z>>Aho, Sethi and Ullman Z>>Compilers: Principles, Techniques and Tools (Dragon book)
A>есть, но не очень нравится обилием информации, скорее как справочник и нет ООП.
ООП посмотри в книжке
Пратт. Зелковиц. Языки программирования: разработка и реализация. Классика CS — в издательстве Питер издана...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
В книге рассматриваются вопросы сравнительного анализа языков программирования и конструирование компиляторов. В первой части издания подробно обсуждаются языки Ява и Си#. Большое внимание уделяется Оберону — одному из самых совершенных языков программирования. В этой книге впервые публикуется его спецификация на русском языке. Также приводятся результаты оригинальных исследований языков программирования. Вторая тема книги — конструирование компиляторов. Рассматриваются все элементы транслятора и этапы реализации языка от спецификации до формирования машинного кода, а также приводится полный исходный текст компилятора на нескольких языках программирования. При работе над книгой автор сделал акцент на понятное, конструктивное и интересное изложение материала. Книга адресуется студентам вузов, специализирующимся по компьютерным технологиям, программистам-практикам и всем, кто интересуется программированием. Предполагается, что читатель имеет начальные навыки программирования и обладает математической подготовкой в пределах программы средней школы Допущено министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности (направлению) 010200 (510200) — прикладная математика и информатика.
Правда есть одна неприятность. Из за того, что это сочинение является не просто обычной книгой, а именно учебным пособием рекомендованным для ВУЗов, в издательстве произошла какая-то заминка с получением каких-то не-то лицензий, не-то каких-то ещё официальных разрешений, которыми должны обладать все официально рекомендованные учебные пособия. Поэтому до сих пор этот учебник ещё не напечатан, так и застрял в издательстве. Будь это не учебник, а просто обычная книга, ещё год назад бы издали — первоначально планировали издать к сентябрю 2005 года. Остаётся надеяться, что хоть к сентябрю 2006 года издадут
Здравствуйте, Kh_Oleg, Вы писали:
K_O>Здравствуйте, Aviator, Вы писали:
A>>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.
K_O>N. Wirth, Compiler Construction
Нет уж, самый совершенный язык оберон идёт лесом Не хотел никого обидеть — просто не считаю изучение этого языком оправданным и уж тем более мучить этим неокрепшие умы.
Здравствуйте, Aviator, Вы писали:
A>Здравствуйте, Kh_Oleg, Вы писали:
K_O>>Здравствуйте, Aviator, Вы писали:
A>>>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора. Есть Креншоу, но у него код плохо струтурирован и на Паскале + не рассматривается объектно-ориентированное программирование + насколько я помню компиляция осуществояется в какой то левый ассемблер, который приличному ассемблеру для PC не скормить. Есть серия статей по написани. компилятора в NET. Однако там маловато теории и нету чёткой разбивки кода по главам. Может что посоветуете ? Заранее благодарен за высказывание любой точки зрения.
K_O>>N. Wirth, Compiler Construction
A>Нет уж, самый совершенный язык оберон идёт лесом Не хотел никого обидеть — просто не считаю изучение этого языком оправданным и уж тем более мучить этим неокрепшие умы.
Тебе Оберон изучить надо и принципы построения компиляторов понять? Первого в книге немного, а вот второе изложено очень неплохо.
Здравствуйте, 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>>Нет уж, самый совершенный язык оберон идёт лесом Не хотел никого обидеть — просто не считаю изучение этого языком оправданным и уж тем более мучить этим неокрепшие умы.
Тебе Оберон изучить надо или принципы построения компиляторов понять? Первого в книге немного, а вот второе изложено очень неплохо.
Здравствуйте, Aviator, Вы писали:
A>Нет уж, самый совершенный язык оберон идёт лесом Не хотел никого обидеть — просто не считаю изучение этого языком оправданным и уж тем более мучить этим неокрепшие умы.
А у Вас какая цель-то?
Реально работающий компилятор написать или понты пораскинуть?
Если реально работающий компилятор написать, то Oberon наилучший выбор.
Сергей Губанов wrote: > А у Вас какая цель-то? > Реально работающий компилятор написать или понты пораскинуть? > Если реально работающий компилятор написать, то Oberon наилучший выбор.
Как сказать... В книге не затронуты возможности оптимизации, не затронут
вариант компиляции через промежуточное представление и т.п. То есть как
введение в теорию компиляции — она очень хорошо написана, но для
написания чего-то более серьезного уже нужно читать дальше.
Есть хорошая книжка "A Retargetable C Compiler" David R. Hanson,
Christopher W. Fraser (не знаю, есть ли русские переводы).
Здравствуйте, Cyberax, Вы писали:
C>Есть хорошая книжка "A Retargetable C Compiler" David R. Hanson, C>Christopher W. Fraser (не знаю, есть ли русские переводы).
спасибо за ссылку, поищу, язык не имеет значения, даже на английском предпочтительнее.
По оберону боюсь отвечать а то опять разведут флуд.
C>"Дракона" и "Тигра" тут уже упомянули.
Здравствуйте, Kh_Oleg, Вы писали:
K_O>Тебе Оберон изучить надо или принципы построения компиляторов понять? Первого в книге немного, а вот второе изложено очень неплохо.
Надо дать практические навыки разработки компиляторов. ОНабивать руку на разрабюотку в левом, невострубованном языке по моему совершенно неверно. Логичнее взять популярный язык, который пригодится ученикам в дальнейшем и набтватьт руку на разработку компиляторов в этом языке, в этом случае студенты сразу получают возможность активно включится в какой либо коммерческий проект, а не получать академичиские знания.
Здравствуйте, Aviator, Вы писали:
A>Здравствуйте, Kh_Oleg, Вы писали:
K_O>>Тебе Оберон изучить надо или принципы построения компиляторов понять? Первого в книге немного, а вот второе изложено очень неплохо.
A>Надо дать практические навыки разработки компиляторов. ОНабивать руку на разрабюотку в левом, невострубованном языке по моему совершенно неверно. Логичнее взять популярный язык, который пригодится ученикам в дальнейшем и набтватьт руку на разработку компиляторов в этом языке, в этом случае студенты сразу получают возможность активно включится в какой либо коммерческий проект, а не получать академичиские знания.
Тогда flex+bizon нужно использовать...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Aviator, Вы писали:
A>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ? Интересует как теория, так и прилагающийся к теории код, желательно на C#/C++/Java (в порядке предпочтения). Хотелось бы выработать небольшой комактный курс, в течении которого бы писался рабочий вариант компилятора.
Вот такой вариант подойдет? Ссылка на английскую версию не работает, но можно попробовать найти.
Д.К. << RSDN@Home 1.1.4 stable rev. 510>>
Все на свете должно происходить медленно и неправильно...
Здравствуйте, mefrill, Вы писали:
M>Здравствуйте, Aviator, Вы писали:
A>>Уважаемый ALL, существует ли в природе хороший законченный и достаточно полный тюториал по созданию компилятора ?
M>Мне кажется, это как раз то, что тебе нужно. Коды открыты и в книжке весь код объяъсняется. Есть даже специальная группа по этому поводу.
ага, неплохой вариант, только саму книжку не видно