LINUX.ORG.RU

Вышло издание 2,92 книги «Программирование: введение в профессию» А. В. Столярова

 , , ,

Вышло издание 2,92 книги «Программирование: введение в профессию» А. В. Столярова

4

6

Тихо и незаметно 30 апреля 2026 года вышло издание 2.92, которое наконец включает в себя читаемый текстовый слой.

Исправлены опечатки и ошибки, обнаруженные в предыдущих изданиях, в частности 2.91 (где введена кликабельная навигация) и 2.9 (первое чисто электронное издание).

Книга предназначена для самообучения основам программирования и в отличии от многих других изданий предполагает фундаментальный подход — вначале основы дискретной математики и использования GNU/Linux или BSD с командной строкой, затем паскаль, потом ассемблер и только потом Си, системное программирование и альтернативные парадигмы (функциональное, логическое и так далее).

Автор книги считает, что только такой порядок обеспечивает полноценное обучение программированию, и обосновывает такой подход в методическом предисловии к первому тому.

Кроме самой книги в трёх томах, издание так же включает отдельный задачник, хотя сам автор считает, что для тренировки в программировании лучше всего решать задачи, возникающие в голове самого обучающегося, а не придуманные кем-то ещё.

>>> Ссылка на страницу издания

>>> Альтернативные способы скачивания

>>> Новость на сайте автора

★★★★★

Проверено: dataman ()
Последнее исправление: CrX (всего исправлений: 10)
Ответ на: комментарий от qulinxao3

Помимо того, что я всё объяснил уже ранее - мне нечего добавить. Ничего из моих слов до сих пор не было опровергнуто, а потому я просто клеймлю бред и словоблудие по факту. Мне не интересно заниматься опровержением заведомо ложных или софистических «аргументов».

liksys ★★★★
()
Ответ на: комментарий от liksys

Это у паскаля не будет - он игрушечно-теоретический.

Паскаль — это вполне полноценный язык и на нём пишут серьёзный софт.

А в реальности посмотри man write.

Ничего не мешает передавать статус операции другим способом, а не через возвращаемое значение. Например через errno или механизм исключений. Исторически решили сделать так, но это ничего не доказывает.

Таласса - один сплошной пример.

Ну то есть конкретики от тебя не дождёшься?

Xenius ★★★★★
() автор топика
Ответ на: комментарий от vM

Какие Вы видите побочные (или непобочные) эффекты выражения nine + ( six + seven ), функций и процедур в следующей бессмысленной «программе»?

Тут просто неверное использование функций для извращений. У каждой есть побочный эффект. Интересно, что этот goto делает со стековым фреймом?

Xenius ★★★★★
() автор топика
Ответ на: комментарий от Xenius

Паскаль — это вполне полноценный язык и на нём пишут серьёзный софт.

Нет. Ничего на нем уже не пишут, кроме дремучего легаси.

Исторически решили сделать так, но это ничего не доказывает.

Доказывает. Это доказывает, что возвращаемое значение нужно в том или ином виде, потому что у реальных операций есть результат.

Ну то есть конкретики от тебя не дождёшься?

Не в коня корм. Вся конкретика была уже приведена в тредах под талассу. Идешь и читаешь всё это там.

liksys ★★★★
()
Ответ на: комментарий от liksys

Вся конкретика была уже приведена в тредах под талассу.

И где тут треды про Талассу?

Таласса - один сплошной пример.

Не самый удачный. Это недоделка. FEDAnet ещё больше недоделана.

Сам Андрей Викторович из своего известного творчества считает доделанными последние издания своиз книг.

vM ★★★
()
Ответ на: комментарий от Xenius

Интересно, что этот goto делает со стековым фреймом?

Посмотрите, если интересно.

Скорее всего, примерно то же, что и другие реализации алголоподобных языков.

vM ★★★
()
Ответ на: комментарий от anonymous_incognito

сложнее,чем при разработке на C++ и как бы по умолчанию подразумевает наличие интернета во время работы

а для плюсового кода зависимости на лошадях везут?

seiken ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Для плюсового сам выкачиваешь, если в репозитории нет.

Ну надо же, почти как у раста. Только в расте ещё и скачивание автоматическое.

unC0Rr ★★★★★
()
Ответ на: комментарий от vM

И где тут треды про Талассу?

В новостях и в толксах, очевидно.

Не самый удачный. Это недоделка. FEDAnet ещё больше недоделана.

Это не имеет никакого значения. Даже если вещь недоделана, в ней всё равно будет прослеживаться стиль и хорошая культура разработки. А у столярова в коде каша, потому что каша в голове.

