Книга посвящена простой и удивительно элегантной структуре данных – стеку. Описаны скобочные структуры, подпрограммы (в том числе рекурсивные), передача параметров, разбор и вычисление выражений, распознавание последовательностей символов. Также рассмотрено описание устройства и реализация простой, но достаточно мощной стековой машины; приведены многочисленные примеры программ, а также список задач, в том числе нетривиальных. На сайте издательства dmkpress.com содержатся дополнительные материалы, среди которых исходные коды простого транслятора стековой машины (на языке Java).
Издание предназначено прежде всего пытливым старшеклассникам, студентам вузов, а также тем, для кого программирование – хобби.
Периодически захожу на сайт издательства ДМК-Пресс и интересуюсь новинками, пока их можно приобрести со скидкой. Не так давно моё внимание привлекла эта небольшая книжка на 140 страниц. Полистал содержание и отрывки из глав. Как оказалось, в книге рассматривается довольно широкий круг вопросов:– проверка скобочной сбалансированности текста,
– трансляция инфиксных арифметических выражений в постфиксную с учётом приоритетов операций и скобок,
– вычисление постфиксных арифметических выражений,
– устройство стековых виртуальных машин. В том числе рассматривается вопрос способа вызова подпрограмм, возврата из них, вопрос передачи аргументов подпрограммам, рекурсивные подпрограммы,
– использование стековых конечных автоматов для трансляции исходных текстов программ на контекстно-независимых языках,
– реализация виртуальной стековой машины,
– трансляция программ с ассемблера в код виртуальной стековой машины,
– даётся представление о языке программирования Forth.Весь материал подаётся в популярной форме, рассчитанной на программистов-любителей, для которых программирование – это в первую очередь хобби. Книга может пригодиться и студентам.Моё внимание прежде всего привлекли несколько вещей: трансляция инфиксных выражений в постфиксные, реализация стековой виртуальной машины и трансляция из ассемблера в код для этой стековой машины. Также полезен для понимания, как работают синтаксические анализаторы, раздел про стековые конечные автоматы. Про способ вызова подпрограмм и передачи аргументов через стек я знал и так, потому что у меня имеется опыт написания программ на ассемблере, поэтому только эти разделы показались мне не особо интересными. Книжку я читал долго – смаковал, т.к. она не большая, а темы интересные. Теперь интересно будет поделать упражнения и попробовать сделать свою реализацию виртуальной стековой машины и своего транслятора с ассемблера для неё.