Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Movi_programuvannya_yikh_klasifikatsiya_ta_rozv...doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
246.88 Кб
Скачать

ЗМІСТ

Вступ ............................................................................................................... 3

1.Інтерпретатори ........................................................................................... 4

1.1. Компілятори ........................................................................................... 6

2.Теоретичні відомості.................................................................................. 7

3. Виконання завдань ................................................................................ 29

Висновки....................................................................................................... 30

Список використаної літератури.............................................................. 31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вступ

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

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

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

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

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

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

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

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

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

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

Слабо помітним недоліком інтерпретаторів є те, що вони мають тенденцію відбивати бажання до хорошого стилю програмування. Оскільки коментарі та інші формалiзуються, деталі займають значне місце програмної пам'яті, люди прагнуть ними не користуватися. Диявол менш лють, ніж програміст, який працює на интерпретаторной Бейсіку, який намагається отримати програму в 120К в пам'яті ємністю 60К. але найгірше те, що інтерпретатори тихохідні. Ними витрачається занадто багато часу на розгадування того, що робити, замість того щоб займатися дійсно справою.

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

Розглянемо програму: на интерпретаторной Бейсік 10 FOR N = 1 TO 1000 20 PRINT N, SQR (N) 30

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

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

2.послать рядок на екран

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

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

5.преобразовать результат в рядок

6.послать рядок на екран

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

1.2. Компілятори

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

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]