liksys ★★★★
()
Ответ на: комментарий от qulinxao3

будь мужыком - опровергай а не отвергай :)

Не умеет и не может...

Somebody ★★★★
()
Ответ на: комментарий от vM

Или несёшь колоду перфокарт в рюкзаке

Можно и в чемодане...

Somebody ★★★★
()

Огромное спасибо автору.

Когда нибудь я смогу дочитать математическую часть и перечитать остальное.

Паскаль я вспоминать буду точно по этой книге. Довольно кратко и по делу.

Slackware_user ★★★★★
()
Ответ на: комментарий от liksys

Его определение приколочено гвоздями к паскалю, а должно быть само по себе.

Почти любое определение приколочено к семантике какого-либо языка. В форте нет функций, в хаскеле нет процедур, в джее нет ни функций ни процедур, но есть глаголы и наречия. Переменные в семантике лиспа и питона существенно отличаются от переменных в семантике си и раста, в хаскеле вообще переменных нет.

Понятие побочного эффекта также заметно отличается, например, в си и хаскеле: в хаскеле чтение значения по ссылке (через IORef) это сторонний эффект (потому что требует монаду IO), а в си чтение по указателю сторонним эффектом не является.

Поэтому какое-то определение «само по себе» практически невозможно. Даже понятие целого числа в лиспе и си по разному понимается.

monk ★★★★★
()
Ответ на: комментарий от monk

Почти любое определение приколочено к семантике какого-либо языка.

Чушь. Функции определены в computer science существуют независимо от желания разработчиков форта - просо они там называются словами и имеют другую семантику (хотя, конечно, может быть язык и совсем без функций. Процедуры тоже определены в CS независимо от желаний хаскелистов, и так далее. Все эти определения абстрактны, незавсимы и построены вокруг соответствующих теорий, которые могут быть не реализованы в языках.

Понятие побочного эффекта также заметно отличается

Это совершенно неважно по одной простой причине: нужно различать абстрактное определение и определение языка. Столяров вводит определение побочного эффекта и приколачивает его к паскалю: хорошо, пускай. Но затем он берет и натягивает определение из паскаля на си и другие языки. Более того, утверждает, что так и надо.

Вот где бред. Нельзя определениями из одних языков притаскивать в другие, потому что определения других языков столярову не нравится.

liksys ★★★★
()
Ответ на: комментарий от Slackware_user

если поминать Паскаль то лучше по виртовским алго и структуры данных что=то там программы

ну и парачка книг из ряда Систематического программирования его же авторства и Дейкстры,Дала,Хоара(их псевдоАлгол почти 99% чистый Паскаль)

qulinxao3 ★☆
()
Ответ на: комментарий от qulinxao3

Разница между нами в том, что я аргументирую, а столяров и его паства - веруют.

При этом я объяснил, в чем терминологическая проблема, но поскольку вы оппонировать не в состоянии - началось верчение жопой и обзывание столяровым.

Собственно, ничего другого я от вас и не ждал.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 2)
Ответ на: комментарий от liksys

Функции определены в computer science существуют независимо от желания разработчиков форта - просо они там называются словами и имеют другую семантику

Не путай функции и подпрограммы. Если в Си все подпрограммы — это функции, то в других языках и в CS не так.

Но затем он берет и натягивает определение из паскаля на си и другие языки.

Потому, что он считает, что семантика паскаля работает и для других императивных языков и не без оснований. В том же C например нет разницы между числом 65 и буквой A, но для программиста-то она есть. В паскале это сделано явно через ord() и chr(), что ближе к программисту чем неявное преобразование в Си.

Xenius ★★★★★
() автор топика
Ответ на: комментарий от Xenius

ну в сяшке нет в части char неявного преобразования типов - ибо скорее 'A' и 65 (если мы в ascii) это скорее разные токены|глифы(составные) для одного и того же - и так как знаковость(безнакововость) на 7 битах у 8 битовых datum тождественна то «проблемы индейцев шерифов не волнуют»

т.е. опят же всё упирается в кочку зрения

и вот в том что у Столярова(его публичном амплуа) что у предыдущего от вас оппонента - сложности с пониманием рацио(очевидно что есть и эмоцио которое влияет но тут не суть) у им оппонирующих лиц

qulinxao3 ★☆
()
Ответ на: комментарий от qulinxao3

Ты уже какой раз подряд не в состоянии выдать ни одной конструктивной мысли.

Отправляйся-ка в игнор к остальным клоунам.

liksys ★★★★
()
Ответ на: комментарий от Xenius

Не путай функции и подпрограммы. Если в Си все подпрограммы — это функции, то в других языках и в CS не так.

