Предисловие
Немногие знают о когда-то существовавшем журнале "СофтПанорама." Он распространялся на дискетках и содержал массу полезной - по тем временам, - информации. Например, сравнение оптимизирующих компиляторов фирм Zortech и Watcom. Удаляют ли они последовательности переходов или нет? Это было важно. Менее важным, но гораздо более интересным были разного рода статьи по программированию и исходники. СофтПанорама (
http://softpanorama.org) жива и сейчас. И точно так же содержит интересные статьи и исходники. Гуляя по нему, я наткнулся вот на эту страничку:
http://www.softpanorama.org/Algorithms/compilers.shtml Приведу оттуда цитату в моём переводе:На самой первой лекции курса "Построение компиляторов" (который читался с упором на IBM/360) я обязательно говорил студентам, что эта область компьютерной науки имеет гораздо более широкое прикладное значение, чем можно ожидать только из его названия. На самом деле, создание компиляторов весьма мощная парадигма программирования (анпример, такое построение приложения, как будто это компилятор с какого-то нового языка программирования) и более широкое использование этой парадигмы может привести к большому выигрышу. Или, другими словами, это технология, применимая ко многим областям программирования.
В современном понимании, построение программы, как компилятора, означает создание встроенного проблемно-ориентированного языка программирования. Или нового проблемно-ориентированного языка. "Встроенный язык" это "язык программирования на основе другого, более универсального языка программирования." Заметная часть настоящего труда будет посвящена таким языкам, с примерами и расшифровками. Основной темой будет построение моделей - аппаратуры и механических систем.
Языком программирования большей части реализаций и примеров будет являться Haskell, но на нём будет реализовано ещё некоторое количество языков - например, подмножество Erlang.
Более подробно темы:
- Краткое введение в язык программирования Haskell - функции, типы данных, классы типов
- Построение моделей цифровых схем
- Ввод-вывод в языке Haskell
- Построение модели процессора
- Построение модели распределенной вычислительной системы
- Построение языка программирования для распределенных систем (Erlang)
- Классическая механика
Книга по частям:
http://thesz.livejournal.com/tag/zebookНаверное, это и будет оглавлением. Темы, скорее всего, будут меняться. По мере их появления я буду оформлять их в виде ссылок.