İnterpretator nədir?

İngilis dilindən tərcümədə kompüter hesablama maşını deməkdir. Biz sənədləri hazırlamaq, xəbərləri oxumaq və filmləri izləmək üçün artıq kompüterdən istifadə edirik.

Hesablama maşını ifadəsi kompüter sözünün mənasını dəqiq əks etdirir, çünki kompüter yalnız ədədlərlə işləyə bilir: sənəd, xəbər və filmlər kompüter üçün sadəcə rəqəmlər yığınıdır. Kompüterdə icra olunan proqramlar, həmçinin rəqəmlər yığınıdır.

Kompüter yalnız maşın kodunu "başa düşür" və "oxuyur". İnsan üçün maşın kodu əsasında proqram yazmaq çətindir, ancaq əvvəllər proqramçılar bu məqsədlə məhz maşın kodundan istifadə edirdilər. Məsələn, sözügedən proqramların kodu aşağıdakı kimi olurdu:

102 184 0 0
102 185 100 0
102 1 200
102 73
102 131 249 0
117 245

Nəticədə proqramçılar öz işlərini asanlaşdırmaq üçün insan dilinə yaxın olan proqramlaşdırma dilləri hazırlamaq üzərində düşünürdülər. Lakin proqramçıları bir məsələ narahat edirdi: rəqəmlər yığınından ibarət olan maşın kodunu "oxuyan" kompüter proqramlaşdırma dillərində yazılmış əmrləri necə icra edəcəkdi? 

Bu problemi həll edən iki proqram növü var: interpretator və kompilyator. Kompilyator haqqında bu məqalədə ətraflı oxuya bilərsiniz.

İnterpretator (interpreter) — bu, proqramlaşdırma dilində yazılmış kodu icra edən proqramdır. İnterpretator proqramlaşdırma dilində yazılmış kodu maşın koduna birdəfəlik çevirmir, əmrləri sətirbəsətir qəbul edərək onları dərhal icra edir. İnterpretatordan istifadə edən proqramlaşdırma dilləri interpretasiya olunan dillər adlanır.

İnterpretator necə işləyir?

İnterpretator proqramlaşdırma dilində yazılmış əmri qəbul edir, onu oxuyur və dərhal icra edir. Onun işini şərti olaraq iki rejimə bölmək olar: interaktiv və paket.

İnteraktiv rejim. Bu, adətən konsoldan istifadəni nəzərdə tutur. Onu "REPL" (Read-eval-print loop - oxuma, icra və çap dövrü) də adlandırırlar. Proqramçı konsolda hansısa bir əmri yazır və Enter düyməsinə sıxan ki həmin əmr dərhal icra olunur.

Read-eval-print loop

Adətən bunun üçün əvvəlcədən interpretatoru ayrıca bir əmrlə işə salmaq lazımdır. Lakin əgər JavaScript proqramlaşdırma dilində hansısa bir əmr brauzerin konsolunda yazılırsa, interpretatoru işə salmağa ehtiyac yoxdur, çünki JS interpretatoru brauzerlərə inteqrasiya edilib.

Paket rejimi. Proqramçı hansısa bir kodu mətn redaktorunda yazır, onu lazımi fayl genişlənməsi ilə yadda saxlayır. İnterpretator bu faylı qəbul edir, yazılmış kodu sətirbəsətir oxuyur və icra edir.

Proqramların əksəriyyəti paket rejimində yazılır: onları konsolda yazmaq və dərhal icra etmək əlverişsiz olardı.

Hazırda JavaScript və Python proqramlaşdırma dilləri ən populyar interpretasiya olunan dillər sayılırlar. JavaScript brauzerdə işlədiyinə görə, demək olar ki bütün saytlarda ondan istifadə edilir. Python isə maşın təlimi, məlumatların təhlili, riyaziyyat, analitika və avtomatlaşdırma, həmçinin veb və bir çox başqa sahələrdə tətbiq edilir.