Ты читаешь вообще комментарий, на который отвечаешь? Я говорил про форт, а ты мне - про си.

Потому, что он считает, что семантика паскаля работает и для других императивных языков и не без оснований.

Нет у него никаких оснований.

В том же C например нет разницы между числом 65 и буквой A, но для программиста-то она есть.

Это не основание. Внутри си приняты другие концепции и другая терминология. Если ты пытаешься одним языком объяснять другим язык - у тебя получится такая же каша, как и у столярова - мешанина из концепций, где определения еще и получаются рекурсивными.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 2)
Ответ на: комментарий от liksys

Читаю. В forth слова - это не функции. А ты называешь их функциями, путая его с C где из подпрограмм есть только функции.

Нет никакой рекурсивности. Столяров использует термин «побочный эффект» в более интуитивном понимании «дополнительный эффект, который явно не предполагается». В выражении (в частности, вызове функции) предполагается, что основной эффект — это получение значения. Всё остальное — это побочные эффекты.

Ты используешь «побочный эффект» в менее интутивном значении «модифицирующее/разрушающее действие» и добавляешь контекст, например в одних языках выделение памяти не будет побочным эффектом, а в других будет.

Расхождение получается когда речь идёт не о выражении, а о других операторах, например операторе вызова процедуры. Интутивно побочный эффект - это не основной эффект. В случае вызова процедуры её действие - это как раз её основной эффект и называть его «побочным» странно. Но так как это модифицирующее действие, ты так и делаешь.

Xenius ★★★★★
() автор топика
Последнее исправление: Xenius (всего исправлений: 2)
Ответ на: комментарий от Xenius

Читаю.

Не читаешь.

В forth слова - это не функции.

Идем на википедию и смотрим: Forth emphasizes the use of small, simple functions called words.. Ищешь дальше по слову function, убеждаешься в моей правоте, посыпаешь голову пеплом.

Нет никакой рекурсивности.

Конечно же есть. И я объяснял ее источник на предыдущих страницах. Можешь снова вернуться и изучить мои комментарии внимательно.

термин «побочный эффект» в более интуитивном понимании

Предлагаю использовать термин в его исходном смысле, и не натягивать сову на глобус паскаля.

добавляешь контекст, например в одних языках выделение памяти не будет побочным эффектом, а в других будет

Потому что это так и есть.

Интутивно побочный эффект - это не основной эффект.

Нет никакого «интуитивно». Есть формальное определение из CS, и есть неудачная попытка прикрутить это определение изолентой к паскалю, чтобы затем экспортировать в другие языки.

Столяров придумал себе костыль для упрощения учебной деятельности, а ты возводишь этот искуственный конструкт в абсолют, потому что ты никогда длинного кода не писал и знаешь о программировании исключительно по теоретическим высерам столярова (который в нем тоже ни в зуб ногой).

liksys ★★★★
()
Ответ на: комментарий от liksys

Функции определены в computer science существуют независимо от желания разработчиков форта - просо они там называются словами и имеют другую семантику

Нет. У слова в форте нет возвращаемого значения. Что позволяет, например, компилировать в шитый код. А функция в computer science должна иметь возвращаемое значение.

monk ★★★★★
()
Ответ на: комментарий от liksys

Идем на википедию и смотрим: Forth emphasizes the use of small, simple functions called words.. Ищешь дальше по слову function, убеждаешься в моей правоте, посыпаешь голову пеплом.

Это в том же смысле, в котором void free (void *ptr) называют функцией.

monk ★★★★★
()
Ответ на: комментарий от liksys

Если ты пытаешься одним языком объяснять другим язык - у тебя получится такая же каша, как и у столярова

Так ты пытаешься также объяснить всё через Си. Я согласен, что получается такая же каша.

monk ★★★★★
()
Ответ на: комментарий от liksys

Есть формальное определение из CS

Так в нём побочный эффект может иметь только операция (operation) или выражение (expression). Но не вызов процедуры или оператор (statement).

А ты настойчиво утверждаешь, что у процедур и функций, возвращающих пустой тип (void), могут быть побочные эффекты.

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от liksys

Все эти определения абстрактны, незавсимы и построены вокруг соответствующих теорий, которые могут быть не реализованы в языках.

Не совсем абстрактны. Они основаны на семантике тех языков, где эти определения реализованы. Те же функции и процедуры в computer science взяты на основании существовавших тогда языков программирование, в некоторых из которых было понятие возвращаемого значения подпрограммы, в некоторых не было, а в некоторых было два вида подпрограмм.

Если бы тогда было что-то с семантикой J, то говорили бы сейчас не о процедурах и функциях, а о глаголах, наречиях и союзах.

