Alqoritmləşdirmə və proqramlaşdırmanın əsasları/Proqramlaşdırma dilləri
←Alqoritmin tipləri | Alqoritmləşdirmə və proqramlaşdırmanın əsasları |
Ədəbiyyat→ |
Dil dedikdə – istənilən işarələr sistemini başa düşəcəyik. İşarə dedikdə isə informasiyanı ötürmək üçün xüsusi seçilmiş bir obyekt nəzərdə tutulacaq. Məsələn: kağızdakı hərf, əl işarəsi, sifətin ifadəsi, çeviricinin vəziyyəti və s. Bu çox ümumi bir tərif olduğundan bura heyvanların təbii dillərini, insanların dillərini də daxil etmək olar. Müxtəlif dillərin olması bir dildən başqa bir dilə tərcümə (translyasiya) problemini yaradır. Belə baxanda, bizim bütün fəaliyyətimiz bu və ya başqa mənada translyasiya ilə bağlıdır. Biz şüurumuzda olan daxili təsəvvürləri nitqə, hərəkətə və s. çeviririk və tərsinə.
Yeni obyekt yaratmaqla, biz onunla bağlı yeni bir dil də yaradırıq. Məsələn, elmin inkişafı xüsusi elmi dilin yaranmasına gətirib çıxartdı (riyaziyyat, fizika və s.). Bir qayda olaraq, sadə qurğuları, düymələri basmaqla, dəstəkləri hərəkətə gətirməklə idarə etmək heç də çətin olmur. Amma elə mürəkkəb obyektlər var ki, onları idarə etmək üçün insan ya çətinlik çəkir, ya da ola bilsin ki, heç bacarmır. Bu halda, insanla maşın arasında, bir növ vasitəçi – tərcüməçiyə ehtiyac olur. Belə qurğulara EHM–ləri misal gətirmək olar. Onları idarə etmək üçün insan üçün sadə olan, onun dilinə yaxın olan bir giriş dilinə ehtiyac olur. Qeyd edək ki, EHM -lər insan tərəfindən yaradılmış obyektlər sırasında ən çətin idarə olunanlardandır. Bu məsələ o qədər obeyktin mürəkkəbliyindən yox, daha çox onun dilinin ( maşın dili – 2-lik kodlar) insan dilindən uzaq olmasıdır. Ona görə də istehsalçıların və proqramçılarin maraqlarını nəzərə alaraq bir ünsiyyət vasitəsinə ehtiyac yaranır. Proqramlaşdırma dilləri adi dillərdən “sözlərin” (ancaq translyatorun başa düşdüyü) sayına və əmrlərin ciddi yazılış qaydasına görə fərqlənir. EHM-də proqram yazmaq üçün istifadə olunan formallaşmış dillərə proqramlaşdırma dilləri deyilir.
Istənilən proqramlaşdırma dilinin əsas elementləri bunlardır: dilin əlifbası, sintaksisi və semantikası. Dilin əlifbası dedikdə, həmin dildə işlənən bütün simvollar nəzərdə tutulur. Sintaksis- əlifbada olan simvollardan dilin ayrı-ayrı konstruksiyalarının (komandaların, operatorların) düzəldilməsinin formal qaydalarıdır. Bu qaydalar müxtəlif həll alqoritmlərini proqramlaşdırmağa imkan verir. Semantika - dilin bu və ya digər sintaksis konstruksiyalarının təsviridir. Məsələn, əgər proqramın bu yerində y =a*(b+c) ifadəsinin hesablanması yazılıbsa, onda semantika qaydaları maşına “göstərir” ki, əvvəlcə (b+c) cəmini tapsın, sonra həmin cəmi a-ya vursun. Beləliklə, hər hansı verilənlərin emalı prosesini birbaşa həyata keçirməyə imkan verən proqramlar, dili təyin edən sintaksis qaydalara uyğun olaraq əlifbadakı simvolların birləşməsi nəticəsində və semantika qaydalarını nəzərə almaqla işlənib hazırlanır.
Translyator və kompilyatorlar. Proqramlaşdırma dili vasitəsilə hazır proqram yox, ancaq qurulmuş alqoritmi təsvir edən mətn yaradılır. İnsanın başa düşdüyü dildə olan bu proqram maşının başa düşdüyü dilə çevrilməlidir. Bunun üçün kompüterdə translyatorlar və kompilyatorlar olur. Proqram ancaq onların translyatorları olan halda icra oluna bilərlər. Translyatordan fərqli olaraq kompilyatorlar exe-faylların yaradılması üçün istifadə olunur ki, onlar da sərbəst icra oluna bilərlər (yəni, proqpamin yazildiğı mühitdən (sistemdən) asılı olmadan).
Proqramlaşdırma dillərinin səviyyələri. Müxtəlif tip prosessorlar müxtəlif tip əmrlər sisteminə malikdir. Əgər proqramlaşdırma dili konkret prosessor tipinə yönəlibsə və onun xüsusiyyətlərini nəzərə alırsa, onda ona aşağı səviyyəli proqramlaşdırma dili deyirlər. Assembler aşağı səviyyəli proqramlaşdırma dilidir. Çünki o, bir əmri mnemonika adlanan simvol işarəmələrinin köməyilə ədədlər şəklində yox, maşın kodları şəklində verir. Assemblerin köməyilə çox səmərəli və kompakt proqramlar yaratmaq mümkündür. Assemblerdən adətən, sistem əlavələrin, drayver-proqramların, kompüterin aparat resurslarına müraciət edən proqram modullarının hazırlanması üçün istifadə olunur. Aşağı səviyyəli proqramlaşdırma dillərindən, adətən yüksək səviyyəli peşəkar proqramçılar istifadə edir. Bu dillərdə tutulan proqramlar yaddaşda az yer tutmaqla yanaşı, daha sürətlə icra olunurlar. Yüksək səviyyəli proqramlaşdırma dilləri isə adi dilə daha yaxın və insan üçün daha aydın başa düşüləndir. Çox yayılmış, bəzi proqramlaşdırma dilləri haqqında məlumat verək.
Fortran - Cim Bekus tərəfindən 1954-cü ildə yaradılmış ilk kompilyasıya olunan proqramlaşdırma dilidir. Bu dildə ilk dəfə olaraq proqramlaşdırmanın ən vacib anlayışları realizə olunmuşdur. Ondan bütün dünyada istifadə olunur. 2000-ci ildə onun yeni F2k versiyası yaradılmışdır. Fortrandan əsasən riyazi, texniki məsələlərin proqramlaşdırılması üçün istifadə olunur.
Cobol - 1960-cı illərdə yaradılıb. Əsasən iqtisadiyyat sahəsində biznes məsələlərinin həlli üçün nəzərdə tutulan kompilyasiya olunan bir dildir. Bu dil özünün “çoxsözlülüyü” ilə fərqlənir. Bəzən onun əmrləri ingilis ifadələrindən heç də fərqlənmir. Bu dildə, hal-hazırda aktiv surətdə istismar olunan çoxlu sayda əlavələr hazırlanmışdır.
Pascal - 1970-ci illərin sonunda Niklaus Virt tərəfindən yaradılmışdır. Ondan böyük layihələrin hazırlanmasında müvəffəqiyyətlə istifadə etmək üçün imkanlar nəzərdə tutulmuş, proqramın strukturuna olan tələblər gücləndirilmişdir.
Basic – Bu dil üçün həm kompilyatorlar, həm də interpretatorlar mövcuddur. İlk dəfə proqramlaşdırmanı öyrənmək məqsədilə 1960-cı illərdə yaradılan bu dil dünyada ən geniş yayılmış dillərdəndir.
C - Bu dil yaranan gündən kütləvi istifadə üçün nəzərdə tutulmamışdır. Sadəcə, assembleri əvəz edən bir proqram kimi planlaşdırılmışdır. Yəni o, həm assembler kimi effektiv və kompakt proqramlar yaratmaq imkanına malik olmaqla yanaşı, həm də konkret tip prosessorlardan asılı olmalı idi.
C++ - C-nin obyektyönümlü genişlənməsi olan bu dil 1980-cı ildə yaradılmışdır. Bu dildə proqramçının məhsuldarlığını kəskin şəkildə artıra biləcək çoxlu sayda imkanlar nəzərdə tutulmuşdur.
Java - Bu dil 1990-cı illərin əvvəlində C++ dilinin əsasında yaradılmışdır. O, C++-da olan bütün aşağı səviyyəli imkanları aradan çıxardaraq əlavələrin işlənib hazırlanmasını sadələşdirməyə yönəlmişdir.
Baza verilənlərin proqramlaşdırma dilləri. Bu qrup dillər alqoritmik dillərdən həll etdiyi məsələlərə görə fərqlənir. İlk bazalar böyük informasiya massivlərinin emalına və müəyyən əlamətə görə bir qrup informasiyanın seçilməsinə ehtiyac olanda yaradılmışdır. Bunun üçün strukturlaşdırılmış sorğular dili SQL (structured query language) dili yaradılmışdır. O güclü riyazi nəzəriyyəyə əsaslanmaqla verilənlər bazasını effektiv emal etməyə imkan yaradır. Böyük verilənlər bazalarını idarə etmək, onları effektiv emal etmək üçün VBİS (verilən bazasının idarəetmə sistemi) yaradıldı. Hal-hazırda dünyada 5 aparıcı VBİS istehsalçısını göstərə bilərik: Microsoft (SQL Server), İBM (DB2), Oracle Software AG (Adabas), İnformix və Sybase. Onların məhsulları şəbəkədə minlərlə istifadəçinin eyni zamanda işini dəstəkləyir, verilənlər bazaları isə paylanmış şəkildə bir neçə serverdə saxlanıla bilər. İnternet üçün proqramlaşdırma dilləri. HTML (HiperText Markup Language) çox tanınmış, sadə bir dil olmaqla, mətnin formatlaşdırılması, şəkillərin əlavə olunması, şiriflərin və rənglərin verilməsi, istinadların və cədvəllərin tərtib olunması kimi elementar əmrlərə malikdir. Çox WEB- səhifələr HTML- də və onun genişləndirilmiş variantlarında yazılmışdır. 1980-cı illərdə PERL dili işlənib hazırlandı. O, böyük mətn fayllarının effektiv emal olunması, mətn hesabatlarının qenerasiya olunması və məsələlərin idarə olunması vasitəsi kimi yaradılmışdı. Onun sətrlərlə, massivlərlə işləmək funksiyaları, verilənlərin çevrilməsi vasitələri, sistem informasiya ilə işləmək imkanları da çox genişdir. Windows əməliyyatlar sisteminin yaranması ilə bağlı bu mühitdə işləyən yeni proqramlaşdırma dilləri də meydana çıxmışdır. Bunlardan Visial Basic, Visial Delphy, Visial C və b. göstərmək olar. Bu proqramların köməyilə müxtəlif tip praktik məsələləri həll etmək olar. “Visial” yazısı onu göstərir ki, həmin proqram vasitəsi qrafik istifadəçi interfeysinə malikdir. Yəni Windows sisteminə aid olan bütün imkanlardan həmin proqram vasitəsi istifadə edə bilər.
Bubble Sort algoritminin nümunəsi:
BubbleSort.java
public class BubbleSortExample { static void bubbleSort(int[] arr) { int n = arr.length; int temp = 0; for(int i=0; i < n; i++){ for(int j=1; j < (n-i); j++){ if(arr[j-1] > arr[j]){ //swap elements temp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; } } } } public static void main(String[] args) { int arr[] ={3,60,35,2,45,320,5}; System.out.println("Array Before Bubble Sort"); for(int i=0; i < arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(); bubbleSort(arr);//sorting array elements using bubble sort System.out.println("Array After Bubble Sort"); for(int i=0; i < arr.length; i++){ System.out.print(arr[i] + " "); }
} }