LINUX.ORG.RU

Переиздание книг Столярова по программированию

 


9

4

Скандально известный на ЛОРе Андрей Викторович Столяров выпустил новое издание своего учебного пособия «Программирование: введение в профессию» и обновил PDF-версии:
«Азы программирования»
«Системы и сети»
«Парадигмы»
В новом издании 4-томник стал 3-томником.

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

>>> Сайт автора

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Zhbert (всего исправлений: 3)

Ответ на: комментарий от aureliano15

и кстати, отвалы угольных ТЭС - тоже фонят! и очень даже хорошо! поэтому я ибегаю жить в домах из шлакоблоков

mumpster ★★★★★
()
Ответ на: НАБРОС СПАСАЙСЯ КТО МОЖЕТ от Shaman007

комрад gns уже всё правильно написал. кстати, я активно пользовался теми макросами, реально местами код на ассемблерный был не похож ))

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

Таненбаум - типичный теоретический теоретик сферических лошадей в вакууме с огороженным кусочком для получения денег. С обсуждаемым здесь Столяровым имеет много общего на самом деле.;-)

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

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

Развлекательных ( и учебно-развлекательных ) проектов.

Just for Fun

Участие в таких проектах способствует улучшению понимания, что, например, компилятор – обычная программа на обычных языках программирования и в неё бывают обычные для программ ошибки.

А теперь давай поможем Даше сравнить это с количеством проектов на си.

С количество проектов на си проблем нет. Но, если бы не проблемы с качеством, то давно бы уже перевели весь софт с КОБОЛа на Си и отправили бабушек-КОБОЛьщик на заслуженную пенсию, вместо того, чтобы разрабатывать компилятор КОБОЛа для VAX/VMS. Никому не хочется тратиться на поддержку устаревших технологий и оборудования.

Ни С++, ни Javа полностью проблему не решили.

https://sourceware.org/git/?p=binutils-gdb.git;a=blob_plain;f=gold/binary.cc;hb=HEAD

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

Так это и есть передача по ссылке.

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

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

А интегралы в школе не словесный мусор?

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

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

в качестве типа параметра обязателен идентификатор типа

ААААА!!

{Бегает кругами, орёт.}

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

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

Это выглядит как указатель, потому что является указателем.

Перед тобой пронумерованные коробки. Ты открываешь коробку 1000, видишь там бумажку с числом 2000. Открываешь коробку 2000 и кладёшь туда 1 бакс.

Есть тут магия? Нету никакой магии.

А теперь, внимание. МАГИЯ.

Мы кладём 1 бакс в коробку с надписью 1000, а он появляется в коробке с надписью 2000.

Забираем его из коробки 2000, и он пропадает из 1000.

ДЫРКА В ПРОСТРАНСТВЕ.

Вот что такое ссылки без понимания.

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

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

Преподавание тоже надо вести последовательно.

Какие-то невероятные истории, что ученик не понимает про файлы и не может вкупить, что такое инклуд. Картинки ни разу в чат не вставлял что ли или ссылки не кидал? Вот самый наглядный инклуд.

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

Грамматика Паскаля изначально была заточена на однопроходную компиляцию, поэтому к моменту ссылки на тип, он должен быть объявлен полностью.

Проблема всплывёт в списках формальных параметров:

В Обероне всё работает. Старый Паскаль пора закапывать, о чём сам Вирт говорит.

MODULE A;
	TYPE
		TStroka = POINTER TO ARRAY OF CHAR;
		
		Element = RECORD
			stroka: TStroka;
			next: POINTER TO Element;
		END;
	
	PROCEDURE Pop (VAR stk: POINTER TO Element; VAR s: TStroka);
	BEGIN HALT(126);
	END Pop;
	
END A.

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

Кстати, площадь под графиком запутывает.

У учеников не складывается картинка, почему в одну сторону логика приводит к понятию угла касательной, а в противоположную — к площади.

Вот такое объяснение бы добавить в учебники:

https://web.archive.org/web/20160305170628/http://ru.yasno.tv/article/math/42-chto-takoe-integral-eto-umnozhenie

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

Старый Паскаль

Что такое «старый Паскаль»? Выглядит как манипуляции от разработчиков pascal abc.net, где в презентации они паскалём называют то турбо Паскаль 7.0, когда надо сравнить со старыми фичами конца 80-х, то вдруг у них Паскаль это freepascal + lazarus, которые уже профессиональные и слишком сложны для обучения.

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

Старый Паскаль тут — любой Паскаль в принципе. X512 прав: Вирт пришел в итоге к Оберону. Модула еще была в середине пути.

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

Когда Вирт пришёл к Оберону, он к дальнейшему развитию Паскаля не имел отношения. В object pascal так вообще уже другая парадигма ооп, в отличии от turbo pascal.

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

Что такое «старый Паскаль»?

Любой диалект Паскаля (включая Object Pascal и Delphi). Более актуальными версиями Виртовких языков являются Модула и Оберон, в которых исправлены многие ошибки Паскаля.

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

Когда Вирт пришёл к Оберону, он к дальнейшему развитию Паскаля не имел отношения.

