avva: (Default)
[personal profile] avva

Вот любопытная штука: образец написания компилятора для начинающих, на примере простого компилятора значительной части Scheme (сам компилятор написан тоже на Схеме). Подход интересен тем, что компилятор строится снизу вверх, начиная с тривиального подмножества языка, расширяя каждый раз небольшими кусочками и делая рефакторинг существующего кода. При этом на каждой стадии у вас есть полностью работающий компилятор (для все более растущего подмножества языка), что очень помогает с точки зрения мотивации и понимания, ясное дело.

Ссылка выше ведет на объясняющую статью [11 стр.], а не сам tutorial[50 стр.]; есть также файлы с тестами.

Программисты - давайте обсудим следующее высказывание: каждый программист должен уметь написать компилятор и в своей жизни сделать это хотя бы раз (пусть для ненастоящего, но не совершенно тривиального языка). Я с этим утверждением согласен, а вы?

Да, и еще: сегодня 2 октября, как раз хороший день для заданий себе на следующий месяц, так что даю публичное обещание себе к концу месяца знать Лисп на сносном (для читателя, а не чукчи) уровне. А то я уже много лет собираюсь, один раз даже добрался до середины неплохого учебника, но бросил как раз когда нетривиальные вещи начинались, черт бы меня побрал. Вот год назад все очень эту новую книгу хвалили, с нее и начну, пожалуй.

Date: 2006-10-02 10:22 pm (UTC)
From: [identity profile] avva.livejournal.com
Это тоже верно. Но не "все остальное" одни только extensions. Можно хорошо понимать, что творится с кодом за пределами твоего редактора, и плохо уметь что-то делать в редакторе :) хоть такое и редко случается наверное.

January 2026

S M T W T F S
    1 2 3
4 5678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 05:59 pm
Powered by Dreamwidth Studios