Proqramlaşdırma nəzəriyyəsi ilə praktik proqramlaşdırma paralel inkişaf etmişdir. İnkişafın ilk mərhələsində informasiya emalının riyazi nəzəriyyəsi hazırlanmış və elə həmin dövrdə də proqramların düzgünlüyünü yoxlayan vasitələr və səmərəli translyatorların yaradılması prinsipləri işlənib hazırlanmışdır. O zamanlar proqramçılara çox yüksək ixtisaslı işçilər kimi baxılırdı. Bu, nadir peşələrdən idi, proqramların istehsalı isə hələ kütləvi xarakter daşımırdı.
Kompüterlərin sonrakı inkişafı və yayılması ağırlıq mərkəzini tətbiqi sahəyə keçirdi. Proqramçıların, eləcə də proqramların sayı artaraq, milyonlarla hesablanmağa başladı.
Bununla belə, ixtisaslı proqramçıları müəyyənləşdirən bilik səviyyəsi aşağı düşdü. Getdikcə mürəkkəb proqramların hazırlanmasında daha çox orta səviyyəli proqramçılar iştirak etməyə başladı.
Kiçik və orta həcmli proqramların hazırlanması.
Kiçik və orta həcmli (bir neçə min sətirlik) hər hansı bir proqram ayrı-ayrı proqramçılar tərəfindən yaradıla bilər. Onların yaradılması adətən iki mərhələdə baş verir: Birinci mərhələ təhlil (analiz) mərhələsidir. Bu mərhələdə proqramın təyinatı ay dınlaşdırılır, alqoritm düşünülüb tapılır, verilənlərin strukturu müəyyənləşdirilir, proqram obyektləri qeyd olunur və onlar arasındakı qarşılıqlı əlaqələr aş kar edilir. İkinci mərhələ kodlaşdırmadır. Bu mərhələdə alqoritm hər hansı proqramlaşdırma dilində yazılır. Kiçik proqramlar üçün bu, maksimal əmək tələb edən əsas mərhələdir. Testləmə və sazlama çox da böyük zəhmət tələb etmir. Belə layihələrin bir proqramçı tərəfindən icrası yarım ilədək çəkə bilər.
Böyük proqramların hazırlanması.
Böyük proqramların həcmi milyonlarla sətrə çatır. Onların hazırlanmasına onlarla, bəzən isə yüzlərlə proqramçı bir neçə il birgə əmək sərf edir. Belə proqramların hazırlanması bir neçə ardıcıl mərhələdən ibarətdir.
Proqramların hazırlanma mərhələləri:
1. Məsələnin qoyuluşu və təhlili.
2. Texniki tapşırığın hazırlanması.
3. Layihələndirmə və kodlaşdırma.
4. Testləmə və sazlama.
5. Tətbiq edilmə.
6. Müşayiət.
Birinci mərhələdə layihəyə olan tələblər təhlil olunur. Bu, layihənin uğurla sona çatmasını müəyyənləşdirən ən önəmli mərhələdir. İri layihələrin uğursuzluğu çox zaman bu mərhələdə bura xılmış səhvlərlə bağlı olur. Tələblərin təhlili gedişində proqramın təyinatı dəqiqləşdirilir, giriş və çıxış verilənləri aydınlaşdırılır. Tələb olunan resurslar və layihənin dəyəri qiymətləndirilir. Növbəti mərhələ proqramın spesifikasiyalarının hazırlanmasıdır. Bu mərhələdə proqramçılar üçün texniki tapşırıqlar formalaşdırılır, iş sənədləri hazırlanır və işin təqvim planı qurulur.
Sonra proqramın layihələşdirilməsi və kodlaşdırılması işləri başlanır. Böyük layihələrdə buna əsas mərhələ kimi baxılmır. Kodlaşdırma sona çatdıqda (bəzən isə daha öncədən), proqramın testlənməsi və sazlanması başlanır. Testləmə mərhələsində proqramın düzgünlüyü, onun işinin səmərəliliyi, korrekt olmayan hərəkətlərə və texniki nasazlıqlara dözümlüyü, kri tik rejimlərdə işləmə etibarlılığı yoxlanılır. Müəyyən olunmuş nasazlıqlar proq ramçılar tərəfindən dərhal aradan qaldırılır.
Əgər proqram konkret sifarişçinin tələbləri nəzərə alınmaqla yazılmışsa, adətən, proqramın tətbiq edilmə mərhələsinə zərurət yaranır. Bu mərhələdə avadanlıq köklənir, əvvəllər istifadə olunmuş proqramlardan verilənlər yeni proqrama keçirilir, proqramla işləyəcək heyət təlim keçir. Proqramla işin son mərhələsi müşayiətdir. Bu mərhələdə istifadəçilərə məsləhətlər verilir, istismar müddətində aşkar olunan xətalar düzəldilir, sifarişçinin istəyinə (xahişinə) görə proqramlarda çox da böyük olmayan dəyişikliklər edilir.
İnterpretatorlar. Kompilyatorlar
Yüksək səviyyəli dildə yazılmış proqramın kompüterin mərkəzi prosessoru tərəfindən başa düşülüb icra olunması üçün o, maşın koduna çevrilməlidir. Bu çevrilmə müxtəlif yollarla aparıla bilər: Birinci yol ilkin proqramın hər bir sətrini maşın koduna çevirən (translyasiya edən, ing. translate) proqramı başlatmaqdır. Bu proqram bir sətri çevirir və onu yerinə yetiril mək üçün mərkəzi prosessora verir, yalnız bundan sonra növbəti sətrin çevrilməsinə keçir. Belə proqrama interpretator (ing. interpreter) deyilir. Bu proqramı iki müxtəlif dilli şəxsin ünsiyyətinə kömək edən tərcüməçi ilə müqayisə etmək olar. Birinci şəxs nəsə deyir, tərcüməçi onun dediklərini tərcümə edir. İkinci şəxs cavab verir və onun cavabı birinci şəxsə tərcümə olunur. Bu proses bütün dialoq müddətində davam edir.
Bu yanaşmanın üstünlüyü onun istifadəçi üçün sadəliyindədir. Proqram yazılıbbaşladıldıqdan dərhal sonra kompüterin hər dəfə nə etdiyini görmək olur. Əgər proq — ramda nəyisə dəyişmək lazımdırsa, bu dəyişiklik edilir və proqram yenidən translyasiya olunur. Ancaq bu yolun bir çatışmazlığı var: proqram tam hazır olduqdan sonra da, hər dəfə icra olunmazdan qabaq onun hər bir sətri təzədən maşın koduna çevrilir və nəticədə proqramın ümumi icra müddəti uzanır.
Başqa bir müqayisə aparaq. Bu kitabı Azərbaycan dilində yazıb sonradan rus dilinə çevirmək üçün naşir tərcüməçi tutur və kitabı bütövlükdə rus dilinə tərcümə etdirir. Translyatorun başqa növü olan kompilyator da (ing. “compile” – “tərtib etmək”, “yığmaq”) belə işləyir: proqram yüksək səviyyəli dildə tam yazıldıqdan sonra kompilyator onu oxuyur, proqramı maşın koduna çevirir və ayrı bir faylda saxlayır. Sonradan ilkin koddan asılı olmayaraq, bu fayl istənilən dəfə çalışdırıla bilər. Bu zaman, aydındır ki, yenidən translyasiyaya lüzum qalmır.