Езици за програмиране на високо ниво

Език за програмиране (алгоритмичен език) - набор от правила, които определят кои последователности от символи съставят една програма (синтактични правила) и кои изчисления описва програмата (семантични правила).

Програма - текст, който определя набор от изчислителни процеси, в съответствие с които изпълнителят, който разбира програмата, разгръща един от тях.

Ние отделяме три основни характеристики на езиците за програмиране [Калинин, Мацкевич 1991].

Езиково ниво - характеризира се със сложността на задачите, решавани с помощта на този език.

За това какво определя нивото на езика за програмиранеИнтуитивно всеки програмист ще различи език за програмиране на високо ниво от език за програмиране на ниско ниво. Каква е разликата? Какво определя нивото? Програмирането е показване в програми на обекти, понятия и явления от предметната област на проблема. Колкото по-адекватно може да се направи това картографиране, толкова по-високо е нивото на езика за програмиране. И картографирането ще бъде изпълнено толкова по-добре, колкото по-богати са възможностите за формиране на типове на езика за програмиране.

Силата на езика се характеризира с броя и разнообразието от задачи, алгоритмите за решаване на които могат да бъдат написани с помощта на езика.

За връзката между нивото и силата на езикаКолкото по-високо е нивото на езика, толкова по-ниска е неговата сила и обратно.

Концептуална цялост - характеризира се със свойствата на набор от понятия, които служат за описание на този език и включва три взаимосвързани аспекта.

Икономия на понятията - езикът трябва да постигне своята максимална мощност с минимален брой понятия.

Ортогоналност на понятията – между понятията не трябва да има взаимно влияние. Ако понятието се използва в различниконтексти, правилото за използването му трябва да е същото.

За неортогоналността на понятията дори в най-добрите езициЗа съжаление, дори езици като Pascal позволяват неортогонални конструкции. Например, потребителят може да дефинира само процедури с фиксиран брой параметри, но някои рутинни процедури (като writeln()) могат да бъдат извикани с променлив брой параметри.

Еднаквост на понятията - изискването за съгласуван унифициран подход към описанието и използването на всички понятия.

Има много други функции.

Надеждност - езикът трябва да осигурява минимум грешки при писане на програми. Освен това езикът трябва да е такъв, че неправилните програми да са трудни за писане.

Четимостта е лекотата, с която програмите могат да се четат от хората. Тази характеристика е важна при работа в екип, когато няколко души работят с едни и същи програмни текстове.

Пълнота - характеризира способността да се опише клас проблеми в определена предметна област.

Гъвкавост - характеризира лекотата на изразяване на необходимите действия.

Отбелязваме две свойства, които не влияят на процеса на разработка, но играят важна роля, отразявайки позицията на внедрителя.

Преносимост - независимост от хардуера, осигуряваща преносимост на софтуера.

Ефективност - осигуряване на ефективно изпълнение, което включва:

ефективна реализация на компилатор;

ефективно генериране на програмен код от компилатора.

И това са само част от свойствата и характеристиките. В един доклад до ВМС [Focke 1985], изследователите преброиха повече от 2570 различни функции или свойства, които могат да бъдат идентифицирани в езиците за програмиране.

Относно противоречивите характеристики на езицитеТрябва да се отбележи, че много от изброените характеристики са в противоречие една с друга. Например надеждност и ефективност. Това подчертава трудностите, пред които са изправени създателите на нови езици.