1

Тема: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

Доброго дня. Я не програміст, але давно вже собі підбираю мову програмування, і нічого крім Ліспа, асемблера і Euphoria (то така мова) мене не зацікавило. Але про останню мову жодної книжки досі немає (або я не знайшов), в т. ч. на англійській мові; по асемблеру - майже вся література дуже сухо написана, ну а в складних діалектах Ліспа, перегружених сотнями функцій, я теж мало шо можу зрозуміти, так шо більшість книжок по ньому мені більш-менш нічого не дають. В ідеалі хочеться писати тільки на простому гарному Ліспі, і бажано комп'ютерні ігри, або просто шось корисне, але дуже й хочеться вникнути в низькорівневе програмування. Я ще й шукаю якесь просте ігророзробницьке середовище, орієнтоване на новачків, з використанням якоїсь з цих мов. Тільки будь-ласка ніяких порад про те шо краще вчити С++ і Java, бо моє мислення ці мови не сприймає. Це зовсім не питання смаку, це лише питання особливості мислення. Іншими мовами крім цих трьох я, думаю, скоріше за все не зацікавлюся, хіба шо може коли-небудь в світі відродиться минула цікавість до PL/1 (який краще чим С) або буде нормальна книжка по Prolog'ові (це не жарт), або якось розширять Brainf*ck до більш практичного застосування (ця мова, не дивлячись на свою назву, мені здалася толковою). Я вже трошки пробував писати на Ліспі - дуже простенькі програмки в текстовому режимі. На асемблері нічого не написав, тільки погрався з відлагоджувачем і спробував освоїти ази, передивився багато книжок по ньому, і взагалі, я хоч і чайник в програмуванні, але доволі впертий чайник, і словами "байт" і навіть "регістр" мене вже не злякаєш. А "рекурсія" то взагалі краса - мені в Ліспі рекурсією все значно легше писати, чим ітерацією. Може в мене якась трохи нестандартна голова, але чув шо про рекурсію говорили як про страшного монстра... Ну, не знаю, мені все навпаки. Кажуть шо і асемблер не такий страшний як його малюють. Більшість часу в мене йде на те шоб просто шукати літературу, бо я така людина шо поки не пойму суть, то надто багато сенсу в потугах програмувати не бачу. В математиці я теж дуб, і я у всьому самоучка. Знань про програмування я набирався не систематично, а хаотично, і маю в них такі діри, шо може й краще не признаватися. Тобто дешо я-то і розумію чи здогадуюся, навіть таке часом таке, шо звичайний посередній програміст не знає (то треба попрограмувати на Ліспі шоб зрозуміти), але разом з тим я не знаю багато чого елементарного, як не парадоксально. Але ж програмування то не завжди тільки математика, часом це просто, так би мовити, оригінальні логічні ідеї. Може якась добра людина порадить мені шось почитати шоб таки коли-небудь стати програмістом?.. і хоч трошки підтягнутися в математиці. Про "Будову й тлумачення комп'ютерних програм" (SICP) я в курсі. Але мене цікавить шось практичніше і бажано шоб це була суміш Ліспа з асемблером. І без "води": тобто отак, шоб просто відкрив книжку, і вперед, без всяких розсусолювань якими майже всі книжки забиті - бо ці пояснення або надто прості (таке шо й самому можна здогадатися), або надто складні. А ті ідеї, які дійсно нові для мене чи саме необхідні, приходиться ретельно вишуковувати і тратити на це багато часу. І я вже трошки підзадовбався ходити по колам. Мені достатньо для початку писати і запускати програми під DosBox'ом і стара література теж годиться, аби була хороша. А в ідеалі було би класно якби хтось грамотно пояснив як програмувати без операційної системи взагалі, самому написати загрузчик і тому подібне. Може хто підкаже якусь забуту унікальну книгу, в якій по-людськи таке чи йому подібне пояснюється? Я дійсно вірю шо одна мудра голова можна навчити мільйон інших. Головне - справжнє розуміння, ну і доброта з бажанням поділитися. Бо люди бувають всякі, в т. ч. програмісти: одні пишуть шось цікаве і добре, діляться цим зі світом, інші ж пишуть тільки віруси. Справжнім програмістом я мабуть ніколи не стану, але все-таки хочеться набути деякого розуміння в цій справі, скільки вистачить сил. В мене зовсім не технічна голова, і я взагалі не впевнений шо мені це все потрібно. Але, все-таки, вірю в те шо десь дуже хороші пояснення можна знайти.

Euphoria. "Скажи ні складним мовам програмування!".
http://rapideuphoria.com/

Лісп. А оця штука в мене чогось не запрацювала:
https://github.com/carp-lang/Carp

Асемблер. Мене зацікавив тільки оцей (навіть не fasm):
https://www.intelligentfirm.com/cpl32.html

До речі, відверто кажучи, Паскаль хоч і така-сяка громіздка й страшнувата мені мова, але мене чогось трохи до нього тягне. Чи-то ностальгія, чи-то шо... якби по ньому була б дуже хороша книжка, то я би теж спробував повчитися. Але тільки для того шоб написати свій міні-діалект Ліспа. Я знаю шо я схожий на мрійника, а програмуванню потрібна строгість, а не мрії. Але я не дуже розділяю точку зору шо програмування це не мистецтво, і шо треба йти в навчальний заклад шоб вивчитися. І взагалі таке враження шо на світі існує якась велика змова проти самостійного навчання в будь-якій галузі, і шо багато кращих книжок вже давно написані, але разом з тим приховані від білшості простих людей, і ними користується тільки "еліта" яка керує цим світом. Коротше кажучи, я хоч і невіглас, але я не схильний вірити, шо якшо я шось не розумію в програмуванні, то шо це я дурний, а не шо книжка дурна. Схоже шо більшість книжок то дійсно макулатура, це стосується й програмування. Більшість авторів не здатні (або не ставлять собі за ціль) поставити себе на місце читача, і зрозуміти шо йому потрібно. Сучасним світом на жаль керує в основному бабло, а не щира чистосердечна творчість. Але я надіюся знайти книжку, яка написана саме творчою людиною. Я вже бачив випадки шо програмісти бувають наприклад й музикантами одночасно. Значить це все цілком сумісно.

2

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

flamingbird написав:

Більшість авторів не здатні (або не ставлять собі за ціль) поставити себе на місце читача

:)

3

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

До речі, шоб пройнятися нормальним, по-справжньому вчительським, духом, пропоную (хто розуміє чи кому підходить російською) почитати цю невеличку розіповідь одного математика. Пол Локхарт - "Плач Математика":
Хто бридиться російською, можете пошукати "Paul Lockhart - Mathematician's Lament".

4

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

Ассемблер вам нащо? Що саме цiкавить (реверс , програмування, яка ОС, платформа)?

5

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

Reverse engineering мене, можна сказати, не цікавить (якшо я вірно розумію цей термін). Цікавить просто творчість. Програмування для мене це спосіб розширити свої творчі можливості. В 80-х і на початку 90-х асемблер начебто ж був в повному ходу в багатьох ігроробів, не тільки в аміжників (amiga), і якось люди його осилювали. Я поки шо під Windows'ом 7-им, але інколи і сижу і за старим Debian'ом (хоча я не лінуксоїд, зовсім, і не розбираюся в ньому). А взагалі мені й під DosBox'ом достатньо було би запускати.

6

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

Для "творчостi" вiзьмiть книжку по Асму пiд ДОС (Калашников, Абель чи щось таке), i творiть там хоч вiруси хоч iншi программи.
У вiндi на Асмi писати важче, бо треба знати вiнапi, i це деталi вiдволiкають вiд сутi.
В дебiанi можете попробовувати, вродi би там сходе на дос (сiсколи ), тут непогана книжка (лiнукс асм) вiд автора  Столяров (гугл iт).

всi книги на рос. мовi.

7

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

ExPy, всі ці книжки мені знайомі, і вони мені не допомогли, або мало допомогли. Якшо мені їх рекомендуєте, то певне Ви не прочитали "Плач математика", і не пройнялися духом правди...

