§4.3. İnstrumental proqram təminatı – proqaramlaşdırma vasitələri (Software tools)
İnstrumental proqram təminatına yeni əlavələrin və informasiya sistemlərinin yaradılması üçün lazım olan proqram vasitələri daxildir və proqramçılar tərəfindən yaradılan proqramların layihələndirmə, proqramlaşdırma, sazlama, testləşdirmə proseslərinin texnoloji mərhələlərində alət kimi tətbiq olunurlar. İnstrumental proqram təminatına proqramlaşdırma dilləri və sistemləri, proqram məhsullarının işlənməsinin inteqrallaşdırılmış mühiti, həmçinin proqram kompleksləri olan CASE (Computer Aided Software Engineering) vasitəsi, proqramların işlənməsinin avtomatlaşdırılmış prosesi daxildir.
İnstallaşdırma (inc. installation) – proqram təminatının setup.exe köməkçi proqramın köməyi ilə kompakt disk, fləş kart və sərt diskdən götürülüb kompüterdə quraşdırılmasıdır.
Alqoritmin kompüterdə təsviri üçün proqramlaşdırma dillərindən və UML (Unifed Modeling Language) texnologiyasından istifadə olunur. Proqramlaşdırma dilləri kompüter proqramlarının tərtibində istifadə olunan leksik, sintaksis və semantik qaydaları təyin edir.
Son illər yeni proqramlaşdırma dilləri yaradılır. Peşəkar proqramçılar öz işlərinə bir neçə müxtəlif proqramlaşdırma dillərini tətbiq edirlər. Müasir tətbiqi və sistem proqramlar, o cümlədə əməliyyat sistemləri və sistem proqramlaşdırma əsasən alqoritmik dillərdə və ya yuxarı səviyyəli dillərdə işlənir, bu da proqramçının işinin rahatlığını və yüksək məhsuldarlığını təmin edir.
Proqramlaşdırma dillərinin inkişaf tarixi maşın dillərindən başlayır. Birinci kompüterlər üçün proqramlar maşın kodlarında işlənirdi, əsasən informasiya daşıyıcısı kimi perfokart və perfolentadan istifadə olunurdu. Proqramçılar maşının arxitekturasını hökmən müfəssəl bilməli idi.
Kompüterin aparat təminatının inkişafı yaddaşın emal sürətini və həcmini artırdı. Bu da proqramlaşdırma dillərinin dəyişilməsinə gətirib çıxardı ki, onlar insanlar üçün sadə və aydın oldu. Proqramlaşdırma dilləri öz inkişafında praktiki olaraq kompüterin nəsilləri üzrə mərhələləri keçiblər.
İlk ən mühüm addım assembler dilində oldu. Doğrudan da, maşın əmrlərinin simvollu kodlaşdırılmasına keçid çox böyük əhəmiyyətə malik idi. Bununla da proqramçılara aparat səviyyəsində əmrlərin kodlaşdırılması üsullarından istifadə etməyə ehtiyac qalmadı.
1952-ci ildə amerikalı qadın Qreys Hopper dünyada ilk mnemonik proqramlaşdırma dili olan Assembler dilini yaratdı. Onun adı "assemble" ingilis sözündən götürülmüşdür, "yığmaq", "quraşdırmaq" mənasını verir. O, özündə mnemonik əmrlər sistemini (əmrlərin siyahısını), prosedurlar kitabxanasını və proqram mətnlərini maşın koduna çevirmək üçün xüsusi proqramı birləşdirirdi. Maşın kodunun alınmasının belə proseduru kompilyasiya (compile – "tərtib etmək", "yığmaq"), onu həyata keçirən proqram isə kompilyator adlanır. Bunları da Qreys M.Hopper düşünüb tapmışdır.
Assembler dili digər proqramlaşdırma dillərinə bənzəmir və tamamilə fərqli bir dildir. Assembler dili hal-hazırda proqramlaşdırmada çox böyük çəkiyə malikdir və onsuz müasir proqramlaşdırmanı təsəvvür etmək kompüteri prosessorsuz təsəvvür etmək kimi bir şeydir. Assembler dili hal-hazırda inkişaf etdirilir, yeni-yeni standartları hazırlanır.
1954-cü ildə Con Bekus (John Backus) başda olmaqla IBM korporosiyasının əməkdaşları Fortran proqramlaşdırma dilini yaratdılar. Bu ilk yuxarı səviyyəli proqramlaşdırma dilidir. Yeni dilin assemblerdən fərqi altproqram konsepsiyasıdır. Fortran dili elmi hesabatların yerinə yetirilməsi üçündür.
Yuxarı səviyyəli ikinci proqramlaşdırma dili Lisp oldu. Bu dildən əsasən indi də mürəkkəb məsələlərin həllində istifadə olunur. 1960-cı ildə yaradılan bu dilin və ümumilikdə funksional proqramlaşdırmanın banisi Con Makkartidir. Lisp dili siyahıların emalı dilidir. Bu dil süni intellekt sistemlərində geniş yayılıb. Sonradan bu nəsildən olan Planner (1967), Scheme (1975) və Common Lisp (1984) dilləri yaradıldı.
1960-cı ildə ABŞ-da Cobol proqramlaşdırma dili yaradıldı. Bu dil əsasən kommersiya əlavələrinin yaradılması üçün nəzərdə tutulub. Dilin əsas xüsusiyyətləri kommersiya əlavələri üçün xarakterik olan verilənlərin böyük massivinin səmərəli emalıdır.
1960-ci ildə Peter Naurun başçılığı ilə Algol proqramlaşdırma dili yaradıldı. 1968-ci ildə yeni versiya olan Algol 68 yaradıldı, amma birinci versiya ilə müqayisədə praktiki tətbiqini tapmadı.
1960-cı illərin ortalarından başlayaraq ABŞ-da proqramlaşdırmanın öyrənilməsinə təlabat yalnız hesablama texnikası mütəxəssisləri üzrə deyil, istifadəçilərin geniş dairəsi üzrə də sürətlə artmağa başladı. Bunun əsas səbəbi biznesdə kompüterlərin sayının sürətlə artması oldu. Dartmut kollecinin iki professoru Tomas Kurt və Con Kemeni tələbələrə proqramlaşdırmanı öyrətmək üçün Beyzik (Basic) dilini yaratdılar. Bu dilin adı Beginner's All-purpose Symbolic Instruction Code ingilis sözlərinin baş hərflərindən götürülüb. Bu dil yeni başlayanlar üçün simvol təlimatlı universal koddur.
Beyzik dili 1975-ci ildə daha da məşhurlaşdı. O vaxt Microsoftun yaradıcıları, Bill Qeyts və Pol Allen Altair 8800 kompüterləri üçün interpretator yazdılar ki, bu da Altair BASIC adlandı. Dilin ikinci inkişafı 1990-cı ildən başladı. Microsoft firmasının yaratdığı Visual Basic dili hal-hazırda geniş tətbiq olunur.
1964-cü ildə IBM korporosiyası tərəfindən PL/1 dili yaradıldı. Bu dil bir çox əlavələrdə Cobol və Fortran-ı əvəz etdi.
1970-ci ildə hesablama texnikası sahəsi üzrə mütəxəssis olan isveçrəli professor Niklaus Virt Pascal proqramlaşdırma dilini yaratdı. Dilin adı XVIII əsrdə yaşamış fransız riyaziyyatçısı Blez Paskalın şərəfinə qoyulmuşdur. Pascal dili struktur proqramlaşdırma üçün çox geniş yayılan birinci dildir. Burada struktur proqramlaşdırmanın konsepsiyası bütünlüklə ardıcıl olaraq həyata keçirilmişdir. Dilin əsas nöqsanlarından biri proqramın modullara bölünmə vasitəsinin olmamasıdır. Virt bunu nəzərə alaraq Modula-2 (1978) dilini yaratdı ki, bu dilin əsas konsepsiyası modul vasitəsinin olmasıdır. 1988-ci ildə Modula-3 dili meydana gəldi ki, bura obyektyönlü əlamətlər daxil edilmişdi. Pascal və Modula dillərinin məntiqi davamı Oberon və Oberon-2 dilləridir.
1972-ci ildə Kerniq və Ritçi tərəfində C proqramlaşdırma dili yaradıldı. C dili Unix əməliyyat sisteminin işlənilməsi üçün yaradılıb. Bu dil Assembler kimi verilənlərlə praktiki olaraq səmərəli işləməyə imkan verir.
1986-ci ildə Byarn Straustrup C dilinə Simula dilindəki obyektyönlü əlamətləri əlavə edərək C++ dilinin birinci versiyasını yaratdı.
1995-ci ildə Sun Microsystems şirkətində Ken Arnold və Ceyms Qoslinq Java dilini yaratdılar. Java dili C və C++ dillərinin sintaksisinin varisidir.
1998-2001-ci illərdə Microsoft korporasiyasında Anders Xeylsberqin rəhbərliyi ilə mühəndislər qrupu C# dilini yaratdılar. Yeni yaradılan bu dil Java dilinə oxşayır, amma fərqli cəhətləri var. C# dili əsasən çox komponentli internet əlavələrinin işlənməsi üçün nəzərdə tutulub. Bu dil Microsoft.NET platforması üçün əlavələrin işlənməsi üçündür. C# dilinin kompilyatoru NET-in standart quraşdırılmasına daxil olduğundan proqramı Visual Studio instrumental vasitəsi olmadan da yaradıb və kompilyasiya etmək mümkündür.
1983-cü ildə ABŞ-ın Müdafiə Nazirliyinin himayəsi ilə Ada dili yaradıldı. 1995-ci ildə Ada 95 dilinin standartları qəbul edildi ki, bununla da əvvəlki versiya inkişaf etdirilməklə ora obyekt yönlülük əlavə edildi. Hər iki dil hərbi sahədən kənarda yayılmadı. Bunun da əsas səbəbi dilin öyrənilməsinin və sintaksisinin mürəkkəbliyidir.
Yuxarıda sadalanan bütün dillər ümumi təyinatlıdır, yəni verilənlərin xüsusi strukturu yoxdur və ya xüsusi tətbiq üçün nəzərdə tutulmayıb. Amma bir çox dillər işlənib hazırlanıb ki, bunlar xüsusi tətbiq üçün nəzərdə tutulub. Bu dillərdən bəzilərini qeyd edək.
1957-ci ildə verilənlərin riyazi emalının təsviri üçün dilin yaradılmasına cəhd edildi. Bu dil APL (Application Programming Language) adlandırıldı. Dilin əsas fərqli xüsusiyyətləri riyazi simvollardan istifadə və olduqca güclü sintaksisin olmasıdır. Qeyri standart simvollardan sintaksisin elementləri kimi istifadə dilin geniş tətbiqinə maneçilik törətdi.
1962-ci ildə sətirlərin emalı üçün nəzərdə tutulan Snobol və 1972-ci ildə onun varisi Icon meydana gəldi. Icon dilinin sintaksisi C və Pascal-ı xatırladır. Əsas fərq isə sətirlərlə iş üçün güclü standart funksiyaların və bu funksiyalarla əlaqədar xüsusi semantikanın olmasıdır. Icon və Snobol-un analoqu Perl dilidir. Bu dil sətir və mətnlərin emalı üçün nəzərdə tutulmaqla bərabər, ona bəzi obyektyönlü imkanlar da əlavə edibdir.
1969-cu ildə çoxluqlarla əməliyyatların təsviri üçün SETL dili yaradıldı. Dildə verilənlərin əsas strukturu çoxluqlardır, əməliyyatlar isə çoxluqlar üzərində aparılan riyazi əməliyyatların analoqudur. SETL dilinin mürəkkəb obyektlərlə işdə istifadəsi səmərəlidir.
Son zamanlar İnternet texnologiyalarının inkişafı, yüksək məhsuldar kompüterlərin geniş yayılması və digər faktorlar skriptləşdirmə adlanan dillərin yayılmasına səbəb oldu. Skriptləşdirmə dili - hər hansı proqramın bir və ya bir neçə hissəsini idarə etməyə imkan verən proqramlaşdırma dilidir. Skript müəyyən proqramlarla yerinə yetirilən bir proqram hissəsidir. Kompilyasiya olunmadan istifadəsi və sintaksisinin sadəliyi bu dilin əsas xarakterik xüsusiyyətləridir. Bu tip dillər olduqca çox sayda yaradılıb. Bunlardan da ən çox istifadə edilənlərə baxaq.
Mürəkkəb veb səhifələrin təsviri üçün Netscape Communications şirkətində Brendan Eyx tərəfindən 1995-ci ildə JavaScript dili yaradıldı. Əvvəllər bu dil LiveScript adlandırılırdı. JavaScript obyekt yönlü proqramlaşdırma dilidir və web səhifələrin əks olunmasında brauzerlərlə interpretasiya olunur. Bu dilin sintaksisi Java və C/C++ dillərinə oxşayır.
Digər skriptləşdirmə dili VBScript JavaScript-in alternativi olaraq, Microsoft tərəfindən yaradılmışdır. Sintaksisi Visual Basic dilinə oxşayır, həmçinin JavaScript kimi web səhifələrin əks olunmasında brauzer tərəfindən icra olunur və eyni dərəcəli obyektyönümlüyə malikdir.
Perl dili web serverlərdə web səhifələrinin dinamik generasiyasının tətbiqi üçündür. Mətnlərlə iş üçün güclü vasitələrə malikdir. Dilin interpretasiyası vardır. Bütün bunlar mövcud platformalarda həyata keçirilir. İnterpretasiyalı obyekt yönlü proqramlaşdırma dili olan Python strukturuna və tətbiqinə görə Perlə yaxındır. Bu dilin bir çox platformalarda da tətbiqləri mövcuddur. Python dili hollandiyalı Qvido van Rossum tərəfindən 1991-ci ildə yaradılıbdır. Bu dilin interaktiv rejimi mövcuddur ki, bu da proqramın istənilən hissəsinin yoxlanılmasına imkan verir.
Obyektyönlü yanaşma ilk dəfə C++ dilində meydana gəlməyib. İlk obyektyönlü dil 1967-ci ildə yaradılan Simula dilidir. Bu dil müxtəlif obyekt və proseslərin modelləşdirilməsi üçün nəzərdə tutulmuşdur və obyektyönlülük əlaməti model obyektlərinin xassələrinin təsviri üçün yaradılıb.
Obyektyönlü proqramlaşdırma 1972-ci ildə yaradılan SmallTalk ilə məhşurlaşdı. Dil həqiqətən mürəkkəb qrafiki interfeyslərin layihələndirilməsi üçün nəzərdə tutulan ilk obyektyönlü dil idi. Burada sinif və obyektlər proqramlaşdırmanın yeganə konstruksiyası idi. SmallTalk-ın nöqsanı yaddaşa böyük tələb və əldə olunan proqramın məhsuldarlığının aşağı olmasıdır.
Bu dillərdən başqa əsl obyektyönlü proqramlaşdırma dili mövcuddur ki, bu 1986-cı ildə meydana gələn Eiffel dilidir. Bu dil Bertran Meyer tərəfindən yaradılıb və dilin sintaksisi Alqola oxşardır. Burada obyektyönlülüyün reallaşdırılması olduqca yaxşı həyata keçirilir.
Bir çox kompüter arxitekturası və proqramlaşdırma dilləri proqram operatorlarının ardıcıl yerinə yetirilməsinə yönəlib. Hal-hazırda, eyni hesablama proseslərinin müxtəlif hissələrinin paralel yerinə yetirilməsinə imkan verən aparat (hardware) və proqram (software) kompleksləri var. Belə sistemlərin proqramlaşdırılması üçün proqramlaşdırma vasitələri tərəfindən xüsusi dəstək tələb olunur. Bəzi ümumi təyinatlı dillər özlərində paralelliyin dəstəklənməsinin elementlərini saxlayır.
Belə dillərdən biri – Occam 1982-ci ildə yaradılıb və çoxprosessorlu sistemlərdə verilənlərin para–lel emalı üçün nəzərdə tutulmuşdur. O, paralel proseslərin qarşılıqlı əlaqəsini kanallar şəklində təsvir edir ki, bu da bir prosesdən digərlərinə informasiyanı ötürmək üçün istifadə olunur.
1985-ci ildə paralel hesablama modeli olan Linda təklif olundu. Onun əsas vəzifəsi paralel yerinə yetirilən proseslər arasındakı qarşılıqlı əlaqənin təşkilidir.
İndiyə kimi baxdığımız dillərin ümumi xassəsi var. Yəni, burada son nəticədə proqram hər hansı bir məsələnin həllini addım-addım təsvir edən imperativdir. İmperativ latın sözü olmaqla, problemin həlli üçün tələblərin məcmusudur. Amma məsələnin həllini kompilyatora da həvalə etmək olar. Bu ideyanın inkişafı üçün funksional və məntiqi proqramlaşdırma yanaşması mövcuddur.
Funksional proqramlaşdırmada əsas ideya proqramların riyazi funksiyalar şəklində təsviridir. Bu dillərdə mənsubetmə operatorundan istifadə olunmur. Funksional proqramlaşdırma dillərindən biri F#-dır. Burada funksional, imperativ və obyektyönlü proqramları yazmaq olar. F# dilinə Visual Studio-nun standartları daxil edilibdir.
F# bir daha qısa proqram yaradan nəticəçıxarmadan istifadə edir. Bu dil .NET – proqramlaşdırma dilidir. Dildə interaktiv proqramlaşdırma mühiti var ki, buna görə də F# Interactive Window adlanır. Qeyd etmək lazımdır ki, F# dili C# dilinin bütün imkanlarını dəstəkləyir.
Məntiqi proqramlaşdırma dillərindəki proqram riyazi - məntiq düsturları kimi ifadə olunur. İlk məntiqi proqramlaşdırma dillərindən birini PROLOG (PROgramming in LOGic - məntiqi terminlərlə proqramlaşdırma) təşkil edir. Bu dil 1973-cü ildə fransız alimi A.Kolmeroe tərəfindən yaradılıb. Hal-hazırda bir çox dillər mövcud olsa da, məntiqi proqramlaşdırmanın ən çox inkişaf etmiş və yayılmış dili PROLOG-dur. Məntiqi proqramlaşdırma dilləri, xüsusən PROLOG, süni intellekt sistemlərində geniş istifadə olunur. Bu nəsildən olanlara Mercury, Visual Prolog, Oz, Fril və s. aid etmək olar.
Dostları ilə paylaş: |