Прости програмски јазици

Од Википедија — слободната енциклопедија
Прејди на: содржини, барај

Под прости програмски јазици ги подразбираме оние програмски јазици кои се блиски до машинскиот јазик (наредби и зборови кои директно ги разбира машината или компјутерот) и посложени за учење и за работа на програмерите. Со развивањето на компјутерите првобитно се развија овие прости програмски јазици од кои потоа настанаа и сложени програмски јазици. Наредбите со кои се работи во овие јазици се прилично потешки и неразбирливи. Исто така често се работи со броеви од различни бројни системи.

Според некои дефиниции за прост програмски јазик се смета оној јазик за кој не е потребен компајлер или интерпретер за машината да го разбере.

Простите програмски јазици најчесто ги делиме на две генерации.

Прва генерација[уреди]

Првата генерација на прости програмски јазици ја претставува машински јазик. Тој е единствениот програмски јазик кој директно го разбира машината. Денес програмерите не го користат овој јазик бидејќи не само што бара обрнување внимание и на најмал детал што сложените програмски јазици ќе го сторат автоматски, туку и секоја наредба се запишува со одредена бројка која е тешко да се запамти а и да се погреши.

На пример програмата за пресметување на Фибоначиев број на 32-битен процесор во машински јазик би го имала следниот облик:

8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3


Втора генерација[уреди]

Втората генерација на прости програмски јазици ја претставува Асемблерот или асемблерски јазик. Тој припаѓа на втората генерација бидејќи не е јазик којшто директно го подразбира процесорот но мора да се познава структурата на процесорот за да се програмира во овој јазик (како процесорските регистри и наредбите). Овие наредби директно се преведуваат во машинскиот јазик.

На пример програмата за пресметување на Фибоначиев број на 32-битен процесор во асемблерски јазик би го имала следниот облик:

fib:
    mov edx, [esp+8]
    cmp edx, 0
    ja @f
    mov eax, 0
    ret
    
    @@:
    cmp edx, 2
    ja @f
    mov eax, 1
    ret
    
    @@:
    push ebx
    mov ebx, 1
    mov ecx, 1
    
    @@:
        lea eax, [ebx+ecx]
        cmp edx, 3
        jbe @f
        mov ebx, ecx
        mov ecx, eax
        dec edx
    jmp @b
    
    @@:
    pop ebx
    ret