8

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

якщо вже ці книжки не допомогли, то нашо рухатись дальше в програмуванні.

Подякували: leofun011

9

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

Програмування це не мистецство, це праця i рутина.
Якщо вам треба саме якесь там "мистецтво" "творчiсть" та iншу лiрику - займiться музикою, вiршами чи церемонiальною магiєю.

10

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

flamingbird написав:

Про "Будову й тлумачення комп'ютерних програм" (SICP) я в курсі. Але мене цікавить шось практичніше і бажано шоб це була суміш Ліспа з асемблером.

А я якраз SICP почав проходити, бо чув що вона якраз пракрична - там в передостанньому розділі будують інтерпретатор ліспа на ліспі, а в останньому - компілятор. А якщо вже вміти писати компілятори - то можна собі зробити мову яку хочеш ні. Правда ще перший розділ не пройшов (хоча читаю другий).

ExPy написав:

Програмування це не мистецство, це праця i рутина.

Ну як коли. Більшість всього що я бачив на https://www.shadertoy.com/ - мистецтво. Ось можна наприклад можна подивитись на митця за роботою:

https://www.youtube.com/watch?v=-pdSjBPH3zM

Подякували: leofun011

11

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

бажано шоб це була суміш Ліспа з асемблером.

Як саме ви це уявляєте? Асемблер з лісп-подібним синтаксисом і ліспівськими макросами? Лісп з асемблерними вставками? Щось схоже на лісп, але з більш низькорівневим набором інструкцій?...

12

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

ExPy написав:

Програмування це не мистецство, це праця i рутина.
Якщо вам треба саме якесь там "мистецтво" "творчiсть" та iншу лiрику - займiться музикою, вiршами чи церемонiальною магiєю.

Залежить від поставленої задачі. Якщо йдеться про комерційне виконання тривіальних задач — праця, рутина і копіпейст (привіт, Стековерфлов!).
Якщо характер задач виходить за рамки тривіальних — таки вже мистецтво, навіть якщо кінцева ціль цілком практична (напр., написати мінімалістичний високооптимізований код і, можливо, заробити на цьому).
Ну і програмування для себе — якщо це у формі експериментів з кодом, то, в якійсь мірі, мистецтво (дивлячись скільки зусиль віддавати на це і як далеко в нетрі нестандартних ідей заглиблюватись — навіть мистецтво заради мистецтва вимагає праці для свого втілення).

13

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

якщо вже ці книжки не допомогли, то нашо рухатись дальше в програмуванні.

Думаю Ви намагаєтеся збити мене, новачка, з толку, і привити мені песимізм, не кажучи про те, шо в англомовному світі є ще купа книжок по асемблеру, які ви мабуть навіть пробували дивитися.

bunyk, та SICP цікава книжка, видно шо написана з толком, і мені подобається її часом гортати, але вона мені в дечому трохи заскладна. Це трохи не те шо я шукаю. Книжку Пола Грема (і його есе) теж було доволі корисно почитати. Взагалі хороший дядько.

Як саме ви це уявляєте? Асемблер з лісп-подібним синтаксисом і ліспівськими макросами? Лісп з асемблерними вставками? Щось схоже на лісп, але з більш низькорівневим набором інструкцій?...

Я про асемблернні вставки. Хоча може й хтось написав вже якийсь діалект Ліспа, де, скажімо, доступ до якоїсь кількості перериваннь чи всілякі jnz якось розумно змішані з основними функціями, тобто це вже буде шось середнє. В Brainf*ck'ові наприклад цикл доходить завжди нуля. То, може, й в якомусь розумному міні-діалекті Ліспа придумають ще й якийсь цікавий подібний компроміс заради збереження ідейної простоти. А може й буде шось таке як стековий Forth який, кажуть, не ясно чи машинний, чи високорівневий. Тут в списку зустрічається декілька реалізацій scheme, які більш машинно-орієнтовані:
http://community.schemewiki.org/?scheme … mentations
Оцей особливо:
https://scheme.fail/
А до макросів в Ліспі я не доріс, так і не зрозумів як ними користуватися.

