Матеріали для Нової української школи 1 клас - планування, розробки уроків, дидактичні та методичні матеріали, підручники та зошити

ОБРОБКА І ПЕРЕДАЧА ІНФОРМАЦІЇ. СУЧАСНІ КОМП'ЮТЕРНІ ТЕХНОЛОГІЇ - Золота колекція рефератів - 2018

МОВИ ПРОГРАМУВАННЯ: ЇХНЯ КЛАСИФІКАЦІЯ Й РОЗВИТОК

Єдиний спосіб вивчати нову мову програмування

писати нею програми.

Брайєн Керніган

ВСТУП

Мова формує наш спосіб мислення і визначає те, про що ми можемо мислити.

Б. Л. Ворф

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

Мова програмування служить двом пов’язаним між собою цілям: вона дає програмістові апарат для задавання дій, які повинні бути виконані, і формує концепції, якими користується програміст, розмірковуючи про те, що робити. Першій мети ідеально відповідає мова, яка настільки «близька до машини», що всіма основними машинними аспектами можна легко й просто оперувати досить очевидним для програміста чином. Другій меті ідеально відповідає мова, яка настільки «близька до розв’язуваного завдання», щоб концепції її розв’язання можна було виражати прямо й коротко.

Між мовою, якою ми думаємо/програмуємо, та завданнями й рішеннями, які ми можемо представляти у своїй уяві, існує дуже тісний зв’язок. Через це обмежувати властивості мови тільки цілями виключення помилок програміста в найкращому разі небезпечно. Як і у випадку з природними мовами, є величезна користь бути, принаймні, двомовним. Мова падає програмістові набір концептуальних інструментів. Якщо вони не відповідають завданню, то їх просто ігнорують. Наприклад, серйозні обмеження концепції покажчика змушують програміста застосовувати вектори й цілу арифметику, щоб реалізувати структури, покажчики й т. п. Ефективне проектування й відсутність помилок не можуть гарантуватися тільки за рахунок мовних засобів.

Може здатися дивним, але конкретний комп’ютер здатний працювати з програмами, написаними його рідною машинною мовою. Існує майже стільки ж різних машинних мов, скільки й комп’ютерів, але всі вони є різновидами однієї ідеї: прості операції здійснюються зі швидкістю блискавки на двійкових числах.

Персональні комп’ютери IBM використовують машинну мову мікропроцесорів сімейства 8086, тому що їхня апаратна частина грунтується саме на цих мікропроцесорах.

Можна писати програми безпосередньо машинною мовою, хоча це й складно. На ранньому етапі комп’ютеризації (на початку 1950-х рр.) машинна мова була єдиною мовою — більшого людина на той час не придумала. Для порятунку програмістів від суворої машинної мови програмування були створені мови високого рівня (тобто немашинні мови), які стали своєрідною сполучною лапкою між людиною й машинною мовою комп’ютера. Мови високого рівня працюють через трансляційні програми, які вводять «вихідний код» (гібрид англійських слів і математичних виразів, які зчитує машина) і в остаточному підсумку змушують комп’ютер виконувати відповідні команди, які даються машинною мовою. Існують два основні види трансляторів: інтерпретатори, які сканують і перевіряють вихідний код в один крок, і компілятори,

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

Інтерпретатори

Одна з переваг інтернретаторної реалізації, яка згадується найчастіше, полягає в тому, що вона допускає безпосередній режим. Безпосередній режим дозволяє вам задавати комп’ютеру завдання типу PRINT 3.14159-3/2.1 і повертає вам відповідь, як тільки ви натиснете клавішу ENTER (це дозволяє використовувати комп’ютер вартістю 3000 доларів як калькулятор вартістю 10 доларів). Крім того, інтерпретатори мають спеціальні атрибути, які спрощують настроювання. Можна, наприклад, перервати обробку інтерпретаторної програми, відобразити вміст певних змінних, швидко переглянути програму, а потім продовжити виконання.

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

Однак інтерпретаторні мови мають недоліки. Необхідно, наприклад, маги копію інтерпретатора в пам’яті увесь час, тоді як багато можливостей інтерпретатора можуть не бути необхідними для виконання конкретної програми.

При виконанні програмних операторів інтерпретатор повинен спочатку сканувати кожний оператор з метою прочитання його вмісту (що ця людина просить мене зробити?) потім виконати потрібну операцію. Оператори в циклах скануються дуже довго.

Розглянемо програму інтерпретаторним Бейсиком:

10 FOR N=1 ТО 1000

20 PRINT N. SQR(N)

30 NEXT N.

При першому переході у цій програмі Бейсик-інтерпретатор повинен розгадати, що означає рядок 20:

1. Перетворити числову змінну N на рядок.

2. Послати рядок на екран.

3. Перемістити в наступну зону друку.

4. Обчислити квадратний корінь із N.

5. Перетворити результат на рядок.

6. Послати рядок на екран.

При другому проході циклу все це розгадування повторюється знову, тому що всі результати вивчення цього рядка якусь міллісекунду тому абсолютно забуті. І так у всіх наступних 998 проходах. Абсолютно очевидно, що якби вам удалося якимось чином відокремити фазу сканування/розуміння від фази виконання, ви мали б швидшу програму. І це саме те, для чого існують компілятори.

Компілятори

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









загрузка...

Віртуальна читальня освітніх матеріалів для студентів, вчителів, учнів та батьків.

Наш сайт не претендує на авторство розміщених матеріалів. Ми тільки конвертуємо у зручний формат матеріали з мережі Інтернет які знаходяться у відкритому доступі та надіслані нашими відвідувачами. Якщо ви являєтесь володарем авторського права на будь-який розміщений у нас матеріал і маєте намір видалити його зверніться для узгодження до адміністратора сайту.

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

© 2008-2019 Всі права на дизайн сайту належать С.Є.А.