Bundan başqa, server proqramlaşdırma dili olan PHP, universal Ruby və Perl (avtomatlaşdırma, sistem inzibatçılığı və ya mətnlə işləmək üçün tez-tez bu dildən istifadə edilir), həmçinin interpretasiya olunan dillərdirlər.

İnterpretasiya olunan dillər sistemdən asılı deyil, buna görə onları hər yerdə istifadə etmək mümkündür. Sadəcə olaraq kodun icra ediləcəyi qurğuda interpretatorun olması mütləqdir.

Lakin yüksək işləmə sürəti lazım olduqda adətən kompilyasiya edilən dillərə üstünlük verilir, çünki kod daha sürətli icra olunur.

Bir sıra proqramlaşdırma dillərinin (məsələn, Basic və ya Python) həm kompilyasiya, həm də interpretasiya edilən versiyaları vardır və onlardan müxtəlif məqsədlər üçün istifadə olunur.

Üstün cəhətləri

İnteraktivlik. Kod sətirbəsətir icra olunur və bu, çox rahatdır. Əgər hansısa bir sadə sorğunu sınaqdan keçirmək lazımdırsa, sadəcə interpretatoru qoşuruq, konsolda əmri yazırıq, interpretator əmri qəbul edir və dərhal icra edir.

Öyrənilməsi asandır. REPL (interaktiv rejim) sizə tanış olmayan konstruksiyaların necə işlədiyini yoxlamağa və dilin sintaksisini daha tez öyrənməyə imkan verir. Səhv qeydə alındıqda, interpretator onun yerini göstərir.

Proqramlaşdırmaq asandır. İnterpretator proqramçıları maşın kodu əsasında proqramlar yazmaq kimi çətin işdən azad edir.

Kross-platforma. İnterpretatorlar müxtəlif platformalar (Mac, Windows, Linux) üçün işlənib hazırlanıb, buna görə yazılmış proqram bütün platformalarda işləyəcək.

Optimallaşdırma mexanizmləri. Proqramların işləmə sürəti yalnız kodun keyfiyyətindən deyil, həm də interpretatorun sürətindən asılıdır. Məsələn, Google-un proqramçıları daima Chrome brauzerində işləyən JavaScript interpretatorunun işini optimallaşdırırlar. Bu o deməkdir ki, JavaScript proqramlaşdırma dilində yazdığımız skript Chrome-un hər yeni versiyasında daha sürətli işləyir.

Mənfi cəhətləri

Proqramın işləmə sürətinin aşağı olması. İnterpretasiya olunan proqramların işləmə sürəti kompilyasiya olunan proqramlarla müqayisədə aşağıdır, çünki interpretator əvvəlcə əmrin mətnini təhlil edir və yalnız bundan sonra onu icra edir.

İnterpretatordan asılılıq. İnterpretasiya olunan proqramın işləməsi üçün interpretator lazımdır. Məsələn, Windows əməliyyat sistemində proqramların genişlənməsi .exe-dir. Belə proqramları dərhal işə salmaq olur. Lakin Python dilində yazılmış proqramı icra etmək üçün python interpretatorunu quraşdırmaq mütləqdir.

Mənbə kodunun əlçatanlığı. İnterpretasiya olunan dildə mənbə kodu istifadəçiyə əlçatandır. İstifadəçi müəllifin proqramda gizlətmək istədiyini (məsələn, parolun şifrlənməsi üsulu və ya unikal alqoritm) görə bilər.

Səhvlərin sonradan aşkar edilməsi. Artıq bildiyimiz kimi interpretatorlar əmri oxuyuraq dərhal icra edirlər. Əgər əmrin yazılışında səhv varsa, interpretator bu barədə əvvəlcədən deyil, yalnız onun təhlilindən sonra məlumat əldə edir.

0

Şərh yazmaq üçün hesabınıza daxil olun.