Лекция 5
Компютърно програмиране
1. Програмни езици
Програмното осигуряване в голяма степен отразява специфичните особености на
архитектурата на компютърните системи. Поради тази причина, усъвършенстването на
хардуерната част на КС е съпроводено и с много бързо развитие на програмното
осигуряване.
Хардуерните елементи на КС работят с инструкции записани в двоичен код.
Това означава, че програмите които
се изпълняват, трябва да съдържат само двоични
инструкции (машинен код на програмите). Програмирането с машинни (двоични)
команди е изключително трудоемка дейност. Това се смята за програмиране с
програмни езици от първо поколение.
В началото на развитие на компютърните технологии, програмирането се е
извършвало в машинен код. Първите опити за създаване на
език за програмиране,
различен от машинния датират от 1949 година. Тогава е разработена система за
кодиране на програми наречена Short Code.
Още в началото на развитие на електронните изчислителни машини започват
опитите да се облекчи програмирането, като се замени използването на двоични цифри
за запис на командите и операндите към тях. За тази
цел се въвежда мнемонически
запис на различните команди, вместо техният шестнадесетичен код. Например, вместо
цифровият код на командата за зареждане на регистър (запис на данни в регистъра),
програмистът може да запише LD (от Load - натовари), вместо копиране на стойността
на даден регистър в паметта – ST (от Store - запази), а вместо добавяне на стойност
към
съдържанието на даден регистър – Add (Add – добави). За записване на адресите в
паметта, където се намират данните подлежащи на обработка се въвеждат правила с
които на дадена област от паметта може да се присвои някакво описателно име
(променлива, идентификатор). Първоначално, програмистите съставяли програмите с
мнемонически означения на хартия и после
ги превеждали на машинен език. Скоро
станало ясно, че това може да извършва самата машина посредством специална
програма.
През 1950 година Майкъл Уилкс от Кембриджският университет разработва
така наречената Assembly System (транслираща система за език Асемблер),
предназначена за компютър EDSAC. Целта на тази система е била да обединява
(събира, асемблира) в една програма
, отделни програмни части написани в двоичен
код и съхранявани в специална библиотека за подпрограми. Тази система се явява
начало на развитието на така наречените асемблерски езици за програмиране. Тези
езици се използват и до днес.
В асемблерските езици, командите се записват с мнемонически кодове (кодови
съкращения), които специална транслираща програма
преобразува в машинни команди
(двоичен код). При тези езици, за първи път величините се представят чрез буквени
означения (идентификатори), както в математиката.
За времето си, разработването на асемблерските езици се е смятало за огромен
скок в развитието на софтуерните технологии. За много програмисти от това време,
тези езици представлявали ново
ниво, което дава много по-големи възможности от
машинните езици.
Машинният език и Асемблер са машинно зависими езици. Тяхната структура и
налични команди зависят от конкретната компютърна система. Въпреки че се използват
мнемонически означения на командите, структурата на записването им е близка до
структурата на машинните команди. Те се отнасят към програмните езици от второ
поколение.
При разработването на алгоритми за решаване на задачи, обикновено се
използват прийоми и структури от по-високо логическо ниво, отколкото машинните
инструкции на компютърните системи. Следвайки този подход специалистите
занимаващи се разработване на програмно осигуряване стигат до извода
, много по
подходящо ще бъде програмите да се записват в термините на това по-високо
логическо ниво, а специални програми да преобразуват тези записи в инструкции от по-
ниско ниво (машинни инструкции). През втората половина на 50-те години на 20-ти век
се появяват първите програмни езици от високо ниво (трето
поколение). При тях се
разработва специален набор от езикови конструкции и правила за запис на инструкции
от алгоритъма на дадена задача. Тъй като те се разработват като средство за описание
на алгоритми, тези езици се наричат още алгоритмични или програмни езици Те се
отличават от машинно зависимите езици, по по-високото
структурно ниво на
инструкциите и машинната независимост. Специални програми (компилатори,
транслатори или интерпретатори) се използват за преобразуване на текста на
програмите записани с алгоритмичните езици в двоичен код.
Машинната независимост на езиците от високо ниво се осигурява от програмата,
която преобразува текста на програмата от високо ниво в двоични команди
(компилатор, интерпретатор). Тъй, като машинните инструкции на различните
компютърни системи са различни, то и компилаторите трябва да съответстват на
даденият тип машина. Затова, в миналото имаше различни компилатори за един и същ
език, които се наричаха диалекти на езика.
През 1954 година започва работата по създаването на езика FORTRAN
(FORmula TRANslation). През 1957 година
той е завършен и по идея този език е
реализиран като средство за създаване на програми за решаване на научно-технически
задачи. Има различни версии: FORTRAN II (1958), FORTRAN III (1961), FORTRAN IV
(1962), FORTRAN 77 (1966). FORTRAN получава много голямо разпространение и се
използва и до днес.
Езикът Алгол се явява европейски вариант на алгоритмичен език от високо
ниво. Той се разработва
по поръчка на международен комитет, който се формира през
1958 година в Цюрих. През 1960 година този комитет се събира за втори път, който
дава наименованието на този език Алгол 60.
Езикът Алгол внася съществено нови идеи в езиците за програмиране. В него се
залага така наречената блокова структура в програмите. Той
има голямо значение за
разработваните след това програмни езици. За него професорът по информатика Тони
Хоар казва, че това е език, който толкова е изпреварил времето си, че се явява
подобрение не само на своите предшественици, но и на почти всички свои наследници.
Алгол не е получил голямо разпространение, но той
има сериозно теоретично значение.
Една голяма група програмни езици се обединяват в група с наименование
алголоподобни езици.
Езикът FORTRAN получи широко разпространение, но той не може да
удовлетвори многостранните интереси в областа на програмирането. За приложения в
областта на деловата сфера (икономика, финанси) е разработен специален програмен
език Кобол. Той е
поръчан от Министерството на Отбраната на САЩ. Кобол е
универсален език за обработка на информация в големи бази от данни (икономически и
статистически изчисления).
Стремежът за създаване на универсален програмен език се въплъщава в
разработката на езика PL\1. Това е универсален програмен език, който обединява идеи
от FORTRAN, Алгол и Кобол. Въпреки
безспорните си достойнства той не можа да
намери голямо приложение, но също изигра важна роля в по-нататъшното развитие на
програмните езици.
През 1967 е създаден програмният език Бейсик, който е близък по идеи с езика
FORTRAN, но с по-опростена структура. Той е замислен като език за лесно
програмиране, дори и от хора, които нямат специални знания по
програмиране. С него
се работи преди всичко в диалогов режим. Програмите написани в Бейсик се
изпълняват посредством интерпретатор – програма, която последователно преобразува
командите в машинен код и ги изпълнява. Бейсик става основа за развитието на
персоналните компютри в началната им фаза на развитие. Тогава този език се
използваше като операционна
система за компютъра.
Интересно е да се отбележи, че версията М-Бейсик е разработена от Уилям
Гейтс и Пол Алън и с него е поставено началото на най-мощната в момента софтуерна
компания Microsoft.
В краят на 60 – те години на миналия век, вече съществували доста програмни
езици, които имали очевидни недостатъци. По
тази причина били сформирани две
изследователски групи, които трябвало да разработят език без недостатъци
(универсален програмен език). Този език е трябвало да включва всички положителни
идеи от Фортран, Алгол, Кобол, Бейсик и др. Като резултат били разработени езиците
PL/1 и Алгол-68 (1967 и 1969 год. съответно). Групата разработваща PL/1 била
финансирана от IBM. Нейните
усилия не пропаднали, и сега много програмисти
ползват този език. Но въпреки всичко той не можа да измести основните езици,
Фортран, Кобол, Бейсик.
Алгол-68 бил разработен от група европейски компютърни специалисти. Някои
го оценяват много високо, предимно сред академическите среди. Но той се оказа много
език, изискващ много машинни ресурси. Освен
това изучаването му е доста трудоемка
работа.
Един от проектите, които били отклонени от групата разработваща Алгол-68,
бил проекта на специалиста от Института по информатика в Цюрих, Никлаус Вирт.
Разработването на програмни езици било хоби на Вирт и той не прекратил
разработването на език, който да замени, ползващият се със
сериозна репутация език
Алгол-60. През 1971 година той публикува описанието на своя език и го нарича на
името на изобретателя на първото изчислително устройство – Паскал. През 1973 е
разработен първият транслатор за този език, а малко по-късно е разработена
програмната среда Turbo, получила много голяма популярност сред програмистите в
целият свят.
И така
през 1971 година е разработен езикът Pascal. Той получава голямо
разпространение. Близък е по структура до езика Алгол, но има много нови идеи от
структурното програмиране. Използва се за разработване предимно на научно-
технически приложения, но има и големи възможности за бизнес приложения.
Главната новост на този език е, че удовлетворява
изискванията на обикновените
потребители и специалистите по изчислителна техника. Това е първият език, който
може лесно да се научи и е логически правилно построен. Граматическите правила на
Pascal могат да бъдат написани на 4 – 5 страници.
С ( С++) е програмен език създаден през 1972 година. Това е универсален език с
големи възможности. Близък е
по структура до Pascal, но е с по-големи възможности за
разработване на системно програмно осигуряване. Големи части от операционната
система Windows са написани на езика С и С++.
Програмният език АДА е създаден през 1979 година. Той е универсален език за
програмиране с развити възможности за структуриране на данни. За него е
характерна
модулната организация в процеса на програмиране и намира широко приложение при
програмиране на вградени микрокомпютърни устройства в различни машини и
оборудване.
2. Интегрирана програмна среда
Програмните средства, които осигуряват написването, редактирането,
изчистването от грешки, преобразуването в двоичен код и стартирането на една
програма, написана с помощта на определен програмен език се нарича интегрирана
програмна среда. Най-общо, интегрираната програмна среда съдържа следните
основни
елементи: текстов редактор, компилатор, свързващ редактор, дебъгер, система
библиотечни функции, помощна система.
2.1. Текстов редактор.
Това е програма която подържа написването и редактирането на текста на
програмите и съхраняването им в подходящ вид върху постоянен външен носител
(диск). Текста на програмата може да се напише на какъв да е
редактор, например
Notepad, но редакторът на интегрираната програмна среда предоставя някои улеснения:
записва файла с подходящо разширение (‘.pas’- за Pascal,’.cpp’- за С++,’.bas’- за Basic и
др.), отбелязва ключовите думи в даденият език, предоставя помощна информация за
програмният език и др. На фиг. 3.1 е показан общият вид на прозореца на програмната
среда TURBO Pascal, основната част на
която е текстовия редактор, а другите елементи
на средата се активират с основното меню намиращо се в горната част на прозореца.
Фиг. 3.1 Програмна среда Turbo Pascal
2.2. Компилатор (транслатор).
Компилаторът е програмна система, която преобразува текста на програмата в
машинни (двоични) команди. Процесорът на КС може да изпълнява само двоични
ко
0 коментара
За да коментирате, трябва да сте влезли в профила си.
Влезте