Программирование. Математические основы, средства, теория (Рубрика Math)
Сегодня я решил вспомнить книгу Святослава Сергеевича Лаврова 2001 года издания, которая была выпущена в качестве фундаментального учебника по программированию. Автор был ученым, член-корреспондентом АН СССР и одним из пионеров советского программирования. Эта книга стала его последней работой. Честно говоря, я ее купил себе на первом курсе больше 20 лет назад и она мне тогда показалось сложноватой, но я честно пытался ее прочесть. Сейчас, пересматривая этот учебник, я понял почему она тогда показалась мне такой - автор решил в одной книге на 300 страниц дать основы математики и программирования, чтобы показать фундаментальную связь между этими дисциплинами. Зацените список дисцплин, что излогает автор в первой части с математическими основами
- Формальные языки и логические формальные теории
- Propositional and predicate logic
- Теория множеств, а заодно про графы и деревья
- Вероятности, немного про измерение информации и случайные процессы
- Теория вычислимости с lisp и Машиной Тьюринга Каждая из этих тем тянет на отдельный семестровый курс, а то и больше:) И теперь, когда я пролистывал эту книгу, то мне все кажется достаточно понятным, а 20+ лет назад все казалось не таким ясным Во второй части автор переходит к основным понятиям и конструкциям языков программирования, где все начинается с дружелюбного использования формы Бэкуса — Наура для описания синтаксиса языка, дальше продолжается описанием структур данных, структуры действий, работы с процедурами, а дальше новыми веяниями в виде объектно-ориентированного и функционального программирования. В третьей части речь идет про анализ свойств программ, где автор рассказывает про оценку сложности алгоритмов, доказательство свойств программ, формализацию семантики языков программирования и так далее.
В общем, автор написал книгу, в которой программирование рассматривается с математической точки зрения, а не с инженерной. Это сильно отличается от доминирующего подхода в наше время, но имеет свое право на жизнь. Мне в свое время книга понравилась как раз своей математической составляющей, но программировать я решил учиться по другим книгам:)
P.S. А тем, кто интересуется основами программирования, но хочет почитать про них в научно-популярном формате, я рекомендую книгу "Код: тайный язык информатики" ("Code: The Hidden Language of Computer Hardware and Software"), про которую я уже рассказывал. У нее, кстати, относительно недавно вышло второе издание.
#Math #Engineering #Software