OSDev
http://osdev.su/

C++ Grandmaster Certification
http://osdev.su/viewtopic.php?f=2&t=690
Страница 1 из 3

Автор:  Yoda [ 04 фев 2013, 19:15 ]
Заголовок сообщения:  C++ Grandmaster Certification

Прочитал на буржуйском форуме, дублирую здесь.
http://www.cppgm.org/
Учебный курс по созданию с нуля компилятора C++ (стандарт 2011) вместе со всем набором инструментов (линкер, ассемблер) под архитектуру x86-64. Всё это должно быть самодостаточным (self-hosted), то есть, весь набор должен уметь компилировать сам себя. По окончанию курса выдаётся сертификат (если, конечно, сумел закончить :D).

Применительно к ОСДеву помимо очевидных плюсов вижу ещё один неочевидный плюс в самодостаточности компилятора. Да, понятно, что можно портировать GCC. Но это же цельный и неделимый монстр! А карманных компиляторов с С++ нет, есть только с С.
Лично я вижу ещё один аспект. Я давно мечтаю реализовать собственный ЯВУ, в таком случае, высокоуровневые компоненты ОС можно именно на нём и писать.

Однако, одолевают некоторые сомнения. Этот курс создан впервые, до 15 февраля идёт первый набор. Не перегнули ли они палку со сложностью учебной задачи? Да, я читал их ответ в FAQ, но всё же...

Автор:  Freeman [ 04 фев 2013, 20:25 ]
Заголовок сообщения:  Re: C++ Grandmaster Certification

Yoda писал(а):
Я давно мечтаю реализовать собственный ЯВУ, в таком случае, высокоуровневые компоненты ОС можно именно на нём и писать.

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

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

Yoda писал(а):
Однако, одолевают некоторые сомнения.

Меня тоже. Выскажу осторожное предположение: либо курс окажется архисложным и до конца дойдут немногие -- реальные мастера, либо разработка будет в той или иной мере сведена к игре в конструктор из более-менее готовых компонентов.

Автор:  pavia [ 04 фев 2013, 20:55 ]
Заголовок сообщения:  Re: C++ Grandmaster Certification

Цитата:
Однако, одолевают некоторые сомнения. Этот курс создан впервые, до 15 февраля идёт первый набор. Не перегнули ли они палку со сложностью учебной задачи? Да, я читал их ответ в FAQ, но всё же...

Это не учебная задача. А тест на крутость. И для хорошего его прохождения ты уже должен был написать учебный компилятор. Ты уже должен знать как он пишется. А вот то что тесты тебе писать не придётся это плюс.

Тем более у тебя будет вся документация. И тесты.
Если кодить каждый день по 2 часа в день, то к концу года ты закончишь компилятор.

Автор:  Yoda [ 05 фев 2013, 01:24 ]
Заголовок сообщения:  Re: C++ Grandmaster Certification

Freeman писал(а):
Вообще же, как мне кажется, разработать язык сложнее, чем компилятор по готовой спецификации.

А мне кажется, наоборот. Концепция языка сама в голове возникает, когда изучишь несколько языков, прочувствуешь недостатки и преимущества, поимеешь практику и сидишь, делаешь какой-либо крупный проект. Пишешь и думаешь, как остро чего-то не хватает, а что-то лучше было бы сделано по-другому.

Freeman писал(а):
Если, конечно, разработка языка не сводится к косметическим изменениям в каком-либо существующем языке.

По большому счёту, если не считать экстравагантные языки типа Forth, Prolog или Lisp, всё остальное, пожалуй, можно свести к косметическим изменениям друг друга.

Freeman писал(а):
А при наличии проработанной спецификации разработку компилятора можно отдать на подряд.

Так некому отдавать. Новыми языками, как и новыми операционными системами сейчас никого не заинтересуешь.

pavia писал(а):
Это не учебная задача. А тест на крутость.

Написано, что это учебный курс. То есть, конечно и тест, но основа - всё же курс. Учебные заготовки будут давать.

Автор:  Nable [ 06 фев 2013, 01:17 ]
Заголовок сообщения:  Re: C++ Grandmaster Certification

