Assembler dili mnemonik olsa da, dövrünün başlıca kompüter istifadəçiləri olan alimləri qane etmədi, çünki, artıq yuxarıda da qeyd olunduğu kimi, maşın koduna yaxın olduğuna görə onu öyrənmək çətindir. Bundan başqa, hər prosessorun öz assembleri olur və deməli, bir neçə maşında işləyən şəxs bəzən “bir neçə ayrı-ayrı assembler dilini” bilməlidir. Nəhayət, assembler dilində proqramlaşdırmaq üçün bütün prosesi ən kiçik detallarınadək təsəvvür etmək, mürəkkəb düsturları ayrı-ayrı əməllərin ardıcıllığı şəklində göstərmək lazımdır. Proqramçı isə beynində daha ümumi kateqoriyalarla işləyir: “düsturu hesablamalı”, “ədədi ekrana çıxarmalı”, “əməliyyatı 10 dəfə təkrarlamalı” və s.
Belə problemləri aradan qaldırmaq üçün yeni proqramlaşdırma dilinə ehtiyac vardı. Assembler dilindən fərqli olaraq, həmin dilin yaradılmasından əsas məqsəd onu maşının anlaması deyil, onunla işləməyin insan üçün əlverişliyi idi. Beləliklə, insan (proqramçı) üçün daha anlaşıqlı olan və proqramlaşdırma prosesini asanlaşdıran yeni dillər yaradılmağa başladı. Proqramlaşdırma dilinin hər bir yaradıcısı insan-maşın əlaqələri haqqında öz təsəvvürlərini gerçəkləş dir - di yindən qısa müddət ərzində yüzlərlə yeni dil meydana çıxdı (1993-cü ilin hesablamalarına görə, 1950-ci ildən həmin vaxta kimi 1000-dən artıq proqramlaşdırma dili yaradılıb). Təbii, yüksək səviyyəli [high-level] dillər adlandırılan dillərin az bir qismi öz yerini tapıb inkişaf etdi və möhkəmləndi. Bunun əksinə olaraq, assembler dili aşağı səviyyəli [low-level] dil hesab olunur, çünki o, maşın dilinə daha yaxındır və kompüterin qurğuları ilə işləyir.
Yüksək səviyyəli dillərin öz müsbət və mənfi cəhətləri var. Yüksək səviyyəli dilin assemblerdən başlıca üstünlüyü onun öyrənmək və istifadə üçün çox-çox asan olmasıdır. Yüksək səviyyəli dildə yazılmış proqram assemblerdəkinə nisbətən daha yığcam və anlaşıqlıdır. Onlar, əsasən, daşınabiləndir, yəni müxtəlif prosessorlu kompüterlərdə eyni cür işləyir. Bu isə o deməkdir ki, proqramı yazarkən onun işləyəcəyi kompüterin arxitekturasının incəliklərini öyrənməyə ehtiyac qalmır. Əlbəttə, bu halda hər bir prosessorun öz kompilyatoru olmalıdır və onun yaratdığı icra faylı yalnız həmin prosessor üçün yararlı olacaqdır. Digər tərəfdən, assemblerdə yazılmış proqram, onun yüksək səviyyəli dildə yazılmış bənzərindən praktik olaraq həmişə səmərəlidir. Yəni yüksək səviyyəli dilin kompilyatorunun yaratdığı icra faylı funksional cəhətdən eyni olan assembler proqramından daha çox yer tutur və yavaş işləyir. Doğrudur, son illər mikroprosessorların inkişafı nəticəsində kompilyatorlar daha optimal kodlar generasiya edir
Ən yaxşı proqramlaşdırma dili hansıdır?
Hər bir proqramlaşdırma dilinin öz tərəfdarları və əleyhdarları var. İndi dünyada bir neçə min proqramlaşdırma dili mövcuddur. Bəs bu qədər dilin içərisindən sizə daha münasib dili necə seçməli?
Mühəndislərin, bankirlərin, hərbçilərin qarşısında cürbəcür məsələlər durur. Onlar özləri üçün müxtəlif proqramlaşdırma dilləri seçirlər. Mühəndislər FORTRAN dilinə üstünlük verir, bankirlər çox zaman COBOL (“kobol”) dilindən istifadə edir, hərbçilər isə döyüş əməliyyatlarını planlaşdırmağı və qoşunun idarə olunmasını ADA dilində yazılmış proq - ramların köməyilə həyata keçirirlər. Süni intellekt sahəsində çalışanlar üçün PROLOG, yaxud LISP dili daha münasibdir. İnternet üçün proqram yazan proqramçılar, adətən, JAVA dilinə üstünlük verirlər.
Bu sadaladığımız proqramlaşdırma dillərinin hamısı xüsusi dillərdir. Bu dillərin hər birində elə operatorlar var ki, onlar vasitəsilə xüsusi məsələləri daha asanlıqla həll etmək olur. Adətən, həmin dilləri iş prosesində ehtiyac olduqca öyrənirlər, belə ki, onları “qabaqcadan” öyrənməyin mənası yoxdur. Xüsusi dillərdən savayı, universal proqramlaşdırma dilləri də mövcuddur. Onların köməyilə, demək olar ki, istənilən məsələni həll etmək mümkündür. Belə dilləri “qabaqcadan” öyrənmək olar – onlar hər zaman gərəyiniz ola bilər. Belə dillərin üçü daha çox populyardır:
• Basic
• Pascal
• C++
Yüksək səviyyəli dillərin köməyilə istənilən sahəni proqramlaşdırmaq olar. Ancaq elə dillər də var ki, onlar xüsusi olaraq müəyyən sahələr üçün nəzərdə tutulub:
• ALGOL – riyazi məsələlər üçün;
• CHILL – telekommunikasiya sistemləri üçün;
• COBOL – iqtisadi məsələlər üçün;
• FORTRAN – riyazi hesablamalar üçün;
• Java – obyektlərlə iş üçün;
• Linda – verilənlərin paralel emalı üçün;
• PostScript – görüntülərin təsviri üçün;
• PROLOG – süni intellekt məsələləri üçün.