monk ★★★★★
()
Ответ на: комментарий от monk

Нет.

Да. Идешь и читаешь ссылку, которую я привел выше.

У слова в форте нет возвращаемого значения.

Прежде чем отвечать, тебе стоит прочитать сообдение, на которое ты отвечаешьь. А именно часть: просто они там называются словами и имеют другую семантику. Если быть точнее, слова в форте помещают результат в стек, что превращает слово в некое подобие функции.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от monk

Так ты пытаешься также объяснить всё через Си.

Нет. Я пользуюсь базовым общепринятым определением и рассуждаю о побочных эффектах в контексте архитектур, на которых мы запускаем код.

Я согласен, что получается такая же каша.

Каша получается у тебя в голове из-за того, что ты читаешь через слово то, что я пишу.

liksys ★★★★
()
Ответ на: комментарий от monk

Так в нём побочный эффект может иметь только операция (operation) или выражение (expression). Но не вызов процедуры или оператор (statement).

Всё так.

А ты настойчиво утверждаешь, что у процедур и функций, возвращающих пустой тип (void), могут быть побочные эффекты.

Разумеется могут. Если операция над регистром приводит к изменению состояния аппаратуры, то это можно назвать побочным эффектом.

liksys ★★★★
()
Ответ на: комментарий от monk

Не совсем абстрактны. Они основаны на семантике тех языков, где эти определения реализованы.

Нет. Есть базовые обобщенные определения в CS. Есть более частные определения (переопределения, так скажем) внутри языков. Естественным образом следует, что определения из скоупа одного языка не действуют на скоуп другого языка.

Те же функции и процедуры в computer science взяты на основании существовавших тогда языков программирование

И обобщены.

liksys ★★★★
()
Ответ на: комментарий от liksys

Да. Идешь и читаешь ссылку, которую я привел выше.

Википедия для тебя авторитет?

А именно часть: просто они там называются словами и имеют другую семантику.

А слон это муха, только называется слоном и имеет другую форму.

Если быть точнее, слова в форте помещают результат в стек, что превращает слово в некое подобие функции.

У функции есть значение результата. У слова только наблюдаемое изменение глобального стека. Большинство слов, изменяющих стек, невозможно преобразовать в функции Си без побочных эффектов.

monk ★★★★★
()
Ответ на: комментарий от liksys

побочный эффект может иметь только операция (operation) или выражение (expression)

Всё так.

Разумеется могут

Вызовы процедур не являются выражениями!

monk ★★★★★
()
Ответ на: комментарий от monk

In programming, a function is a block of code that performs a processing and returns a result. A function may (or may not) have parameters. (https://www.francogarcia.com/en/blog/learn-programming-subroutines/)

У меня складывается ощущение, что ты необучаем. Внимательно перечитываем вот этот камент, пока не дойдет:

они там называются словами и имеют другую семантику

liksys ★★★★
()
Ответ на: комментарий от liksys

И обобщены.

Да. Понятие побочных эффектов одинаково в Фортране, Паскале, Аде, … и обобщённое построено на них.

Но ты почему-то настаиваешь взять определение из Си.

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от liksys

У меня складывается ощущение, что ты необучаем. Внимательно перечитываем вот этот камент, пока не дойдет:

Так я тебе обобщённое определение привёл, а не из конкретного языка.

monk ★★★★★
()
Ответ на: комментарий от monk

Википедия для тебя авторитет?

Это не аргумент, отказать.

А слон это муха, только называется слоном и имеет другую форму.

Нет, не так: слон - это сложный многоклеточный организм, как и муха. Просто имеет другую ДНК. Что снова возвращает нас к моему комментарию об общих и частных определений.

У слова только наблюдаемое изменение глобального стека.

Которое используется как возвращаемое значение из-за семантики языка.

liksys ★★★★
()
Ответ на: комментарий от monk

Но ты почему-то настаиваешь взять определение из Си.

Ссылочку, бегом. А то языком трепать - не мешки ворочать.

liksys ★★★★
()
Ответ на: комментарий от liksys

Зато выражения могут быть внутри них.

Могут. И эти строки могут иметь или не иметь побочный эффект. Но вызов процедуры не может иметь побочного эффекта, так как не является выражением.

monk ★★★★★
()
Ответ на: комментарий от liksys

Нет, не так: слон - это сложный многоклеточный организм, как и муха. Просто имеет другую ДНК.

Слово - это подпрограмма, как и функция. Но подпрограмма, имеющая другую семантику. Поэтому слово не является функцией, также как слон не является мухой.

monk ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.