Чи правильно я розумію суть програмування
Я новачок, що вивчає програмування методом порівняльного вивчення мов програмування, що використовуються в предметній галузі, що цікавить мене, — Web dev'е. Роблю я це для того, щоб вивчити кілька мов, а конкретніше — їхні спільні функціональні властивості, елементи та прийоми кодування, шляхом створення за допомогою тих самих програм, щоб впевнено почуватися перед тим, як намагатися будувати кар'єру в предметній галузі.
Хочу дізнатися, чи правильно я розумію сам процес, саму суть програмування, і ось як я його бачу:Програмування - вміння кодувати алгоритми, призначені для виконання процесором, на мові, синтаксис якої, в кінцевому рахунку - після стадій трансляції символьних масок у послідовність електричних сигналів, призначений для розуміння процесором. В результаті кодування алгоритму/ів виходить комп'ютерна програма. У алгоритмах необхідно грамотно використовувати типи та структури даних, відповідно до того, як вони кодуються в пам'яті та інтерпретуються процесором.
Формат інтерпретації даних та їх кодування у пам'яті, а також список команд, які здатний виконати процесор, зумовлені виробником CPU та описані в Instruction Set Architecture процесора?
Ось ще хвилює питання: саме ISA визначає те, як закодовані дані у пам'яті чи вона визначає лише те, як ці дані інтерпретуються процесором? Якщо ISA не визначає кодування даних, то що?
Ось ще одне хвилююче питання: якщо програмування починалося з болісного прямого введення послідовностей бінарних електричних сигналів у машину на інтерпретацію, то як було створено перший перший інтерпретатор саме текстовийпрограми?
А у вас. Таке відчуття що ви копірайтер і пишіть статтю на тему в якій зовсім не знаєте. Від великої кількості красивих слів розумніший вислів не стає.
GMP є безкоштовним library для arbitrary precision arithmetic, operating on signed integers, rational numbers, andfloating-pointnumbers.
Формат інтерпретації даних та їх кодування у пам'яті, а також список команд, які здатний виконати процесор, зумовлені виробником CPU та описані в Instruction Set Architecture процесора?
Так, все правильно розумієте. Виробники процесорів звичайно намагаються стандартизувати свої архітектури, але все одно залишаються ньюанси як у AMD, так і Intel (якщо розглядати тільки ПК).
У цілому нині для ПК (саме для ПК) існують якийсь стандарт x86, і навіть розширення x86-64. Саме він описує набір доступних програмісту інструкцій, прапорів та осередків даних (регістрів). У рамках цього стандарту кожна інструкція має свій опкод.
Тобто. Після компіляції програми в машинний код (двійкову послідовність) опкоди команд будуть однакові для всіх x86-сумісних процесорів (тобто компіляція йде не під окремий процесор, а під архітектуру, а самих архітектур багато, x86, ARM і т.д.). ). Це дозволяє запускати програми з однаковим результатом як на процесорах Intel, так і на AMD.
Програмування - вміння кодувати алгоритми, призначені для виконання процесором, на мові, синтаксис якого, зрештою - після стадій трансляції символьних масок у послідовність електричних сигналів, призначений для розуміння процесором
Якщо розглядати тільки процес кодування, то приблизно так і є. Але зараз під терміном "програмування" мається на увазіщось більше, ніж простий набір інструкцій з клавіатури. Програмування – прикладна наука. Без предметної області програмування немає у принципі. І саме предметна область найчастіше визначає якою буде мова та інфраструктура.
Від програміста потрібно не тільки забити алгоритм і відкомпілювати вихідний код, але й найчастіше цей алгоритм спочатку придумати/комбінувати. Без знання предметної області цього зробити знову ж таки не вийде, або вийде, але малоефективно.
На жаль, такі завдання не покриваються програмістами іншої спеціальності, наприклад системниками - т.к. вони зазвичай пишуть дуже низькорівневі речі: драйвери пристроїв, модулі ядра ОС тощо. тому веб-розробникам дуже бажано це вміти робити.
У 90% завдань звичайно це не потрібно (особливо де треба "натягувати верстку на двигун" = D), але якщо хочете рости як професіонал і покривати весь спектр можливих завдань в Інтернеті, то це, як кажуть, must have.