интересно только программистам итд.
Oct. 2nd, 2006 08:49 pmВот любопытная штука: образец написания компилятора для начинающих, на примере простого компилятора значительной части Scheme (сам компилятор написан тоже на Схеме). Подход интересен тем, что компилятор строится снизу вверх, начиная с тривиального подмножества языка, расширяя каждый раз небольшими кусочками и делая рефакторинг существующего кода. При этом на каждой стадии у вас есть полностью работающий компилятор (для все более растущего подмножества языка), что очень помогает с точки зрения мотивации и понимания, ясное дело.
Ссылка выше ведет на объясняющую статью [11 стр.], а не сам tutorial[50 стр.]; есть также файлы с тестами.
Программисты - давайте обсудим следующее высказывание: каждый программист должен уметь написать компилятор и в своей жизни сделать это хотя бы раз (пусть для ненастоящего, но не совершенно тривиального языка). Я с этим утверждением согласен, а вы?
Да, и еще: сегодня 2 октября, как раз хороший день для заданий себе на следующий месяц, так что даю публичное обещание себе к концу месяца знать Лисп на сносном (для читателя, а не чукчи) уровне. А то я уже много лет собираюсь, один раз даже добрался до середины неплохого учебника, но бросил как раз когда нетривиальные вещи начинались, черт бы меня побрал. Вот год назад все очень эту новую книгу хвалили, с нее и начну, пожалуй.
no subject
Date: 2006-10-02 06:55 pm (UTC)no subject
Date: 2006-10-02 06:58 pm (UTC)no subject
Date: 2006-10-02 07:01 pm (UTC)no subject
Date: 2006-10-02 07:03 pm (UTC)no subject
Date: 2006-10-02 07:06 pm (UTC)no subject
Date: 2006-10-02 07:07 pm (UTC)no subject
Date: 2006-10-02 07:08 pm (UTC)Я изучал вирусы в 92-94 гг., в то же время, в какое увлекался ассемблером и demo scene (хотя ничего серьезного в этой последней не сделал). Помню, как изучал вирусы в дебаггере, продирался сквозь саморасшифровку и stealth-маскировку нескольких относительно продвинутых, и написал свой, который перехватывал кучу функций int21, int13, клавиатуру, заражал... кажется, только COM-файлы, я не дописал EXE-обработку ;) и естественно не выпустил его никуда.
no subject
Date: 2006-10-02 07:08 pm (UTC)Ради его утверждения написал четыре реализации Forth.
no subject
Date: 2006-10-02 07:14 pm (UTC)Интерпретаторы считаются?:))
no subject
Date: 2006-10-02 07:17 pm (UTC)no subject
Date: 2006-10-02 07:18 pm (UTC)no subject
Date: 2006-10-02 07:23 pm (UTC)А вот библиотеку оконного интерфейса я написал на Прологе! И убежден, что это один из примеров такой извращенности, какую нелегко переплюнуть :)
no subject
Date: 2006-10-02 07:25 pm (UTC)Одно дело "системный инженер", другое дело человек по заказу моментально производящий формочки для эккаунтинг приложений, и третье дело человек "программирующий" SAS и кроме статистики ничего по большому счету не знаюший
Все одинаково важно
Хотя конечно системщик должен знать как работает компилятор и хотя бы раз в жизни собрать его обязательно
no subject
Date: 2006-10-02 07:27 pm (UTC)no subject
Date: 2006-10-02 07:30 pm (UTC)no subject
Date: 2006-10-02 07:35 pm (UTC)А насчет компилятора - нет, не считаю - программисты - они всякие бывают. Я вот не писал компилятора и не стремлюсь. А еще я никогда не работал с базами данных, не писал клиент-сервер, мултисрединг и пр. И ничего :)
no subject
Date: 2006-10-02 07:38 pm (UTC)Осталось построить дом и вырастить сына
Date: 2006-10-02 07:38 pm (UTC)Тема моей дипломной работы: "Разработка специализированного компилятора языка Фортран-77" :)
no subject
Date: 2006-10-02 07:44 pm (UTC)"каждый программист должен уметь написать программу и в своей жизни сделать это хотя бы раз"
no subject
Date: 2006-10-02 07:44 pm (UTC)no subject
Date: 2006-10-02 07:49 pm (UTC)Есть еще такое понятие - программист.
no subject
Date: 2006-10-02 07:50 pm (UTC)no subject
Date: 2006-10-02 07:50 pm (UTC)no subject
Date: 2006-10-02 07:51 pm (UTC)no subject
Date: 2006-10-02 07:52 pm (UTC)Посыл понят :)