LINUX.ORG.RU

Вышел второй том учебника А. В. Столярова

 , ,


17

8

На сайте А. В. Столярова объявлено о выходе второго тома книги «Программирование: введение в профессию». Учебник А. В. Столярова примечателен, в частности, ориентацией на ОС семейства Unix (в том числе Linux) в качестве единой среды для обучения программированию. Электронная версия книги выложена в открытый доступ на сайте автора.

Во второй том вошли части, посвящённые ассемблеру NASM и языку Си.

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

>>> Подробности

★★★

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

Серьёзно — читать асм в лялихе — это читать gdb и objdump. И для этого нужно понимать AT&T syntax (GAS), а не Intel (NASM).

Оба уже давно это умеют. Даже гцц прогнулся и может выдавать интоловский синтаксис.

mkam
()

листал первую книгу, автор молодец, пускай пишет еще.

umren ★★★★★
()

Видел тред на одной странице.

iamweasel
()

А Андрей Викторович и дальше собрался говорить о себе в третьем лице?

znenyegvkby
()

Почитал про язык C. Сколько же воды, мда, невозможно читать.

Zaskard
()
Ответ на: комментарий от alwayslate

назови хоть один сменившийся сисколл за все время существования линукса

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

Я понимаю, если бы это было про gas (в ключе C). Но nasm?

на эту тему можно холивары развести
но концептуально гас конечно правильнее, чем насм

kto_tama ★★★★★
()

прочитал первый том и понял что это не моё, т.к. нифига не понял.

eR ★★★★★
()

Ждём программирование под WEB в 5-ом томе.

ASM ★★
()

предлагаю скинуться автору на книжку по веб-дизайну.

anonymous
()
Ответ на: комментарий от beastie

Asm и nix — комбинация тоже очень странная. Пишите лучше про dos.

DOS давно сгнил и нет никакого смысла его мучить. На данном этапе, по моему мнению, лучше использовать для обучения 32-битный режим, а будет это в Win, Linux или в чём-то ещё, не важно.

Я понимаю, если бы это было про gas (в ключе C). Но nasm?

Intel-синтаксис проще в освоении. В своё время потратил много времени выбирая компилятор Ассемблера для обучения. И лучшим вариантом оказался именно Nasm, так что с автором в этом согласен полностью.

Но вот порядок: Ассемблер, Cи - меня бесит. Вместо того, чтобы воспользоваться printf, автор использует макросы. Студентам не показать, как транслируется программа на Си в Ассемблерный код.

Используя комбинацию этих языков можно провести короткие лабораторные по SSE инструкциям, где студенты успеют реализовать библиотеку для работы с вектором 4-х чисел и матрицами 4х4. Например, как умножить вектор на матрицу за 7-мь инструкций. Написать несколько функций на Ассемблере, а потом воспользоваться ими в программе на Си, где будет инициализация данных, построение небольших алгоритмов и вывод результатов куда интересней и продуктивней. Заодно студенты закрепят знания о процессах компиляции и компоновки.

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

Но вот порядок: Ассемблер, Cи

порядок у автора Паскаль, Ассемблер, Си

а если учесть с какого возраста ожидаемый пользователь сего много-томного труда то

родной язык, система обозначений арифметики и начал алгебры, Паскаль, Ассемблер, Си, ....

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

Используя комбинацию этих языков можно провести короткие лабораторные по SSE инструкциям, где студенты успеют реализовать библиотеку для работы с вектором 4-х чисел и матрицами 4х4. Например, как умножить вектор на матрицу за 7-мь инструкций.

если идти в эту сторону то есть Алго-трюки для программиста Уоренна Генри. - но вообще то не вполне ясна необходимость умение в такое именно бито-манипулирования в среде не вполне умеющее в кубические уравнения и не вполне умеющие a+bi

qulinxao ★★☆
()

Недолгое ознакомление с книгой создало у меня следующие впечатления.

По сравнению с первым томом, Андрей Викторович исправился, пафосных излияний своей единственно верной позиции стало меньше. На большинство сомнительных действий он приводит свою аргументацию. Читать стало значительно приятнее. Но излияния всё же имеются, к примеру, стр. 195. Но текст там выделен, т.е. даёт читателю понять, что в этом блоке автор всё же не удержался и воспринимать это как истину не следует.

Пример про C++:

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

Ещё про комментарии //:

использование их в чистом Си часто рассматривается как дурной тон.

Из незначительных минусов: печально, что автор не упомянул об отладчике radare2 который крайне полезен. Немного расстроила и работа в 32 битном режиме, хоть автор явно указал, что у него старый компьютер который не умеет 64...

Автор опят проигнорировал тестирование, но, возможно, всё же охватит это в 3-ем томе....

В целом книга получилась значительно лучше чем первый том.

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

Пишите лучше про dos

тебе 100500 томов фролова мало?

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

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

Почему 32 битный? 16 битный значительно сложнее для понимания чем 32. Тогда как 32 битный несколько сложнее чем 64.

Не лучше ли начинать с простого православного 64 битного, а при желании уже смотреть на тот дурдом, который творился в 16 битном режиме?

Единственный плюс 32 битного, это то что не все готовы менять свои Pentium3/4 на 64 битные процессоры... Но для этого есть qemu-userspace...

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

Обоснование Паскаля, как первого ЯП я не оспариваю. Тут слишком много ЗА.

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

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

Почему 32 битный? 16 битный значительно сложнее для понимания чем 32. Тогда как 32 битный несколько сложнее чем 64.

