Я всегда радуюсь выходу на русском языке книг, связанных с программированием. Причем тех из них, которые не ориентированы на какие-то сиюминутные технологии. Книга А. Вторникова "Стек, или Путешествие туда и обратно" как раз из этого разряда. Ниже я даю небольшой отзыв на нее, который был написан руководствуясь материалами, выложенными на сайте dmkpress.com.
Вызывает интерес подход, который предполагает изучение различных практических применений стека. Надо сказать, что перед нами далеко не первая книга, посвященная единственной структуре данных. По графам, например, существует неплохой учебник В. Касьянова "Графы в программировании: обработка, визуализация и применение". Этот учебник насчитывает 1104 страницы, но затрагивает лишь несколько важных применений графов. По поводу практических применений стека тоже полезной информации очень и очень немало. В аннотации к книге о стеке говорится, что "автор книги на протяжении многих лет профессионально занимается разработкой программного обеспечения (преимущественно в области финансов). И все эти годы его верным и надежным помощником был стек", но в книге, к сожалению, каких-то современных, полезных профессиональным программистам решений с использованием стека не находится.
Центральная часть книги посвящена реализации стековой машины и ассемблера для нее. Автор, на мой взгляд, даже излишне подробно останавливается на деталях разработки, лишая читателя возможности проявить собственное творческое начало. В этой связи мне вспоминается знакомство в 1996 году со знаменитой книгой Ф. Купмана Stack Computers: the new wave. Я в то время учился на 1 курсе университета и был настолько очарован описанием "канонической стековой машины", что с удовольствием реализовал ее симулятор и ассемблер на языке Си и, далее, успешно сдал результат в виде курсовой работы. С педагогической точки зрения полезно вспоминать работы Пиаже и Пейперта. Пусть на долю ученика останется и возможность часть знаний сконструировать, получить на практике самостоятельно. Ведь что хорошего в том, чтобы лишить его удовольствия первооткрывателя?
Стековый подход при реализации синтаксических анализаторов (еще одна тема из книги А. Вторникова) также заслуживает отдельного учебника. Можно, разумеется, возразить, что книга-то предназначена "пытливым старшеклассникам, студентам вузов, а также тем, кто увлекается программированием". В этом случае ее уместно сравнивать с другими учебниками для начинающих. Например, с книгой А. Шеня "Программирование: теоремы и задачи". Или же с зарубежной литературой: Structure and Interpretation of Computer Programs и т.д. Моя основная претензия, если так можно выразиться, к рассматриваемой книге в том, что круг вопросов в ней освещенных достаточно зауряден, особенно с учетом предшествующих авторов. Еще одна вспомнившаяся мне сейчас книга называется Programming Languages: An Interpreter-Based Approach и вышла она в 1990 году. Ее автор предложил необычный подход к изложению механизмов работы интерпретаторов. Различные интерпретируемые языки (Lisp, APL, Scheme, SASL, CLU, Smalltalk, Prolog) рассматриваются с единых позиций на уровне AST-представления (лисповские S-выражения), а код всех интерпретаторов доступен для изучения. Хороший пример не обычной публицистики, а интересной, свежей методологии, не правда ли?
По приведенным на сайте ДМК отрывкам видно, что автор владеет словом и пишет достаточно увлекательно. Хочется пожелать ему в будущих книгах ставить перед собой более амбициозные цели.
|