Типови на програмски јазици

  ПРЕЗЕНТАЦИЈА -  историја на програмските јазици 

Типови на програмски јазици - преземено од mendo.mk 

Kомпјутерите разбираат само мал број на наредби (т.н. "инструкции"), и тие мора точно да знаат што треба да извршат, во кој редослед и врз кои податоци. Процесорот (делот од компјутерот кој е задолжен за извршување на овие наредби) очекува инструкциите да му бидат предадени во вид на нули (0) и единици (1). Тоа е единствениот јазик кој тој го познава. Замислете колку би било сложено да се пишуваат софтверски програми користејќи нули и единици. Сепак, интересно е да се знае дека тоа е начинот на кој се пишувале програми во раните 1950-ти години. Во продолжение е даден изгледот на една инструкција разбирлива за процесорите:

100011 00001 00010 00110 00000 100000

Ваквите инструкции се нарекуваат "машински код", "машински јазик" или "инструкциско множество", и секоја од нив има свое значење - извршува одредена операција. Операцијата е определена со првите неколку цифри (100011), додека останатите цифри ги дефинираат податоците врз кои треба да се изврши таа операција. Покрај тоа што е крајно мачно да се пишуваат програми на ваков начин, тешко е и да се менуваат постоечките програми, како и да се откриваат грешки во нив. Дополнително, различните фамилии на процесори имаат сопствени множества на инструкции, па програмите напишани за Intel Pentium 3 нема да работат на AMD Athlon 2 (на пример).

Едно ниво над машинскиот код е т.н. assembly јазик. Assembly користи едноставни имиња како "ADD" (за собирање) или "MULT" (за множење), за да ги претстави инструкциите. Програмите напишани во assembly се претвораат во машински код преку едноставно заменување на имињата на инструкциите со соодветната низа од нули и единици која ја дефинира инструкцијата. Во продолжение е даден кодот на една assembly програма:
LOAD Price
ADD Tax
STORE Total
Денес, со исклучок на дизајнерите на embedded (вградливи) компјутерски системи, многу мал број на програмери користат assembly. Постојат три позначајни причини за тоа:
· потребата од пишување на голем број на инструкции за правење на едноставни пресметки
· програмите напишани во assembly се тешко читливи од страна на луѓето
· assembly програмите напишани за една фамилија процесори не мора да работат на друга
Овој начин на програмирање е подобрен со користење на мнемонички кодови



Јазици од високо ниво

Поради сложеноста на assembly, креирани се т.н. јазици од високо ниво - јазици кои, преку сокривање на деталите од машинскиот код, им овозможуваат на програмерите да се фокусираат на решавање на вистинскиот проблем. Овие јазици се познати и како јазици од 3-та генерација (машинскиот код е јазик од 1-ва генерација, assembly е јазик од 2-ра генерација). Програмата која го чита кодот напишан во јазик од високо ниво и го претвора во програма која компјутерот може да ја разбере се нарекува компајлер. Јазиците од високо ниво се полесни за пишување, полесни за разбирање и полесни за менување. Дополнително, не е потребно пишување на десетици програми за секој можен тип на процесор.

Интересно е да се наведе дека постојат и јазици наменети за користење во само една област; на пример, јазици наменети за работа со бази на податоци (SQL). За овие јазици се вели дека се јазици од 4-та генерација.

Вишите програмски јазици не зависат од машината на која ќе се изведуваат и затоа се наречени машински независни јазици. Затоа при пишувањето на програмата не се води сметка за типот на компјутерот на кој ќе се извршуваат програмите туку за областа од која е проблемот што се решава и се нарекуваат проблемско ориентирани јазици.

Машински јазик 

Ниско ниво: Најблиску до хардверот.
Брзина: Исклучително брз, бидејќи нема потреба од превод.
Проблеми:Тешкотии при кодирање: Многу тешко за програмерите да пишуваат и читаат (замислете да пишувате цела програма само со 0 и 1).
Непреносливост: Кодот е специфичен за одреден тип на процесор (архитектура). 

Симболички јазик 
Симболички јазик: Иако е полесен за читање од човекот, сè уште е ниско ниво и близок до хардверот.
Преведувач (Асемблер): Компјутерот сè уште не го разбира асемблерот. Потребна е посебна програма наречена Асемблер (Assembler) која го преведува мнемоник-кодот во машински код (0 и 1).
Проблеми: Иако е подобрен, кодот сè уште е специфичен за архитектурата и е многу долг.

Виши Програмски Јазици
Високо Ниво: Апстрахирани (оддалечени) од хардверските детали.
Преносливост: Истиот код може да се изврши на различни типови машини со минимални промени.
Брзина на развој: Програмерот пишува многу помалку код за да постигне ист резултат. 

Домашна работа:

Истражете и напишете кратка белешка за:

  • Кој јазик се смета за прв јазик од високо ниво? 

  • Презентација за поделба на програмските јазици

No comments: