Зміст, Реферат, Мови програмування низького і високого рівня.

19.07.2015

1.doc

Введення…………………………………………………………… 2

Мова програмування…………………………………………. 4

Початок розвитку…………………………………………………. 5

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

Машинно-орієнтовані мови………………………. 6

Словесний спосіб………………………………………. 26

Графічний спосіб……………………………………. 26

Лінійний алгоритм……………………………………………. 27

Циклічний алгоритм………………………………………. 28

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

Список літератури………………………………………………. 31

Введення

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

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

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

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

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

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

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

^ Мова програмування

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

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

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

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

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

Виконання: мова програмування може використовувати спеціальні конструкції для визначення та маніпулювання структурами даних і управління процесом обчислень.

Структурне програмування

Наступний крок був зроблений в 1954 році, коли був створений перший мову високого рівня — Фортран (англ. FORTRAN – FORmula TRANslator). Мови високого рівня імітують природні мови, використовуючи деякі слова розмовної мови і загальноприйняті математичні символи. Ці мови більш зручні для людини, за допомогою них можна писати програми до декількох тисяч рядків довжиною. Однак легко розуміється в коротких програмах, ця мова ставав нечитабельним і важко керованим, коли справа стосувалася великих програм. Вирішення цієї проблеми прийшло після винаходу мов структурного програмування (англ.structured programming language), таких як Алгол (1958), Паскаль (1970), Сі (1972).

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

Суть такого підходу полягає в можливості розбиття програми на складові елементи.

Також створювалися функціональні (аппликативные) мови (Приклад: Lisp — англ. LISt Processing, 1958) та логічні мови (приклад Prolog англ. PROgrammin in LOGic, 1972).

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

^ Початок розвитку

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

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

Наприклад, для організації читання блоку даних з гнучкого диска програміст може використовувати 16 різних команд, кожна з яких вимагає 13 параметрів, таких як номер блоку на диску, номер сектора на доріжці і т. п. Коли виконання операції з диском завершується, контролер повертає 23 значення, що відображають наявність і типи помилок, які треба аналізувати.

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

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

протягом 60-х років запити на розробку програмного забезпечення зросли і програми стали дуже великими. Люди почали розуміти, що створення програмного забезпечення – набагато більш складне завдання, ніж вони собі уявляли. Це призвело до того, що було розроблено структурне програмування. З Розвитком структурного програмування наступним досягненням були процедури і функції. Наприклад, якщо є завдання, що виконується кілька разів, то її можна оголосити як функцію або процедуру та у виконанні програми просто викликати її. Загальний код програми в даному випадку стає менше. Функції дозволяють створювати модульні програми.

Наступним досягненням було використання структур, завдяки яким перейшли до класів. Структури – це складені типи даних, побудовані з використанням інших типів. Наприклад, структура час. У неї входить: години, хвилини, секунди. Програміст міг створити структуру час і працювати з нею, як з окремою структурою. Клас – це структура, яка має свої змінні і функції, які працюють з цими змінними. Це було дуже велике досягнення в області програмування. Тепер програмування можна було розбити на класи та тестувати не всю програму, що складається з 10’000 рядків коду, а розбити програму на 100 класів, і тестувати кожен клас. Це істотно полегшило написання програмного продукту.

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

1. Машинно-орієнтовані мови

Машинно-орієнтовані мови – це мови, набори операторів і образотворчі засоби яких істотно залежать від особливостей ЕОМ (внутрішнього мови, структури пам’яті тощо). Машинно-орієнтовані мови дозволяють використовувати всі можливості та особливості машинно-залежних мов:

висока якість створюваних програм (компактність і швидкість виконання);

можливість використання конкретних апаратних ресурсів;

передбачуваність об’єктного коду і замовлень пам’яті;

для складання ефективних програм необхідно знати систему команд і особливості функціонування даної ЕОМ;

трудомісткість процесу складання програм (особливо на машинних мовах і ЯСК), погано захищений від появи помилок;

низька швидкість програмування;

неможливість безпосереднього використання програм, складених на цих мовах, на ЕОМ інших типів.

Машинно-орієнтовані мови за ступенем автоматичного програмування поділяються на класи.

^ 1.1. Машинний мова

Як я вже згадував, у введенні, окремий комп’ютер має свій певний Машинний мову (далі МА), йому наказують виконання зазначених операцій над обумовленими ними операндами, тому Машинний мова є командним. Однак, деякі сімейства ЕОМ (наприклад, ЄС ЕОМ, IBM/370/ і ін) мають єдиний машинну мову для ЕОМ різної потужності. У команді будь-якого з них повідомляється інформація про місцезнаходження операндів і тип виконуваної операції.

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

^ 1.2. Мови символічного кодування

Продовжимо розповідь про командних мови, Мови Символічного Кодування (далі ЯСК), так само, як і машинний мову, є командними. Однак коди операцій і адреси в машинних командах, що представляють собою послідовність двійкових (у внутрішньому коді) або вісімкових (часто використовуваних при написанні програм) цифр, ЯСК замінені на символи (ідентифікатори), форма написання яких допомагає програмісту легше запам’ятовувати смисловий зміст операції. Це забезпечує суттєве зменшення кількості помилок при складанні програм.

Використання символічних адрес – перший крок до створення ЯСК. Команди ЕОМ замість справжніх (фізичних) адрес містять символічні адреси. За результатами складеної програми визначається потрібну кількість комірок для зберігання початкових, проміжних і результуючих значень. Призначення адрес, що виконується окремо від складання програми у символічних адресах, може проводитися менш кваліфікованим програмістом або спеціальною програмою, що в значній мірі полегшує працю програміста.

