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