Модула и Оберон — это прямое развитие Паскаля. А Object Pascal — это отход от изначальной концепции Паскаля и обвешивание его C++ подобными костылями («другая парадигма ооп»).

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

С чего ты взял, что они не исправлены в поздних диалектах?

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

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

Он не совместим

Ещё как совместим.

а имеет режим совместимости, который задаётся флагом компиляции.

Это уже совместимость с тонкостями реализации.

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

include только вставляет объявления функций, но не сами функции. Можно объяснить что это лишь вставка текста, который содержит магические заклинания, которые в комбинации с другими заклинаниями (ключи линковщика) позволяют использовать функции из библиотек. Но если объяснять нормально тут надо читать лекцию на полтора часа. Эта лекция хорошо зайдет, если человек уже умеет программировать, но если он ноль, то это будет просто бесполезная трата времени.

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

А Object Pascal совместим со старым паскалем, наследуя все его проблемы

Не так уж и все (например, GET/PUT в отношении файловых переменных) :-) но достаточно многие, безусловно так.
OP — это взгляд практиков из Borland на Виртовский Паскаль применительно к процессорам 808х и CP/M, MSX-DOS, MS-DOS — изначальная спецификация языка была взята лишь за примерный ориентир в самом начале пути ;-)

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

include только вставляет объявления функций, но не сами функции.

#include вставляет то, что есть в файле. Напишете туда не объявление, а определение функции, значит вставит определение. Вы так же преподаёте??

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

Ну да, МАГИЯ-то удобнее, и объяснять ничего не надо.

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

Ну да, МАГИЯ-то удобнее, и объяснять ничего не надо.

Ну так варианта два – 1. объяснить магией 2. прочитать лекцию на полтора часа, которая в одно ухо влетит, а из другого вылетит. Вы за какой вариант? Мне оба не нравятся.

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

include только вставляет объявления функций, но не сами функции

Ну, это только соглашение. Которое иногда нарушается. И которое не касается inline-функций, по понятным причинам.

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

Ну, это только соглашение. Которое иногда нарушается.

Оно массово нарушается для C++ классов, особенно с шаблонами, там по другому нельзя. Для этого даже есть специальная поддержка компилятора, избегающая ошибки повторного объявления.

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

Значит, для обучения масс в гос. учебных учреждениях не подходит. Нужен компилятор хотя бы под Win и Lin, нужна пусть несложная, но IDE, желателен также отладчик.

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

IDE нужно для профессиональных программистов, а на этапе обучения IDE использовать КАТЕГОРИЧЕСКИ НЕЛЬЗЯ!

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

Не согласен. Обязательно должно быть простенькое IDE с запуском программы по кнопке, подсветкою синтаксиса и прочими прелестями. Это ускоряет обучение. И оно должно быть в комплекте с компилятором. Недостаток FreePascal именно в том, что Lazarus слишком наворочен для новичков и ориентирован на GUI приложения, а простого IDE нет (то, что есть с синим экраном — жуткое убожество для наших дней).

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

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

Ещё как подходит.

Нужен компилятор хотя бы под Win и Lin, нужна пусть несложная, но IDE, желателен также отладчик.

Всё это есть.

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

Подсветка синтаксиса есть в текстовом редакторе. Если новичок начинает использовать «прочие прелести» из IDE то он перестает понимать природу вещей и начинает думать всякий бред, например, перестает отличать IDE от компилятора. Поэтому в школе и все годы в ВУЗе должны быть исключительно БЕЗ IDE. Если человек не может собрать свою программу без IDE, то это причина не ставить зачет.

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

А как ты это делал? Там в дистрибутиве какие-то бинари идут, которые, очевидно, под apple не работают. Как они получались?

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

А как ты это делал?

Портировал руками под Haiku API. Если в Mac OS есть GTK 2 или Wine, то будет несложно портировать.

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

с синим экраном

Самая большая его проблема - ширина окна в 80 символов, емнип. Если б он хотя бы как mc на весь экран раскрывался и настроиаался в этом плане, то было б намного лучше. А сейчас либо держишь мелкое окошко, либо всё огромное.

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

на этапе обучения IDE использовать КАТЕГОРИЧЕСКИ НЕЛЬЗЯ

Вообще пушка.

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

Эта лекция хорошо зайдет на этапе объяснения сущности хедеров и библиотек. То есть сильно после того, как человек освоит основные языковые конструкции.

По вашим заявлениям видно, что упрощать вы категорически не умеете. Неудивительно, что у вас не получается нормально объяснять си. Только глубинные знания сходу, только суровые консольные инструменты, только хардкор. Составить грамотно учебную программу и подавать знания порциями и последовательно? Не, зачем.

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

Вообще пушка.

Я рад, что у тебя подгорело

По вашим заявлениям видно, что упрощать вы категорически не умеете. Неудивительно, что у вас не получается нормально объяснять си. Только глубинные знания сходу, только суровые консольные инструменты, только хардкор. Составить грамотно учебную программу и подавать знания порциями и последовательно? Не, зачем.

То есть ты за вариант (1) – «объяснять» магией. OK.

Reset ★★★★★
()
Последнее исправление: Reset (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.