Прости програмски јазици
Под прости програмски јазици ги подразбираме оние програмски јазици кои се блиски до машинскиот јазик (наредби и зборови кои директно ги разбира машината или компјутерот) и посложени за учење и за работа на програмерите. Со развивањето на компјутерите првобитно се развија овие прости програмски јазици од кои потоа настанаа и сложени програмски јазици. Наредбите со кои се работи во овие јазици се прилично потешки и неразбирливи. Исто така често се работи со броеви од различни бројни системи.
Според некои дефиниции за прост програмски јазик се смета оној јазик за кој не е потребен компајлер или интерпретер за машината да го разбере.
Простите програмски јазици најчесто ги делиме на две генерации.
Прва генерација
[уреди | уреди извор]Првата генерација на прости програмски јазици ја претставува машински јазик. Тој е единствениот програмски јазик кој директно го разбира машината. Денес програмерите не го користат овој јазик бидејќи не само што бара обрнување внимание и на најмал детал што сложените програмски јазици ќе го сторат автоматски, туку и секоја наредба се запишува со одредена бројка која е тешко да се запамти а и да се погреши.
На пример програмата за пресметување на Фибоначиев број на 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