Поняття алгоритмічної мови програмування 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Поняття алгоритмічної мови програмування



Мова програмування – це штучна мова, призначена для опису алгоритму, який треба виконати за допомогою комп’ютера.

За рівнем абстракції мови програмування поділяють на:

- мови програмування низького рівня (машинно-орієнтовані);

- мови програмування високого рівня.

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

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

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

Операція Операнди Примітка
MOV AX, WORDB Записати значення, що міститься за адресою WORDB, до регістра AX
MOV BX, WORDC Записати значення, що міститься за адресою WORDС, до регістра ВX
ADD AX, BX Додати значення регістру BX до значення регістру AX, суму записати в регістр AX
MULL WORDD Помножити значення регістру AX на значення, що міститься за адресою WORDD (результат - у регістрі AX)
MOV WORDА, AX Записати значення регістру AX за адресою WORDА

 

Ідентифікатор змінної Адреса комірки ОП
WORDA  
WORDB  
WORDC  
WORDD  

 

Рис. 2. Фрагмент машинної програми на асемблері для обчислення виразу а = (b + c)× d

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

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

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

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

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

Наприклад, фрагмент програми на С/С++ для обчислення виразу а = (b+c)× d:

а = (b + с)*d;

Основні відмінності мови програмування високого рівня від машинно-орієнтованої:

- алфавіт алгоритмічної мови значно ширше алфавіту машинно-орієнтованої, що істотно підвищує наочність тексту такої програми;

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

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

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

- в алгоритмічній мові може бути передбачений значно більший набір типів даних у порівнянні з набором машинних типів даних.

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

Мовами високого рівня є:

Fortran (Фортран). Створена у IBM під керівництвом Дж. Бекуса (1954-57 р.р.). По суті це перша широко застосовувана мова високого рівня, орієнтована на науково-інженерні і чисельні задачі. Для цієї мови було створено величезну кількість бібліотек, починаючи від статистичних комплексів і закінчуючи пакетами управління супутниками, тому до цих пір Фортран продовжує активно використовуватися в деяких організаціях.

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

Раsсаl (Паскаль). Створена Н. Віртом у 1970 р. спеціально для вивчен­ня програмування. Пред'являє жорсткі вимоги до структури програми, підтримує велику кількість призначених для користувача типів даних. Крім того, в мові реалізована концепція визначення нових типів даних на основі вже наявних.

С. Створена Д.Рітчі на початку 1970-х років для прискорення розробки операційної системи UNIX. Має засоби для прямої роботи з пам'яттю. Була задумана як мова системного програмування для заміни асемблера, щоб мати можливість створювати такі ж ефективні і короткі програми, але не залежати від конкретного процесора. Однак великий набір операцій і типів даних, сучасне оформлення і висока ступінь машинонезалежності зробили її привабливою мовою програмування загального призначення. На ній написана безліч прикладних і системних програм і ряд відомих ОС (зокрема, Unix).

С++. Об'єктно-орієнтоване розширення мови С, створене Б. Страуструпом в 1980 р. Заснована на використанні класів і об'єктів.

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

Javа. Створена компанією Sun на початку 90-х років на основі С++. Покликана спростити розробку застосувань на С++ шляхом виключення із нього низькорівневих можливостей. Головна особливість мови – те, що вона транслює програму не в машинний код, а в платформно незалежний байт-код (кожна команда займає один байт). Цей байт-код може виконуватися за допомогою інтерпретатора - віртуальної Javа–машини JVM (Javа Virtual Масhine), версії якої створені для будь-яких апаратних платформ. Завдяки цьому програми на Javа можна переносити не лише на рівні вихідних текстів, але і на рівні двійкових байт-кодів. Це дозволяє створювати незалежні програмні модулі, здатні працювати на серверах в глобальних і локальних мережах з різними ОС.

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

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

1. Асемблери, створені за принципом "одна інструкція - один рядок".

2. Символічний асемблер, у якому з'явилося поняття змінної. Він став першою повноцінною мовою програмування. Завдяки його виникненню помітно зросли швидкість розробки і надійність програм.

3. Універсальні мови високого рівня, за допомогою яких можна вирішувати будь-які прикладні задачі. Характеризуються відносною простотою, незалежністю від конкретного ПК, можливістю використання потужних синтаксичних конструкцій (Fortran, Cobol, А1gо1, PL/1, Basic, Pascal, C/C++, Javа, …).

4. Проблемно-орієнтовані мови, призначені для реалізації великих проектів, підвищення їхньої надійності і швидкості створення. Як правило, мають вбудовані потужні оператори, що дозволяють одним рядком описати функціональність, для реалізації якої на мовах молодших поколінь потрібні були б тисячі рядків коду. Орієнтовані на спеціалізовані області застосування, де гарних результатів можна домогтися, використовуючи мови, які оперують конкретними поняттями вузької предметної області (PROLOG – мова для логічного програмування, SQL - мова програмування баз даних, НТМL - мова розмітки для Internet, UML - мова графічного моделювання).

5. Системи автоматизованого створення прикладних програм, у тому числі і за допомогою візуальних засобів розробки (RAD-середовищ). Характеризуються можливістю автоматичного формування результуючого тексту на універсальних мовах програмування (Delphі, Borland C, Visual Studio, …).

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

 

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 318; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.91.51.101 (0.012 с.)