14 Востаннє редагувалося P.Y. (06.07.2020 20:59:10)

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

А до макросів в Ліспі я не доріс, так і не зрозумів як ними користуватися.

Насправді не настільки складно. Втім, дивлячись що ми розуміємо під ліспом і макросами — якщо йдеться про scheme й виписані в її стандарті «гігієнічні макроси», то, ІМНО, це переускладнена байда з обмеженими можливостями. На щастя, в більшості реалізацій scheme присутні й класичні ліспівські defmacro — по суті своїй досить простий механізм з широкими можливостями. Фактично, макрос у ліспі — це функція, що повертає список, який підставляється на місце виклику макроса і обробляється як ліспівський код. Ну і там з ними можна різні цікаві речі робити — наприклад, це можуть бути нові алгоритмічні конструкції.
Наприклад, щось ось таке (код написано для SISC, в інших реалізаціях може відрізнятись):

(define-macro (let-dynamic bindings . body) 
 (let    ((tempvars (map (lambda (binding) (gensym))  bindings))
      (res (gensym)))
    `(let
    ;; save vars:
    ,(map (lambda (tempvar binding) `(,tempvar ,(car binding))) tempvars bindings)
    ;; assign them by set! :
    ,@(map (lambda (binding) `(set! ,@binding)) bindings)
    ;; execute body, save its result:
    (let ((,res (let() ,@body)))
    ;; reassign saved vars back:
    ,@(map (lambda (binding tempvar) `(set! ,(car binding) ,tempvar)) bindings tempvars)
    ,res))));; return result

Тут описується макрос let-dynamic, який можна використовувати замість let, з тією відмінністю, що він не створює локальних змінних, а тимчасово записує значення в існуючі змінні, а по завершенню відновлює їхні значення. В інших ліспах (таких як CL та Clojure) подібні варіанти let доступні з коробки, а тут для однієї задачки довелося писати самому (що, втім, не так вже й складно).

15

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

Почав читати Ваш приклад, і зловив себе на думці, шо я майже ніколи не користувався функцією map - мене вона чогось трохи заплутує (хоча й все дуже просто начебто), і завжди при нагоді намагався замість map'а писати свою дрібну функцію, яка сама вірно все про-cdr-ювала в списках відповідно до описаної структури, бо по суті map не набагато складніша за звичайний cdr. Просто трохи універсальніше. Я так робив, бо map, здається, видавала часом якусь помилку, потребувала шоб кількість елементів збігался, чи-то шо. А взагалі мені подобається простота і майже крайній мінімалізм. Мабуть тому шо я творча людина, і мені ї хочеться кожен пазлик скласти вручну. Мені подобається навіть коли list-ref або member пишуться вручну, хоча може це й трохи дивно звучить. Але дійсно хотілось би знайти такий мінімалістичний Лісп, в якому таких функцій нема, зате є самі-самі осноновні, однак в тому числі з графікою, звуком та всім іншим шо потрібно для створення гри, і по можливості з якимось низькорівневим доступом якшо хочеться трохи грамотнішу розробку (тобто так, шо людина яка має розуміння, могла хоча би так-сяк оптимізувати свою програму, а не так, шо якась там примітивна гра займає цілу купу як оперативної так і постійної пам'яті). Можливо таким Ліспом є NewLisp, який займає 200-300 кб, і який можна навіть застосувати собі як окремий .dll, але я з цим всім не розібрався. Того мене тягне на асемблер - хочеться зробити свою міні-мову самому.

А взагалі якось я прочитав, шо все шо пишеться в Ліспі макросами можна написати й без макросів. Там ще було сказано: "перш ніж навчитися бігати, навчіться ходити". Я-то здогадуюся, шо в макросах лежить якась дуже проста ідея, але я її не догнав. Але мова поки шо не про це. Поки шо я просто шукаю літературу - і не таку шоб для чайників зовсім, але і не таку шоб для професіоналів, а просто якусь з дуже персональними поясненнями. Та взагалі-то по будь-якій мові... з перечисленних, не тільки по асемблеру. Зазвичай автори сюсюкають з читачем, обсипають його чи її всякими this is so easy, і потім так сидиш собі, і ловиш себе на думці, шо я вже прочитав декілька десятків стоорінрок, а роботи ще так і не почалося. І так десятки книг... чи навіть більше.

