Книга предназначена внушить вам одну очень простую мысль: если вы – программист и вы не знаете что такое стек, то вы – дно!
Теперь собственно о самом содержании:
Автор рассказал о стеке, как о структуре данных на примере разбора скобочных структур и разбора арифметических выражений (Обратная польская нотация -RPN). Тут никаких нареканий, все четко и по делу.
При рассказе, зачем нужен программный стек в приложениях и тут Остапа понесло… Автор придумал свой (псевдо) ассемблер для «облегчения». Чтобы на примере маленьких подпрограмм (функций) объяснить зачем нужен стек. Как этим стеком пользоваться, как появляется и что представляет собой стековый фрейм. Классический пример – конечно рекурсивная функция расчета факториала. По мне автор все хорошо объяснил, но как то затянул что ли. Потом его этот асм, ну зачем? Почему нельзя было взять красивый и лаконичный ассемблер от ARM, а не некий аналог да еще аля x86. Можно было на этом ассемблере (ARM) приводить реальные асм коды реальных функций или даже Си функций! с полным объяснением. Это позволило бы упростить понимание примеров и в свою очередь приблизить читателя к реальному «железу». И если что-то не ясно, читатель всегда может обратиться к дополнительной литературе, так как это – «нормальный» реальный ассемблер.
В приложении есть, рассмотрение реализации стека на массиве и связном списке (правда на псевдо коде). Ну наверное автор прав и приводить полную реализацию излишне.
Приводить в пример язык Форт, ну тоже как то мимо. ИМХО, не хватает описания того, как в современных языках использовать стек из коробки: C++ STL, C#, Java . Чтобы джуниоры понимали, что все уже есть и не нужно велосипедить.
Общее впечатления от книги, хорошее. Автор пишет с юмором иногда даже с сарказмом, но он реально по делу! Если бы не псевдо асм, поставил бы твердую 5, а так все же 4.
«Стек, или Путешествие туда и обратно» kitobiga sharhlar