1.3. Автокоды

Є також мови, які включають в себе всі можливості ЯСК, за допомогою розширеного введення макрокоманд — вони називаються Автокоды.

У різних програмах зустрічаються деякі досить часто використовуються командні послідовності, які відповідають певним процедурам перетворення інформації. Ефективна реалізація таких процедур забезпечується оформленням їх у вигляді спеціальних дій і включенням останніх в мову програмування. доступний програмістові. Дії переводяться в машинні команди двома шляхами –розстановкою генеруванням. В постановочної системі містяться «остови» — серії команд, що реалізують необхідну функцію, позначену дією. Макроси забезпечують передачу фактичних параметрів, які в процесі трансляції вставляються в «кістяк» програми, перетворюючи її в реальну машинну програму.

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

Обидві зазначених системи використовують транслятори з ЯСК і набір макрокоманд, які також є операторами автокода.

Розвинені автокоды отримали назву Ассемблеры. Сервісні програми та ін., як правило, складені на мовах типу Асемблер. Більш повна інформація про мову Асемблера див. нижче.

1.4. Макрос

Мова, що є засобом для заміни послідовності символів описують виконання необхідних дій ЕОМ на більш стислу форму — називається Макрос засіб заміни).

В основному, Макрос призначений для того, щоб скоротити запис вихідної програми. Компонент програмного забезпечення, що забезпечує функціонування макросів, називається макропроцессором. На макропорцесори надходить макроопределяющий і вихідний текст. Реакція макропроцессора на виклик-видача вихідного тексту. Макрос однаково може працювати, як з програмами, так і з даними.

^ 2. Машинно-незалежні мови

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

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

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

^ 2.1. Проблемно – орієнтовані мови

З розширенням областей застосування обчислювальної техніки виникла необхідність формалізувати подання постановки і рішення нових класів задач. Необхідно було створити такі мови програмування. які, використовуючи в даній області позначення та термінологію, дозволили б описувати необхідні алгоритми рішення для поставлених завдань, ними стали проблемно – орієнтовані мови. Ці мови, мови орієнтовані на вирішення певних проблем, повинні забезпечити програміста засобами, що дозволяють коротко і чітко формулювати завдання і отримувати результати в необхідній формі.

Проблемних мов дуже багато, наприклад:

Фортран, Алгол – мови, створені для рішення математичних завдань;

Simula, Сленг — для моделювання;

Лисп, Снобол – для роботи зі списочної структурами.

^ 2.2. Універсальні мови

Універсальні мови були створені для широкого кола завдань: комерційних, наукових, моделювання і т. д. Перший універсальний мову був розроблений фірмою IBM, що став в послідовності мов PL/1. Другий за потужністю універсальна мова називається Алгол-68. Він дозволяє працювати з символами, розрядами, числами з фіксованою і плаваючою комою. PL/1 має розвинену систему операторів для управління форматами, для роботи з полями змінної довжини, з даними організованими в складні структури, і для ефективного використання каналів зв’язку. Мова враховує включені в багато машини можливості переривання і має відповідні оператори. Передбачена можливість паралельного виконання ділянок програм.

Програми на PL/1 компілюються з допомогою автоматичних процедур. Мова використовує багато властивості Фортрану, Algol’у, Коболу. Проте він допускає не лише динамічне, але і кероване і статистичне розподілу пам’яті.

^ 2.3. Діалогові мови

Поява нових технічних можливостей поставило завдання перед системними програмістами — створити програмні засоби, що забезпечують оперативну взаємодію людини з ЕОМ їх назвали діалоговими мовами.

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

Необхідність забезпечення оперативної взаємодії з користувачем вимагала збереження в пам’яті ЕОМ копії вихідної програми навіть після отримання об’єктної програми в машинних кодах. При внесенні змін в програму з використанням діалогового система мови програмування з допомогою спеціальних таблиць встановлює взаємозв’язок структур вихідної та об’єктної програм. Це дозволяє здійснити необхідні редакційні зміни в об’єктній програмі. Одним з прикладів діалогових мов є Бэйсик.

Бэйсик використовує позначення подібні звичайним математичним вираженням. Багато операторів є спрощеними варіантами операторів мови Фортран. Тому ця мова дозволяє вирішувати досить широке коло завдань.

^ 2.4. Непроцедурних мови

Непроцедурних мов складають групу мов, що описують організацію даних, оброблюваних за фіксованим алгоритмами (табличні мови і генератори звітів), і мов зв’язку з операційними системами.

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

Табличні методи легко освоюються фахівцями будь-яких професій.

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

^ Еволюція мов програмування

У розвитку інструментального програмного забезпечення розглядають п’ять поколінь мов програмування. Мови програмування як засіб спілкування людини з ЕОМ від покоління до покоління покращували свої характеристики, стаючи все більш доступними в освоєнні непрофесіоналам.

Перші три покоління мови програмування характеризувались більш складним на бором зарезервованих слів і синтаксисом.

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

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

Короткий опис статті: мови програмування Назва: Реферат — Мови програмування низького і високого рівня. Класифікація алгоритмічних мов; Файл: 1.doc; Дата: 16.11.2011 09:41; Розмір: 348kb. документи, навчальний матеріал, школярі, студенти, абітурієнти, лекції, навчання, освіта

Джерело: Зміст — Реферат — Мови програмування низького і високого рівня. Класифікація алгоритмічних мов — 1.doc

Також ви можете прочитати