ГЛАВА 1
Побутова абстракцій за допомогою процедур
Дії, в яких розум проявляє свої
здібності щодо своїх простих
ідей, суть головним чином наступні
три: 1) З'єднання декількох простих
ідей в одну складну; так утворилися
всі складні ідеї, 2) Зведення разом
двох ідей, однаково, простих або
складних, і зіставлення їх одну з
іншій так, щоб оглядати їх відразу,
але не з'єднувати в одну; так розум
набуває всі свої ідеї відносиними,
3) Відокремлення ідеї від усіх інших
ідей, супутніх їм у реальній
дійсності; ця дія
називається «абстрагуванням», і при
його допомозі утворені всі загальні ідеї в
умі.
Джон Локк.
«Досвід про людський розум» (1690)
Ми збираємося вивчати поняття обчислювального процесу (computational process). Обчислювальні процеси - це абстрактні істоти, які живуть в комп'ютерах. Розвиваючись, процеси маніпулюють абстракціями іншого типу, які називаються даними (data). Еволюція процесу направляється набором правил, званим програмою (program). По суті, ми зачаровуємо духів комп'ютера за допомогою своїх чар.
Обчислювальні процеси і справді цілком відповідають уявленням чаклуна про духів. Їх не можна побачити чи помацати. Вони взагалі зроблені не з речовини. Водночас вони абсолютно реальні. Вони можуть виконувати розумову роботу, можуть відповідати на запитання. Вони здатні впливати на зовнішній світ, оплачуючи рахунки в банку або керуючи рукою робота на заводі. Програми, якими ми користуємося для заклинання процесів, схожі на чари чаклуна. Вони ретельно складаються з символічних виразів на складних і мало кому відомих мовах програмування (programming languages), що описують завдання, які ми хочемо доручити процесам.
На справно працюючому комп'ютері обчислювальний процес виконує програми точно і безпомилково. Таким чином, подібно учневі чародія, програмісти-новачки повинні навчитися розуміти і передбачати наслідки своїх заклинань. Навіть дрібні помилки (їх зазвичай називають багами (bugs) або глюками (glitches)), можуть призвести до складних і непередбачуваних наслідків.
На щастя, навчання програмуванню не так небезпечно, як навчання чаклунства, оскільки духи, з якими ми маємо справу, надійно пов'язані. Водночас програмування в реальному світі вимагає обережності, професіоналізму і мудрості. Наприклад, дрібна помилка в програмі автоматизованого проектування може привести до катастрофи літака, прориву греблі або самознищення промислового робота.
Фахівці з програмного забезпечення вміють організовувати програми так, щоб бути потім обґрунтовано впевненими: отриманні процеси будуть виконувати ті завдання, для яких вони призначені. Вони можуть зобразити поведінку системи заздалегідь. Вони знають, як побудувати програму так, щоб непередбачені проблеми не привели до катастрофічних наслідків, а коли ці проблеми виникають, програмісти вміють налагоджувати (debug) свої програми. Добре спроектовані обчислювальні системи, подібно добре спроектованим автомобілям або ядерним реакторам,побудовані модульно, так що їх частини можуть створюватися, замінюватися і ремонтуватись окремо.
>далі буде
Ще немає коментарів