> экстравагантные языки типа Forth, Prolog или Lisp
> экстравагантные
Ну-ну. Про то что хороших (идеологически и с т.з. лаконичности) и используемых в серьёзных задачах языков много - я промолчу, лишь скажу что "Новыми языками, как и новыми операционными системами сейчас никого не заинтересуешь" - неправда. Есть, конечно, нюансы, но суть в том что на "жабе и сишечке" жизнь остановилась лишь у тех кто сам себя ограничил.
Собственно, суть в чём:
> можно свести к косметическим изменениям друг друга.
можно, но не нужно. Многие языки позволяют существенно сократить код (не говоря уж про всякие идеи ООП и data-flow), а это важно как с точки зрения отлова ошибок, так и с т.з. того что жизнь коротка и написать можно лишь конечное число строк кода, так что это количество надо рациональнее использовать.

К слову, всем 10 минут доброго чтива на эту тему: http://erlang.org/pipermail/erlang-ques ... 71949.html

Автор:  Phy [ 06 фев 2013, 10:30 ]
Заголовок сообщения:  Re: C++ Grandmaster Certification

Я бы записался! Но сейчас вообще не вариант... времени нет :cry:

Автор:  Yoda [ 06 фев 2013, 11:05 ]
Заголовок сообщения:  Re: C++ Grandmaster Certification

Написал им запрос по поводу планируемой длительности курса и ожидаемой нагрузки.

pavia писал(а):
Если кодить каждый день по 2 часа в день, то к концу года ты закончишь компилятор.

Ты попал в точку :).
Ожидаемая нагрузка около 10 часов в неделю, т.е. по два часа в рабочий день при длительности курса больше 12 месяцев. Блин, это серьёзно. У меня на мой проект с загрузчиками не получается выделить столько времени. С другой стороны, для меня полноценный компилятор - необходимая работа. Да и работа в группе по расписанию всегда дисциплинирует.
Ладно, запишусь, а там видно будет. Если не потяну, в любой момент можно бросить.

Автор:  ZarathustrA [ 12 фев 2013, 01:45 ]
Заголовок сообщения:  Re: C++ Grandmaster Certification

По моему опыту общения с компиляторостоением, написать компилятор С++ на С\С++ достаточно эпическая задача. Red Dragon Book вам в помощь! И поверть эта написаная в стиле Кнута книга вам ооочень пригодиться и мозг вы на ней сломаете конкрентно (стиль изложения там такой). НО! Но книга несомненно полезная.

Мое имхо. Если вы хотите забросить ОС и заняться разработкой компиляторов и языков, то оно того стоит. Два эпичных проекта единовременно не потянуть. Один из них вытянуть за уровень песочницы, уже требует неимоверных усилий и трудозатрат.

Автор:  ZarathustrA [ 12 фев 2013, 01:48 ]
Заголовок сообщения:  Re: C++ Grandmaster Certification

И еще пять копеек. Курсе на втором писал простенький (очень простенький) компилятор. Что запомнилось - это сам процесс разработки. Сначала недели пилишь модели диаграммы конечных автоматов, а потом по модели кодишь часа два-четыре и подругому никак. Теория и теоретическая проработка решает.

Автор:  Yoda [ 12 фев 2013, 10:21 ]
Заголовок сообщения:  Re: C++ Grandmaster Certification

ZarathustrA писал(а):
Red Dragon Book вам в помощь!

Уже изучаю.

ZarathustrA писал(а):
И поверть эта написаная в стиле Кнута книга вам ооочень пригодиться и мозг вы на ней сломаете конкрентно (стиль изложения там такой).

Да не, пока всё понятно.

ZarathustrA писал(а):
Мое имхо. Если вы хотите забросить ОС и заняться разработкой компиляторов и языков, то оно того стоит. Два эпичных проекта единовременно не потянуть.

Об одновременности речь не идёт. Я хочу последовательно. Просто чем дальше в ОС, тем больше упираешься в необходимость компилятора с ЯВУ. На С работать не хочется, он очень сильно устарел. С++, несмотря на то, что это лучший на сегодня язык, многих проблем не решает, тянет за собой проблемы С (по совместимости) и добавляет малую толику новых. Java не годится для системного программирования. Другие языки ещё хуже.

На курс записался. Потом опишу здесь впечатления.

Страница 1 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/