Вже немало часу пройшло з тих пір як я писав шось на Ліспі, і я його призабув, мені приходиться тепер майже з нуля знову братися за нього. То ж така мова, шо дозволяє зосередитися саме на ідеях, навіть при самому примітивному синтаксисі/наборі інструментів. Я не люблю користуватися чимось готовеньким (на відміну від більшості програмістів) і по можливості намагався писати все самостійно "з нуля" - і для розуміння, і так, з принципу - наприклад таку функцію, яка би сама замінила в складному спискові якийсь атом і повернула список назад з такою ж розстановкою дужок. Я тільки починав тоді вчити Лісп, і потім виявилося шо така функція вже є готовою для використання, якесь "substitude" чи якось так. Потім написав іншу... простеньку але корисну, і виявилося шо вона теж є, і називалася iota. Не розумію чого в книжках не показують такі приклади для самостійної роботи. І взагалі мені туго доходить суха документація і завжди більш-менше важко кулупатися в чужому коді. Воно-то корисно, часом. Але якось... не доганяю, чого так модно вчити чуже, а не створювати по можливості з нуля своє. Яку книжку не прочитай - то всюду якісь бібліотеки, бібліотеки... з до болю готовеьникми функціями і зазвичай перенаворочені. Або навіть банально оця от ідея про "in-package"... навіть вона мені здається зайвим ускладненням. Хіба не можна одну файну самодостатню програму написати в одному довжелезному файлі і загрузити його через load? Але люди так чогось не роблять. От наприклад появився в common lisp'і якийсь там quicklisp, і чогось майже всі його ставлять в умову - але я так і не поняв шо це таке і як його встановити й примінити. І в результаті "ні одної" бібліотеки, які шукав, не зміг собі підключити. Все це якось залутано для мене. Хіба не можна було просто один .scm файл і все? Було б дуже круто, якби якась мудра голова зробила самий мінімальний але самий самодостатній інструмент для творчої людини яку любить вникати в суть і творити шось нове.

16

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

А взагалі якось я прочитав, шо все шо пишеться в Ліспі макросами можна написати й без макросів.

Можна. Насправді потреба в написанні власних макросів виникає досить рідко. Я б сказав, макроси доцільно використовувати тоді, коли код з макросами виходить чистішим, ніж код без макросів, краще виражає загальну ідею. Ось, наприклад, у моєму прикладі: все це можна зробити й руками, записуючи старі значення в локальні змінні, а потім відновлюючи їх з допомогою set! — проте, в такому коді простіше «прострелити собі ногу», десь не відновивши значення, або зробивши таке відновлення не в тому місці. Макрос просто дозволяє робити це ж саме щоразу правильно, не відволікаючи програміста на дрібні деталі.

Крім того, деякі макроси доступні початково й сприймаються як частина стандартного синтаксису мови. Усі алгоритмічні конструкції, крім найпримітивніших, являють собою вбудовані макроси.

Почав читати Ваш приклад, і зловив себе на думці, шо я майже ніколи не користувався функцією map - мене вона чогось трохи заплутує (хоча й все дуже просто начебто), і завжди при нагоді намагався замість map'а писати свою дрібну функцію, яка сама вірно все про-cdr-ювала в списках відповідно до описаної структури, бо по суті map не набагато складніша за звичайний cdr.

На початку я теж усе робив з простих елементів — початківцеві простіше робити все власноруч через рекурсію й прості маніпуляції зі списками, щоб чітко бачити, що його програма робить. Згодом освоїв інший стиль написання коду з використанням map, filter, reduce та інших подібних функцій для маніпуляцій зі списками (щоправда, тоді я вже перейшов зі Scheme на Clojure, де такий код можна зробити дещо красивішим) — менше уваги дрібним деталям, більше результату на виході.

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

