1. Дефиниция на език за програмиране.
а) Език - система от знаци, използвани за комуникация.
б) Език за програмиране(program language).
- система от знаци, използвана от човека при комуникация, която позволява определянето и записването на задачи(по-точно алгоритми) по недвусмислен начин с такава степен на детайлизация, че те да могат да бъдат интерпретирани (изпълнени) автоматично тоест от компютър.
- език за програмиране (ЕП) е система от означения за описание на изчисленията във форма, която може да се прочете машината и от човека.
в) Изчисление - всеки процес, извършван от компютъра.
г) Програма - спецификация на изчисленията.
2. Характеризиращи елементи на ЕП.
Както всеки писмен език, така и езикът за програмиране се основава на азбука. Азбуката е винаги крайно множество от символи.
а) Правилни изречения на даден език представляват последователности от символите на азбуката, конструирани по така наречените синтактични правила на езика (синтаксис, sytax). Правилните изречения написани на някой от езиците за програмиране се наричат програми. Разбирането, което се влага в така конструираните правилни изречения, тоест програмите и техните съставни части, се определят от така наречените семантични правила на езика (семантика, semantics). Взети заедно, азбуката, синтаксисът и семантиката определят езика за програмиране.
3. Синтаксис и семантика на ЕП.
Строго определен набор от правила на ЕП.
а) Необходимост.
- за да бъде сигурен програмистът в правилността и ефективността на програмата, която пише.
- програмата да бъде разбирана от компютъра и от всеки, който я чете.
б) Синтактичните правила определят как:
- програмите се изграждат като последователност от символи.
- думите на езикът могат да се обединяват, за да се получат правилни изречения.
в) Семантичните правила.
- преписват смисъл и значение на комбинациите от думи.
- тоест семантиката е смисълът на градивните елементи на езика и връзка на означените обекти.
Синтаксисът определя формите на програмите, а семантиката - техния смисъл.
4. Синтаксис и семантика на ЕП - примери.
а) Синтаксис:
- програма, начало, декларация, тяло, команда, израз, идентификатор и т.н. са синтактични концепции в програмните езици.
- int a = 2 е синтактично правилно твърдение на C++.
б) Семантика:
- int a = 2; за програмиста на C++ то означава да се намери ново място в паметта и да се запази в него числото две.
5. Видове езици за програмиране.
ЕП най-често се класифицират според:
- областта на приложение.
- нивото на абстракция.
- програмната парадигма заложена в основата на реализацията им.
6. Видове ЕП според областта на приложение.
а) Универсални ЕП - пригодени за описание на произволни алгоритми ако всяка задача, която може да се реши с компютър, има някакво решение и което може да се изрази с този език.
б) Специализирани ЕП - създадени за специфичен вид обработка.
Примери:
- PRG - за генериране на доклади.
- Logo - за графика.
- SQL - за управление на база данни.
7. Видове ЕП според нивото на абстракция - I и II поколение.
Разглеждат се четири поколения ЕП, всяко от които е стъпка по посока на писането на програми чрез термини, които представляват човешката интерпретация на задачата и резултатите.
а) Първо поколение (50-те) - машинни езици.
Азбуката, синтаксисът и семантиката на машинните езици се определят изцяло от вида и начина избрани от вида на вътрешното представяне на алгоритмите в компютъра. Всяка команда съответства пряко на едно единствено действие на машината.
б) Второ поколение (до 1954г.) - езици за асемблиране.
Позволяват задаване на символни и относителни адреси, както и на потребителски дефинирани
команди(макроси) в примитивна форма (например Add A B вместо 10110101001110100101101).
Програма, наречена асемблер превежда всеки символ от програмата на езика за асемблиране и връща символ от машинен език. Като се съберат всички символи от машинния език, асемблерът извежда програма на машинен език.
8. Видове ЕП според нивото на абстракция - III поколение.
а) Трето поколение(1954 - 1970) - ЕП от високо ниво. Абстракцията в техните семантични правила е доста развита, а синтаксисът им е близък до този на естествените езици.
Примери:
- FORTRAN I, Algol 58, Flowmatic (те са базирани на математически изрази).
- FORTRAN II (въвежда подпрограмите, отделното компилиране).
- Algol 60 (въвежда блоковата структура).
- Cobol (въвежда структурирането на данни, а обработката на файлове е вградена в самия език).
- APL (за научни изследвания).
- LISP (функционално програмиране за изкуствен интелект).
- Pascal (наследник на Algol 60).
- Simula (класове, абстракции от данни, ООП).
9. Видове ЕП според нивото на абстракция - IV поколение.
а) Четвърто поколение (1979 - 1980) - ЕП, които се характеризират с промяна в семантиката.
Позволяват на програмистите да изразяват идеите си за нещата по начин естествен за човека, чрез понятия, които не съответстват на никоя компютърна концепция.
Примери:
- Smaltalk (ООП).
- C (системно програмиране).
- Prolog (изкуствен интелект).
- Modula-2 (модули: капсулиране, скриване на информация, абстрактни типове данни, базиран на обекти).
- Ada (пакети: капсулиране, скриване на информация, абстрактни типове данни, ...).
- C++, Object-Pascal, Modula-3 (добавят ООП към съществуващи езици).
10. Видове ЕП според парадигмата на програмиране - Процедурно програмиране.
Това е стандартния програмен стил, в който програмите се раздробяват на отделни стъпки, чрез които се описват изчисленията.
а) Характеристики на процедурните ЕП.
- базирани на фон Ноймановата архитектура.
- изпълнението на програмите е последователно.
- променливите представляват определени места в паметта.
- за промяна стойността на променлива се използва операцията присвояване.
Примери: Pascal, C, Ada
11. Видове ЕП според парадигмата на програмиране - Функционално програмиране.
Функционалния стил на програмиране се основава на теорията на математическите функции. Изпълнението на програмата представлява изчисляване на стойности чрез изрази и функции. Те свободно могат да бъдат предавани като параметри, както да бъдат конструирани и връщани като параметри - резултат на други функции.
а) Характеристики на функционалните ЕП.
- функциите се прилагат върху стойности, както и върху други функции за създаването на по-сложни функции.
- предаване на параметри.
- липсва понятието променлива.
- няма цикли, но широко се използва рекурсията.
Примери: Lisp, Miranda, ML, Haskell.
12. Видове ЕП според парадигмата на програмиране - Логическо програмиране.
Този стил изисква декларитивно описание на задачата, вместо задаване на отделни стъпки на алгоритъма на задачата. Декларитивните програми са по-близки до спецификацията, от колкото
традиционното програмиране.
а) Характеристики на логическите ЕП.
- те са базирани на формалната логика.
- няма цикли.
- програмите се състоят от аксиоми, правила за правене на заключения и цел.
- програмата описва кое е вярно по отношение на очаквания резултат.
- изпълнението на програмата представлява правене на извод.
Примери: Prolog, OPSS, Clips.
13. Видове ЕП според парадигмата на програмиране - обектно ориентирано програмиране.
При обектно ориентирания стил на програмиране се набляга на дефинирането на класове от обекти. Нужните обекти от съответен клас се създават по време на изпълнението на програмата.
а) Характеристики на ООП.
- обектът е съвкупност от клетки в паметта и операции, които променят стойностите в тях.
- изчислението е взаимодействие и комуникация между обектите.
- всеки обект се държи като компютър - със собствена памет и операции.
Няма коментари:
Публикуване на коментар