Сообщений 0 Оценка 150 Оценить |
Если Вы хотите написать или уже пишете свой язык программирования №1 в мире, то стоит заботать данную книгу. Книга большая, очень много математики, читается тяжело, но создание языка программирования №1 - требует жертв. Книга представляет собой теоретическое введение в лямбда-исчисление (основу современных языков программирования). Материал книги использовался при проведении 3-х семестровых курсов в Стэнфорде. Изучение книги позволяет при создании своего языка встать "на плечи гигантов" и переиспользовать опыт по выделению базовых абстракций из которых строятся языки программирования.
Книга "Основы языков программирования" написана для студентов старших курсов и аспирантов. В ней используется серия типизированных лямбда-исчислений для изучения аксиоматической, операциональной и денотационной семантики последовательностных языков программирования. По ходу книги происходит постепенное достраивание лямбда-исчисления всё более сложными системами типов. Отличительной чертой данной книги по сравнению с другими работами по данной теме является то, что в ней содержится материал по универсальной алгебре и алгебраическим типам данных, императивным языкам и Флойд-хоаровской логике, а в последних главах рассматриваются полиморфные типы, модули, подтипы и объектно-ориентированные понятия, а также вывод типов. Книга предназначена прежде всего для изучающих математику, но благодаря включению соответствующих вопросов и примеров материал книги доступен и студентам, специализирующимся по системам программного обеспечения, теории вычислительных систем или математической логике.
Книга может использоваться в качестве справочника специалистами, занимающимися языками программирования, проверкой и аттестацией компьютерных программ и программированием, в том числе теми, кто работает с программными модулями или занимается объектно-ориентированным программированием.
Первое и основное впечатление: Непейвода испортил хорошую книгу. Т.е. понятно, что мы должны быть ему (и двоим его аспирантам, выполнившим перевод) благодарны за появление первой книги на русском языке по этой тематике, но его подстрочные примечания отвратительны. Кстати, при личном общении (имел счастье), он производит очень приятное впечатление. Необычные и иногда провокационные суждения приятно послушать, но когда он излагает свою философию прямо в примечаниях к серьёзной книге, это ужасно. В некоторых примечаниях он поправляет автора, ссылаясь на достижения «российской информатики», иногда высказывается по политическим вопросам, порой рассуждает о разнице в менталитетах между русскими и американцами. Примерно в каждом десятом примечании он ругает систему грантов, благодаря которой «милейшие американские учёные» придумывают новые термины и понятия взамен давно существующих старых, при том что у нас в России всё это давно уже было известно. В общем, научный редактор перевода слишком уж одиозен.
Теперь по существу: книжка очень сложная. Для её чтения необходима крепкая подготовка в математической логике (а главное, навыки формальных рассуждений), теории алгоритмов (особенно теории рекурсивных функций), теории категорий. Многие понятия автор вводит, но очень поверхностно и быстро, так что если чего-то заранее не знать, то понятно не будет. Радует, что главы довольно независимы, сам автор пишет, что в книге собран материал для трёх разных курсов: по формальной семантике, по типизированному лямбда-исчислению и теории доменов (вот здесь и нужна теория категорий) и по теории типов. Последняя, впрочем, изложена довольно бегло, поэтому имеет смысл дождаться Пирса. Большая часть результатов даётся в виде упражнений, раздолье хорошему студенту. Много нестрогостей и неясностей (на них указывает Непейвода, зачастую внося ещё большую неопределённость).
Сообщений 0 Оценка 150 Оценить |