Поставте себе на місце автора бібліотеки — йому не хочеться, щоб його творіння померло разом з ним, він хотів би, щоб цими функціями користувались інші люди. Якщо це якісь прості функції, то, ймовірно, хтось їх написав уже до нас — просто тому, що вони прості. Якщо це щось наворочене, то авторові цих наворотів тим більше хотілось би їх популяризувати. Тому, маючи можливість — напр., якщо автор бібліотеки за сумісництвом є автором підручника, або університетським викладачем, або автором якоїсь із реалізацій ліспа — він буде докладати зусиль, щоб написання коду з цими бібліотеками набуло популярності.

Ну, а так, часто найпростіший спосіб зрозуміти, як працює функція — це написати її самому. Або ж у документації до якоїсь простої функції можуть навести її код як найкращий спосіб пояснити, що́ саме ця функція робить.

17 Востаннє редагувалося koala (07.07.2020 08:04:02)

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

flamingbird написав:

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

А хіба з мовами програмування не те саме?
Чи з наукою та інженерією взагалі?
Вчити чуже - швидше, ніж придумувати своє, і швидше дає нові результати, а не повторення вже досягнутих.
Код у бібліотеках, зазвичай, написаний-переписаний їхніми авторами по кілька разів у різних місцях, через що, власне, вони і вирішили не переписувати його знову, а створити бібліотеку.
Якщо вам так кортить саме своє робити - чому б вам не почати з розробки архітектури процесора? Звісно, не на готових елементах, а придуманих і зроблених самотужки. Хоча ні, вам для цього знадобляться математика і фізика, розроблені - який жах - іншими людьми! Треба почати з перегляду математики і фізики. Хоча ні, спершу доведеться вчитися писати. А перед тим - розмовляти, ви ж використовуєте чужі бібліотеки! Дехто, до речі, й справді людські мови перевигадує. Поцікавтеся Іфкуїлєм, може, трохи вас від вашої теми відірве.

18 Востаннє редагувалося Droid 77 (07.07.2020 10:20:52)

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

flamingbird написав:

В 80-х і на початку 90-х асемблер начебто ж був в повному ходу в багатьох ігроробів, не тільки в аміжників (amiga), і якось люди його осилювали.

ASM актуальний при програмуванні мікроконтролерів і то в окремих випадках. Коли треба впихнути не-впихаєме або прискорити не прискорюєме. Атак зазвичай, наприклад для програмування МК використовують мову C іноді C++.
У прикладному програмуванні ASM якщо і використовують то не в чистому вигляді, а у якості ASM-вставок. Знову-ж для прискорення неприскорюємого.

19

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

У 80-ті асемблер був більш актуальний, бо в тодішніх ПК розмір оперативки був такий, що задача «впихнути невпихуване» виникала досить часто. У ранньому (та й не тільки ранньому) геймдеві мало значення прискорити неприскорюване — або пишучи більш оптимальний асемблерний код, ніж генерує сішний компілятор, або використовуючи машинні команди для доступу до нових можливостей заліза, які, знову ж, у стандартні компілятори не включили.
Оскільки прикладні програми 80-х за визначенням мали бути компактними, це значно спрощувало й роботу з їхнім деасембльованим кодом. Знаю на іншому форумі одного любителя, який таким способом поступово розширював функціонал свого улюбленого текстового редактора, і досі ним користується.

Подякували: leofun011

20

Re: Шукаю хорошу книжку по асемблеру,чи по Ліспу або Euphoria.Непрограміст

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

У більшості мов програмування це типовий підхід. Хоча, наприклад, в APL правильним підходом вважається не писати бібліотеки функцій для типових дій, а запам'ятовувати ідіоми — усталені способи виконання цих дій з допомогою стандартних вбудованих функцій. При цьому, транслятор APL ці ідіоми може розпізнавати й генерувати для них оптимізований код — тобто, фактично, ідіоми являють собою продовження стандартної бібіліотеки, функції чи макроси, для виклику яких використовуються не імена, а вирази. Ну але це APL з його компактним синтаксисом, де функція з осмисленим ім'ям займала б більше місця в тексті програми, ніж вираз, який робить те ж саме.