А лучше вообще какой-нибудь MIPS взять, будет совсем просто

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

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

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

Тогда как 32 битный несколько сложнее чем 64.

Посмотри на соглашения о вызовах в 32-х и 64-х битных режимах.

На много проще идти в порядке: регистры, стек, FPU, SSE в 32-битном режиме, чем каша 64-х битного режима, различающихся ещё и на разных платформах.

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

при освоении асма у реципиентов уже есть модель паскаль-машины.

асму предшествует абстрактная модель Паскаль-машины в которой за аксиому взята стековость(общая черта всех алгол60-языков) а ведь тот же пример с жаваскриптом(в части кустов активации на куче для реализации замыканий - и вообще отсутствие стека, а всё есть объекты активации выделенные на «куче»(оптимизатор фактически использует стек и на кучу только то что замыкается в самостоятельно существующую сущьность)) см

вот асм-пример:

http://funcall.blogspot.ru/2011/02/no-stack-no-problem.html

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

А лучше вообще какой-нибудь MIPS взять, будет совсем просто

Мы рассматривает два параметра, это популярность и сложность.

Использование MIPS вместо 32: минус к популярности, минус к сложности.

Использование 64 вместо 32: плюс к популярности, минус к сложности.

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

Почему 32 битный? 16 битный значительно сложнее для понимания чем 32. Тогда как 32 битный несколько сложнее чем 64.

удваиваю. продолжив мысль - x86/64 значительно сложней для понимания, чем arm/aarch64.

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

Бло время и я думал ты адекватный. Время ушло.

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

anonymous
()

Обязательно закажу. Я создавал тему в Talks, где просил научить меня программированию. В том числе и за деньги. Отозвался человек, рассказал про свой инкубатор программистов. Но там только C++, а я хочу чистый Си, как Коливас :-)

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

А лучше вообще какой-нибудь MIPS взять, будет совсем просто

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

liberte
()

Автор молодец. Старая школа.

azorg
()
Ответ на: комментарий от AlexVR

Посмотри на соглашения о вызовах в 32-х и 64-х битных режимах.

ABI хоть из зависит от архитектуры, но придумывается другими людьми. Судя по википедии видов соглашений о вызовах под x32 10 штук, под x64 всего 3 штуки.

На много проще идти в порядке: регистры, стек, FPU, SSE в 32-битном режиме, чем каша 64-х битного режима, различающихся ещё и на разных платформах.

Документ Intel® 64 and IA-32 Architectures Software Developer’s Manual ответит Вам по двум картинкам:

  • Figure 3-1. IA-32 Basic Execution Environment for Non-64-bit Modes
  • Figure 3-2. 64-Bit Mode Execution Environment

Что по сути 64 несколько проще и удобнее. Хотя бы отсутствием заметки в 64 битном режиме:

The address space can be flat or segmented. Using the physical address extension mechanism, a physical address space of 2^36 - 1 can be addressed.

Собственно окна для адресации я и имел введу «дурдомом». В целом 64 ещё даёт лишнее пространство в регистрах для своих коварных грязных делишек, ну и всякие плюшки типа инструкции syscall и тп.

По картинкам о которых я упомянул выше Вы можете заметить, что ваши FPU, SSE в 64 битном режиме никуда не делись.

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

В целом 64 ещё даёт лишнее пространство в регистрах

А значит, приложение сложнее поломать сломать — в стэке, в основном, только %rip от callq и канарейка.

Кстати, вот норм игрушка: http://io.netgarage.org/

anonymous
()
Ответ на: комментарий от AlexVR

... выбирая компилятор Ассемблера ...

И как, выбрали?

anonymous
()
Ответ на: комментарий от ASM

свой ANsI-C компилятор ровно под ia-64(ну и скажем linux ABI) и благодаря этому(ia64 онли) прозрачный как слеза «славо» в дар автору для смены тактики обучения ?

зы. написаный по лудшим заветам(рсс) на самом же С с куском эмита в битики.

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

Сам себе противоречишь: «Мы сейчас что, живем в 80-е?» и «проверенная веками технология»

anonymous
()
Ответ на: комментарий от alman

В «Ауриге» были, например. Лично мне там приходилось править «первые три байта операционной системы» :) методом ассемблерных вставок.

В openSSL есть код на ассемблере, ну много где еще... Мелкоконтроллеры всякие...

gns ★★★★★
()

Спасибо за новость. Второй том учебника уже скачал...

Odalist ★★★★★
()

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

anonymous
()

Респект автору за книги и за свободный доступ к ним!

soko1 ★★★★★
()

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

Deleted
()

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

Изобилие слов-паразитов опять-таки удручает.

void_ptr ★★★★
()

Во второй том вошли части, посвящённые ассемблеру NASM и языку Си.

*facepalm*
А что же тогда было в первой?!!!! «Как программисту надраться в пятницу, чтобы в понедельник быть как огурчик»?! :)

Нда уж... многотомник «Что нужно женщине» чувствует угрозу.

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

а можно было просто шрифт увеличить, например

vvviperrr ★★★★★
()

Хороший повод научиться читать.

anonymous
()
Ответ на: комментарий от nerfur

это именно учебник программирования/информатики, то есть сами принципы кишочки, термины и прочее

Ясно. В общем, всё то, за что школьники ненавидят информатику. :) Я так и знал, что любое интересное дело можно превратить в занудный цикл формальностей с проблесками личных суждений.

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

Где обитают программисты на ассемблере?

В школьных компьютерных классах. Они там кусают других программистов и вместе они дрючат технику, где быстро может работать только АСМ.

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

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

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