69125

Засоби створення програм. Класифікація мов програмування. Технологія створення программ

Лекция

Информатика, кибернетика и программирование

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

Украинкский

2014-09-30

74 KB

9 чел.

Лекція 2. Тема:Засоби створення програм.Класифікація мов програмування.

                          Технологія створення программ.

План:

1.Засоби створення программ

2.Класифікація мов програмування

3. Технологія створення програми

4. Перетворення програми і система програмування

5. Походження та розвиток мови Pascal

1.Засоби створення програм

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

2.Класифікація мов програмування

У прикладі 1.1 використовувалися числові коди операцій і числові значення адрес комірок пам'яті. Такий спосіб написання програм називається програмуванням у числових кодах, а мова, якою записуються такі програми, — машинною. Машинна мова — це «природна мова» певного комп'ютера, яка визначається під час проектування його апаратних засобів. Машинні мови важкі для людського сприйняття. Тому природним виявилося прагнення автоматизувати процес написання програм, для того щоб полегшити працю програміста, частково поклавши його роботу на саму машину. Програмісти почали використовувати більш звичну для людини символьну форму опису обчислень, а перетворення програм у машинні коди здійснювали за допомогою програм трансляції (від англ. translation — переклад), які називаються асемблерами (від англ. to assemble — збирати).

Мови програмування, у яких числове кодування команд було замінено їх символьним зображенням, називалися мовами символічного кодування, а системи програмування — системами символічного кодування (ССК). Нині такі мови перетворилися в досить потужні засоби програмування, названі асемблерами.

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

Приклад

Припустимо, що комірки оперативної пам'яті з адресами 100, 101, 102 і 103 позначено відповідно як WORDA, WORDB, WORDC, WORDD. Для виконання операцій необхідні регістри процесора, які позначено як АХ і ВХ. Команди «прочитати» й «записати» позначено як MOV, «додати» і «помножити» — як ADD та MUL. Тоді послідовність команд із прикладу 1.1 матиме такий вигляд (після крапки з комою в кожному рядку наведено коментарі до заданої дії):

MOV AX. WORDB іпрочитати число за адресою WORDB і записати його до регістра АХ

MOV ВХ, WORDC іпрочитати число за адресо» WORDC і записати його до регістра ВХ

ADD АХ. ВХ :додати числа з регістрів АХ і ВХ. суму записати в АХ

MUL WORDD ;помножити вміст регістру АХ на число, записане за адресою WORDD

MOV WORDC. АХ :записати число з регістра АХ за адресою WORDC

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

Для прискорення процесу програмування були розроблені мови програмування високого рівня, які дозволяли писати програми, за формою близькі до людської мови, та використовували загальноприйняту математичну нотацію. Перша з них з'явилася наприкінці 1950-х років і називалася Fortran. Назва була скороченням від слів FORmula TRANslation, що у перекладі означає трансляція формул. Опис мовою високого рівня програми, наведеної у прикладі 1.12, може виглядати так:

r=b+c

a=r*d

Нагадаємо, що обчислюється вираз за формулою а = (Ь + с) х d. У тексті програми іменами a, b, c, d, г позначені комірки пам'яті, в які записуються числа.

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

3. Технологія створення програми

Розглянемо процес створення програми у найбільш загальних рисах.

Розробка програми починається з постановки задачі, яку пропонує замовник. Іноді аналіз і уточнення задачі дають можливість формалізувати її постановку, в результаті з'являється математично точний і однозначний опис задачі. Після уточнення постановки задачі починається проектування програми. Як правило, в задачі можна виділити декілька підзадач і описати процес їх розв'язування окремо. Відповідно й алгоритм складається зі зв'язаних та узгоджених між собою частин, які описують процес розв'язання підзадач. У початковому алгоритмі дії подано в абстрактному вигляді, далекому від того, що може виконувати комп'ютер. Алгоритм уточнюють декілька разів і надають йому вигляд, за яким легко написати програму або її частину.

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

Помилки, пов'язані з порушенням правил граматики в тексті програми, написаної мовою високого рівня. їх можна виявити у процесі трансляції, тому
вони називаються помилками часу трансляції (compiler error).

Помилки, що виявляються під час виконання робочої програми. Вони можуть вникати, наприклад, в результаті переповнення розрядної сітки чи при спробі видобути квадратний корінь із від'ємного числа. Такі помилки називаються
помилками часу виконання (run time error).

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

Помилки у вихідних даних.

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

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

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

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

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

4. Перетворення програми і система програмування

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

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

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

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

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

Описані засоби (текстовий редактор, транслятор та (або) інтерпретатор, ком-понувальник, завантажувач і налагоджувач) разом утворюють систему програмування, або інтегроване середовище розробки (Integrated Development Environment, IDE). Крім них до складу IDE входить бібліотека стандартних підпрограм, які можна використовувати під час створення програми.

5. Походження та розвиток мови Pascal

Повернімося до історії. Майже одночасно з мовою Fortran було розроблено і реалізовано мовою Algol 60 (Algorythmic language — алгоритмічна мова). її конструкції були набагато більше схожі на англійські фрази, ніж конструкції Fortran, тому логіка дій виражалася набагато природніше. На відміну від Fortran, мова Algol мала засоби реалізації рекурсії, за допомогою якої легко записуються численні алгоритми. Завдяки цим і деяким іншим властивостям Algol стала застосовуватися для запису алгоритмів, призначених для вивчення людиною.

У середині 1960-х років на основі мови Fortran було створено мову Basic (Beginner's All-purpose Symbolic Instruction Code — універсальний набір символьних команд для початківців). Basic була простішою за Fortran і дозволяла легко та швидко створювати нескладні програми, але не підтримувала структурне програмування і тому не використовувалася під час створення великомасштабних проектів.

Мову Pascal створив швейцарський учений Ніклаус Вірт спеціально для вивчення структурного програмування. Перший її опис було опубліковано в 1971 році. Вона походила від Algol 60 і двох мов на її основі, розроблених протягом 1960-х років (Algol W та Algol 68). Із середини 1970-х років Pascal стала основною серед мов, які вивчаються першими.

Найбільш поширені версії систем програмування на основі цієї мови для машин типу IBM PC і сумісних із ними почали розроблятися фірмою Borland International у 1983 році і дістали назву Turbo Pascal. Версії з номерами до 4.0 реалізували стандарт мови Pascal з незначними розширеннями. У четвертій версії (1987 рік) було істотно змінено технологію організації модульної структури програм. До складу цієї версії було включено вбудоване інтегроване середовище розробки (Integrated Development Environment, IDE). Починаючи з версії 5.5 (1989 рік) мова онцептуально розширена, тобто доповнена засобами об'єктно-орієнтованого програмування. Версія 6.0 постачалася разом із об'єктною бібліотекою Turbo Vision і мовою Object Pascal, вбудованим асемблером (BASM), удосконаленими засобами налагодження в рамках нового IDE й іншими доповненнями. Найбільш ідомою є система програмування Turbo Pascal 7.0, створена фірмою Borland International ще в 1993 році, а також її розширена версія — Borland Pascal 7.0.

З 90-х років на основі мови Object Pascal почала розвиватися Delphi - потужна система програмування, яка використовується для професійної розробки великомасштабних проектів. Вона є однією з найпопулярніших систем програмування, що забезпечують так звану швидку розробку програм (Rapid Application Design, RAD). Ці системи забезпечують візуалізацію процесу створення програм і дозволяють істотно підвищити ефективність роботи програмістів.

Звичайно, більшість реальних програм створюються за допомогою систем програмування, в основу яких покладено не Pascal, а інші мови. Найбільш поширеною серед професіоналів є мова C++, продовжує набирати прихильників мова Java, свої сфери застосування мають такі мови, як Fortran, Basic та COBOL (Common Business Oriented Language — універсальна мова, орієнтована на розв'язання бізнес-задач) у їхніх сучасних версіях. Проте протягом професійної кар'єри програмістам неминуче доводиться освоювати декілька мов і систем програмування, а починати, на думку багатьох спеціалістів, краще все-таки з мови Pascal.

Контрольні питання

1.Засоби створення программ

2.Класифікація мов програмування

3. Технологія створення програми

4. Перетворення програми і система програмування

5. Походження та розвиток мови Pascal.


 

А также другие работы, которые могут Вас заинтересовать

61616. Опора тела и движение 36.37 KB
  Образовательные: формировать представление о скелете человека как опоре организма о правильной осанке и умении сохранять ее в покое и движении. а беседа – организм человека 9:339:37 С какой темой вы знакомились на прошлом уроке Какие полезные советы вы можете дать по уходу за кожей...
61617. Упражнения в написании слов с безударной гласной в корне слова 104.26 KB
  Цели: образовательные: повторить правило о написании слов с безударной гласной в корне слова отрабатывать умение применять правило продолжать учить находить морфемы анализировать материал...
61618. Собака. Кошка 396.41 KB
  Задачи: Образовательные: Уточнить знания о внешнем виде кошки и собаки. Изучить правила содержания кошки и собаки. Продолжить формировать понятие млекопитающие или звери на примере изучения кошки и собаки. Уход за шерстью ушами зубами и когтями; Еда и вода для собаки; Выгул собаки.
61620. Произведение: Дубровский 18.94 KB
  Цели урока: 1 Познакомить учащихся с жанром романа. 2 Познакомить учащихся с историей создания романа Дубровский. Пушкина Сегодня Вова как раз подготовил нам небольшое сообщение о происхождении жанра романа.
61621. А.С. Пушкин «Сказка о рыбаке и рыбке» 13.15 KB
  Цель: чтение и анализ произведения Задачи: 1 развивать навык правильного сознательного чтения 2 мотивировать на понимание текста а не на механическое чтение 3 учить выделять тему и идею произведения сравнивать образы героев находить символические явления и предметы...
61622. Н. Рыленков «К родине» 20.92 KB
  Цель: формировать навыки словесного рисования; развивать внимание к образным средствам языка; учить умению выражать свои чувства по отношению к прочитанному.
61623. РАБОТА С «КАРТИННОЙ ГАЛЕРИЕЙ». АНДРЕЙ РУБЛЕВ «ТРОИЦА» 18.89 KB
  Цель: развивать умение работать в картиной; обогащать словарный запас детей; воспитывать любовь к литературе и искусству, чувство патриотизма. Оборудование: слайд картины, А. Рублева «Троица», диапроектор