» Formal proqramlaşdırma dili. rəsmiləşdirilmiş dil. Proqramlaşdırma dillərinin xüsusiyyətləri

Formal proqramlaşdırma dili. rəsmiləşdirilmiş dil. Proqramlaşdırma dillərinin xüsusiyyətləri
Zaman-zaman Habré-də rəsmi dillər nəzəriyyəsinin müəyyən aspektlərinə həsr olunmuş yazılar və tərcümə edilmiş məqalələr dərc olunur. Belə nəşrlər arasında (müəlliflərini incitməmək üçün xüsusi əsərləri qeyd etmək istəmirəm), xüsusən də müxtəlif dil emal proqram vasitələrinin təsvirinə həsr olunmuş nəşrlər arasında çox vaxt qeyri-dəqiqliklər və çaşqınlıqlar olur. Müəllif hesab etməyə meyllidir ki, bu bədbəxt vəziyyətə gətirib çıxaran əsas səbəblərdən biri formal dillər nəzəriyyəsinin əsasında duran fikirlərin kifayət qədər dərk edilməməsidir.

Bu mətn formal dillər və qrammatikalar nəzəriyyəsinə məşhur giriş kimi nəzərdə tutulub. Bu nəzəriyyə olduqca mürəkkəb və çaşqın hesab olunur (və mən haqlı olaraq deməliyəm). Tələbələr adətən mühazirələrdə darıxırlar, imtahanlar isə üstəlik, həvəs oyatmır. Ona görə də elmdə bu mövzuda o qədər də çox tədqiqatçı yoxdur. Təkcə onu demək kifayətdir ki, keçən əsrin 50-ci illərinin ortalarında formal qrammatika nəzəriyyəsinin yarandığı vaxtdan bu günə qədər bütün dövrlərdə bu elmi istiqamətdə cəmi iki doktorluq dissertasiyası dərc edilmişdir. Onlardan biri 60-cı illərin sonlarında Aleksey Vladimiroviç Qladkiy tərəfindən yazılmışdır, ikincisi artıq yeni minilliyin astanasındadır - Mati Pentus tərəfindən.

Bundan əlavə, ən əlçatan formada formal dillər nəzəriyyəsinin iki əsas anlayışı təsvir edilmişdir: rəsmi dil və formal qrammatika. Test tamaşaçılar üçün maraqlıdırsa, müəllif daha bir neçə oxşar opus dünyaya gətirmək üçün təntənəli söz verir.

Formal dillər

Bir sözlə, formal dil real dilin riyazi modelidir. Burada real dil subyektlərin bir-biri ilə müəyyən ünsiyyət (ünsiyyət) üsulu kimi başa düşülür. Ünsiyyət üçün subyektlər ciddi bir temporal qaydada tələffüz olunan (yazılan) məhdud işarələr (simvollar) dəstindən istifadə edirlər, yəni. xətti ardıcıllıqlar əmələ gətirir. Belə ardıcıllıqlar adətən sözlər və ya cümlələr adlanır. Beləliklə, yalnız sözdə. riyazi metodlarla öyrənilən dilin kommunikativ funksiyası. Burada dilin başqa funksiyaları öyrənilmir və buna görə də nəzərə alınmır.

Formal dillərin necə öyrənildiyini daha yaxşı başa düşmək üçün ilk növbədə riyazi öyrənmə metodlarının xüsusiyyətlərinin nə olduğunu başa düşmək lazımdır. Kolmoqorov və s.-ə görə, tətbiq olunan hər şeydən asılı olmayaraq, o, həmişə iki əsas prinsipə əməl edir:

  1. Ümumiləşdirmə (abstraksiya). Riyaziyyatın öyrənilməsi obyektləri yalnız riyaziyyatda mövcud olan və riyaziyyatçılar tərəfindən öyrənilməsi nəzərdə tutulan xüsusi varlıqlardır. Riyazi obyektlər real obyektləri ümumiləşdirməklə əmələ gəlir. İstənilən obyekti öyrənən riyaziyyatçı onun yalnız bəzi xassələrinə diqqət yetirir, qalanlarından diqqətini yayındırır. Deməli, mücərrəd riyazi obyekt “nömrə” əslində gölməçədəki qazların sayını və ya bir damla sudakı molekulların sayını ifadə edə bilər; əsas odur ki, qazlar və su molekulları haqqında danışmaq olar
    aqreqatlar haqqında danışın. Həqiqi obyektlərin belə “ideallaşdırılmasından” bir mühüm xüsusiyyət irəli gəlir: riyaziyyat çox vaxt sonsuz kolleksiyalarla işləyir, əslində isə belə kolleksiyalar mövcud deyil.
  2. Düşüncənin sərtliyi. Elmdə bu və ya digər mülahizələrin doğruluğunu onların nəticələrini əslində mövcud olanlarla müqayisə etməklə yoxlamaq adətdir, yəni. təcrübələr aparmaq. Riyaziyyatda həqiqətin əsaslandırılmasını yoxlamaq üçün bu meyar işləmir. Buna görə də, nəticələr eksperimental olaraq yoxlanılmır, lakin müəyyən qaydalara tabe olan ciddi əsaslandırma ilə onların etibarlılığını sübut etmək adətdir. Bu arqumentlər sübut adlanır və sübutlar müəyyən bir ifadənin düzgünlüyünü əsaslandırmaq üçün yeganə yol kimi xidmət edir.
Beləliklə, dilləri riyazi üsullarla öyrənmək üçün əvvəlcə dildən onun öyrənmə üçün vacib görünən xassələrini çıxarmaq, sonra isə bu xassələri ciddi şəkildə müəyyənləşdirmək lazımdır. Bu yolla əldə edilən abstraksiya formal dil - real dilin riyazi modeli adlandırılacaq. Xüsusi məzmun riyazi model hansı xassələrin öyrənilməsinin vacibliyindən asılıdır, yəni. nə planlaşdırılır Bu an vurğulayın və öyrənin.

Belə bir riyazi abstraksiyaya məşhur misal kimi, rus qulağının "söz torbası" üçün dissonant adı ilə tanınan modeli göstərmək olar. Bu modeldə təbii dil mətnləri (yəni insanların bir-biri ilə gündəlik ünsiyyət prosesində istifadə etdikləri dillərdən biri) öyrənilir. Söz çantası modelinin əsas obyekti tək atributla təchiz olunmuş söz, bu sözün mənbə mətndə rast gəlmə tezliyidir. Model sözlərin bir-birinin yanında necə yerləşdiyini nəzərə almır, yalnız mətndə hər sözün neçə dəfə baş verdiyini nəzərə alır. Sözlər çantası mətn əsaslı maşın öyrənməsində əsas tədqiqat obyektlərindən biri kimi istifadə olunur.

Ancaq formal dillər nəzəriyyəsində sözlərin bir-birinin yanında düzülməsi qanunlarını öyrənmək vacib görünür, yəni. mətnlərin sintaktik xüsusiyyətləri. Bunun üçün söz çantası modeli kasıb görünür. Buna görə də formal dil sonlu əlifbanın elementlərindən ibarət ardıcıllıqlar toplusu kimi müəyyən edilir. Bunu daha ciddi şəkildə müəyyənləşdirək.

Əlifba sonlu boş olmayan elementlər toplusudur. Bu elementlər simvol adlanacaq. Əlifbanı işarələmək üçün adətən latın V hərfindən, əlifbanın simvollarını göstərmək üçün isə latın əlifbasının ilkin kiçik hərflərindən istifadə edəcəyik. Məsələn, V = (a,b) ifadəsi iki a və b simvolundan ibarət əlifbanı bildirir.

Sətir sonlu simvollar ardıcıllığıdır. Məsələn, abc üç simvoldan ibarət bir sətirdir. Çox vaxt simvollarda zəncirləri təyin edərkən indekslərdən istifadə olunur. Zəncirlərin özləri yunan əlifbasının sonundakı kiçik hərflərlə işarələnir. Məsələn, omega = a1...an n simvoldan ibarət sətirdir. Zəncir boş ola bilər, yəni. heç bir xarakter ehtiva etmir. Belə zəncirlər yunan hərfi epsilon ilə işarələnəcək.

Nəhayət, V əlifbası üzərində rəsmi L dili V əlifbasının simvollarından ibarət ixtiyari sətirlər toplusudur. Burada özbaşınalıq dilin boş ola bilməsi deməkdir, yəni. tək zənciri yoxdur və sonsuzdur, yəni. sonsuz sayda zəncirdən ibarətdir. Sonuncu fakt tez-tez çaşdırıcıdır: sonsuz sayda sətirləri ehtiva edən real dillər varmı? Ümumiyyətlə, təbiətdə hər şey sonludur. Ancaq burada sonsuzluqdan qeyri-məhdud uzunluqda zəncirlər yaratmaq imkanı kimi istifadə edirik. Məsələn, C++ proqramlaşdırma dilinin mümkün dəyişən adlarından ibarət olan dil sonsuzdur. Axı, C++ dilində dəyişən adlarının uzunluğu məhdud deyil, ona görə də sonsuz sayda belə adlar ola bilər. Reallıqda təbii ki, uzun dəyişən adların bizim üçün heç bir əhəmiyyəti yoxdur. xüsusi mənaçünki belə bir adı oxuyanda onun başlanğıcını artıq unudursan. Lakin qeyri-məhdud uzunluqda dəyişənlər təyin etmək üçün potensial imkan kimi bu xüsusiyyət faydalı görünür.

Beləliklə, formal dillər sadəcə olaraq hansısa sonlu əlifbanın simvollarından ibarət sətirlər toplusudur. Ancaq sual yaranır: formal dili necə müəyyən etmək olar? Əgər dil sonludursa, onda onun bütün zəncirlərini sadəcə olaraq bir-bir yazmaq olar (əlbəttə, düşünmək olar ki, ən azı on min elementi olan və ümumiyyətlə, bir dilin zəncirlərini yazmağın mənası varmı? yazmağın mənası varmı?). Dil sonsuzdursa nə etməli, onu necə təyin etmək olar? Burada qrammatika işə düşür.

Formal qrammatikalar

Dili müəyyən etmək üsuluna həmin dilin qrammatikası deyilir. Beləliklə, biz qrammatikaya dilin müəyyənləşdirilməsinin istənilən üsulunu deyirik. Məsələn, L = (a^nb^n) qrammatikası (burada n natural ədəddir) ab, aabb, aaabbb və s. formanın sətirlərindən ibarət L dilini təyin edir. L dili sonsuz sətirlər toplusudur, lakin buna baxmayaraq, onun qrammatikası (təsviri) cəmi 10 simvoldan ibarətdir, yəni. sonlu.

Qrammatikanın məqsədi dilin vəzifəsidir. Bu tapşırıq mütləq yekun olmalıdır, əks halda insan bu qrammatikanı başa düşə bilməyəcək. Bəs son tapşırıq sonsuz kolleksiyaları necə təsvir edir? Bu, o halda mümkündür ki, dilin bütün zəncirlərinin strukturu sonlu sayda olan vahid prinsiplərə əsaslansın. Yuxarıdakı misalda aşağıdakı prinsip belə bir prinsip kimi çıxış edir: “dilin hər sətri a simvolları ilə başlayır, ondan sonra isə eyni sayda b simvolu gəlir”. Əgər dil strukturu vahid prinsiplərə tabe olmayan, təsadüfi yazılmış zəncirlərin sonsuz toplusudursa, belə bir dil üçün qrammatika icad etmək açıq-aydın mümkün deyil. Və burada başqa bir sual var, belə bir toplunun dil sayıla bilərmi, yoxsa yox. Riyazi ciddilik və yanaşmanın vahidliyi məqsədilə bu cür toplular adətən dil hesab olunur.

Deməli, dilin qrammatikası onun zəncirlərinin daxili quruluşunun qanunauyğunluqlarını təsvir edir. Belə qanunlara adətən sintaktik qanunlar deyilir. Beləliklə, qrammatikanın tərifini yenidən ifadə etmək olar son yol dilin sintaktik nümunələrinin təsviri. Təcrübə üçün təkcə qrammatikalar deyil, vahid yanaşma (formalizm və ya paradiqma) çərçivəsində təyin oluna bilən qrammatikalar maraqlıdır. Başqa sözlə, bütün formal dillərin qrammatikalarını təsvir etmək üçün vahid dil (metadil) əsasında. Sonra siz bu metadildə hazırlanmış qrammatikanın təsvirini daxil edəcək və dilin zəncirləri ilə nəsə edəcək bir kompüter alqoritmini tapa bilərsiniz.

Qrammatikaları təsvir etmək üçün belə paradiqmalara sintaktik nəzəriyyələr deyilir. Formal qrammatika bir növ sintaktik nəzəriyyə çərçivəsində təsvir olunan qrammatikanın riyazi modelidir. Bu cür nəzəriyyələr kifayət qədər çoxdur. Qrammatikaları təyin etmək üçün ən məşhur metadil, əlbəttə ki, Çomskinin generativ qrammatikalarıdır. Amma başqa formalizmlər də var. Bunlardan biri olan məhəllə qrammatikaları aşağıda təsvir olunacaq.

Alqoritmik nöqteyi-nəzərdən qrammatikaları dilin göstərilmə üsuluna görə bölmək olar. Üç əsas belə yol var (qrammatika növləri):

  • Qrammatikaların tanınması. Belə qrammatikalar giriş kimi dil zənciri verilən cihazlardır (alqoritmlərdir) və çıxışda zəncir dilə aiddirsə cihaz “Bəli”, əks halda isə “Xeyr”i çap edir.
  • Qrammatikaların yaradılması. Bu cür cihaz tələb olunan dil zəncirlərini yaratmaq üçün istifadə olunur. Obrazlı desək, düyməyə basılanda hansısa dil zənciri yaranacaq.
  • Sadalanan qrammatikalar. Belə qrammatikalar dilin bütün zəncirlərini bir-birinin ardınca çap edir. Aydındır ki, əgər dil sonsuz sayda sətirdən ibarətdirsə, o zaman sadalama prosesi heç vaxt dayanmayacaq. Baxmayaraq ki, əlbəttə ki, lazımi vaxtda, məsələn, istədiyiniz zəncir çap edildikdə zorla dayandırıla bilər.
Maraqlı sual qrammatik tiplərin bir-birinə çevrilməsi ilə bağlıdır. Generativ qrammatikaya malik olmaqla, məsələn, sadalayıcı qrammatik qurmaq mümkündürmü? Cavab bəli, edə bilərsiniz. Bunu etmək üçün zəncirlər yaratmaq, məsələn, simvolların uzunluğuna və sırasına görə sifariş vermək kifayətdir. Amma ümumi halda sadalayan qrammatikanı tanıyan qrammatikaya çevirmək mümkün deyil. Aşağıdakı üsuldan istifadə edə bilərsiniz. Giriş kimi zənciri qəbul etdikdən sonra zəncirlərin sadalanması prosesinə başlayın və sadalanan qrammatikanın bu zənciri çap edib-etməməsini gözləyin. Əgər belə bir zəncir çap olunarsa, o zaman sayma prosesini bitiririk və "Bəli" çap edirik. Sətir bir dilə aiddirsə, o, mütləq çap olunacaq və beləliklə tanınacaq. Ancaq zəncir dilə aid deyilsə, tanınma prosesi sonsuza qədər davam edəcəkdir. Qrammatikanı tanıyan döngə edəcək. Bu mənada qrammatikaları tanıma gücü generatorların və sayğacların gücündən azdır. Çomskinin generativ qrammatikaları ilə Türinqin tanınma maşınlarını müqayisə edərkən bunu nəzərə almaq lazımdır.

Qonşuluq qrammatikası

60-cı illərin ortalarında sovet riyaziyyatçısı Yuliy Anatolyeviç Şreyder sözdə əsaslanan dillərin sintaksisini təsvir etmək üçün sadə bir üsul təklif etdi. qonşuluq qrammatikaları. Dilin hər bir simvolu üçün onun məhdud sayda “məhəllələri” müəyyən edilir - bu simvolu (məhəllənin mərkəzi) içəridə olan zəncirlər. Dilin əlifbasının hər simvolu üçün belə məhəllələrin məcmusuna məhəllə qrammatikası deyilir. Zəncir məhəllə qrammatikası ilə müəyyən edilmiş dilə mənsub sayılır, əgər bu silsilənin hər bir simvolu onun bəzi qonşuluğu ilə birlikdə daxil edilir.

Nümunə olaraq A = (a+a, a+a+a, a+a+a+a,...) dilini nəzərdən keçirək. Bu dil arifmetik ifadələr dilinin ən sadə modelidir ki, burada “a” simvolu rəqəmlər, “+” simvolu isə əməliyyatlar rolunu oynayır. Bu dil üçün qonşuluq qrammatikası tərtib edək. "a" simvolu üçün qonşuluğu təyin edək. "a" simvolu A dil sətirlərində üç sintaktik kontekstdə baş verə bilər: əvvəlində, iki "+" simvolu arasında və sonunda. Zəncirin başlanğıcını və sonunu göstərmək üçün "#" psevdosimvolunu təqdim edirik. Sonra "a" simvolunun məhəllələri aşağıdakı kimi olacaq: #a+, +a+, +a# . Adətən, məhəllənin mərkəzini vurğulamaq üçün zəncirdəki bu simvolun altından xətt çəkilir (axı, zəncirdə mərkəz olmayan başqa belə simvollar da ola bilər!), Sadə bir texniki imkan olmadığı üçün burada bunu etməyəcəyik. imkanı. "+" simvolu yalnız iki "a" simvolu arasında baş verir, ona görə də ona bir qonşuluq verilir, a+a sətri.

a+a+a zəncirini nəzərdən keçirin və onun dilə aid olub olmadığını yoxlayın. Zəncirin ilk simvolu "a" ona qonşuluq #a+ ilə birlikdə daxil olur. İkinci simvol "+" a+a məhəlləsi ilə birlikdə zəncirə daxil olur. Bənzər bir hadisə sətirdəki simvolların qalan hissəsi üçün yoxlanıla bilər, yəni. bu zəncir gözlənildiyi kimi dilə aiddir. Lakin, məsələn, a+aa sətri A dilinə aid deyil, çünki sonuncu və sondan əvvəlki "a" simvollarının bu sətirə daxil olduğu məhəllələri yoxdur.

Hər dili qonşuluq qrammatikası ilə təsvir etmək olmaz. Məsələn, sətirləri "0" və ya "1" simvolu ilə başlayan B dilini nəzərdən keçirək. Sonuncu halda, "a" və "b" simvolları zəncirdə daha da irəli gedə bilər. Zəncir sıfırdan başlayırsa, yalnız "a" simvolları daha da irəli gedə bilər. Bu dil üçün heç bir məhəllə qrammatikası icad edilə bilməyəcəyini sübut etmək çətin deyil. Zəncirdə “b” simvolunun baş verməsinin qanunauyğunluğu onun birinci xarakteri ilə bağlıdır. "b" və "1" simvolları arasında əlaqəni təyin edən hər hansı məhəllə qrammatikası üçün kifayət qədər uzun bir zəncir seçmək mümkün olacaq ki, "b" simvolunun hər hansı qonşuluğu zəncirin başlanğıcına çatmasın. Onda başlanğıcda “0” simvolunu əvəz etmək mümkün olacaq və zəncir A dilinə aid olacaq ki, bu da bu dilin silsilələrinin sintaktik quruluşu haqqında intuitiv fikirlərimizə uyğun gəlmir.

Digər tərəfdən, bu dili tanıyan dövlət maşını qurmaq asandır. Bu o deməkdir ki, qonşuluq qrammatikaları ilə təsvir olunan dillər sinfi avtomat dilləri sinfindən daha dardır. Qonşuluq qrammatikaları ilə müəyyən edilən dillər Schrader's adlanacaq. Beləliklə, dillərin iyerarxiyasında avtomat dillərinin alt sinfi olan Schrader dilləri sinfini ayırmaq olar.

Deyə bilərik ki, Schrader dilləri bir sadə sintaktik əlaqəni - "yaxın olmaq" və ya bilavasitə üstünlük əlaqəsini müəyyən edir. Uzaq üstünlük əlaqəsi (b dilində açıq şəkildə mövcuddur) qonşuluq qrammatikası ilə müəyyən edilə bilməz. Ancaq dilin zəncirlərindəki sintaktik münasibətləri təsəvvür etsək, bu cür zəncirlərin çevrildiyi münasibətlər diaqramları üçün qonşuluq qrammatikası ilə çıxış edə bilərik.

Proqramlaşdırma dili- icraçı üçün proqramların yazılması üçün nəzərdə tutulmuş süni (formal) dil (məsələn, kompüter və ya rəqəmlə idarə olunan maşın). Proqramlaşdırma dili onun təsviri ilə müəyyən edilir. Proqramlaşdırma dilinin təsviri alqoritmik dilin imkanlarını təyin edən sənəddir. Təsvir adətən ehtiva edir:

· icazə verilən simvolların və xidmət (açar) sözlərin əlifbası;

əlifbadan yol verilən dil konstruksiyalarının qurulmasının sintaktik qaydalarını;

dil konstruksiyalarının mənasını və məqsədini izah edən semantika.

Proqramlaşdırma dilləri problemlərin həllini kompüterdə yerinə yetirilə biləcək formada təqdim etmək üçün istifadə olunur.

Kompüter prosessorunun göstərişlərindən ibarət olan maşın dili də proqramlaşdırma dilidir. Lakin maşın dilində yazılmış alqoritmləri hətta proqramçı-reveloper üçün oxumaq çətindir, əlavə olaraq belə bir dillə işləmək müəyyən bir kompüterin arxitekturasını bilmək tələb edir, buna görə də proqramlaşdırmada, bir qayda olaraq, daha yüksək səviyyəli dillər. səviyyədə maşın dillərindən istifadə olunur. Yüksək səviyyəli dil anlayışları və strukturu insanın qavrayışı üçün əlverişli olan və proqramın icra ediləcəyi konkret kompüterdən asılı olmayan proqramlaşdırma dilidir.

Yüksək səviyyəli proqramlaşdırma dilində yazılmış proqramın kompüterdə icrası üçün onun maşın dilinə çevrilməsi lazımdır. Bu funksiyanı yerinə yetirən proqram aləti tərcüməçi adlanır.

Tərcüməçi bir dildə yazılmış proqramın mətnini oxuyan və onu başqa dildə (adətən maşın dilində) ekvivalent mətnə ​​çevirən (tərcümə edən) proqramdır. Tərcüməçilərin iki əsas növü var: tərtibçilərtərcüməçilər.

Kompilyator mənbə proqramın mətnini verilmiş prosessor növü (maşın kodu) üçün təlimatlar toplusuna çevirir və sonra onu ayrıca proqram kimi işlədilə bilən icra olunan fayla (exe faylı) yazır. Başqa sözlə, kompilyator proqramı yüksək səviyyəli dildən aşağı səviyyəli dilə çevirir.

Tərcüməçi tərcümə nəticəsində mənbə proqramında göstərilən əməliyyatları yerinə yetirir. Bu halda, proqram mənbə dildə qalır və tərcüməçi olmadan icra üçün işə salına bilməz.

Tərtib edilmiş və tərcümə edilmiş dillərə bölünmə bir qədər ixtiyaridir. Beləliklə, Paskal kimi hər hansı bir ənənəvi tərtib edilmiş dil üçün tərcüməçi yaza bilərsiniz və hər hansı bir şərh olunan dil üçün kompilyator yarada bilərsiniz - məsələn, ilkin şərh edilən BASIC heç bir məhdudiyyət olmadan tərtib edilə bilər.

Java və C# kimi bəzi dillər tərtib edilmiş və tərcümə edilmiş dillər arasında qalır. Məhz, proqram maşın dilində deyil, maşından asılı olmayan aşağı səviyyəli kodda, bayt kodda tərtib edilir. Daha sonra bayt kodu virtual maşın tərəfindən yerinə yetirilir. Bayt kodunu yerinə yetirmək üçün adətən şərhdən istifadə olunur. Bu yanaşma müəyyən mənada həm tərcüməçilərin, həm də tərtibçilərin üstünlüklərindən istifadə etməyə imkan verir.

İlk proqramlaşdırıla bilən maşınların yaradılmasından bəri bəşəriyyət iki min yarımdan çox proqramlaşdırma dilini icad etmişdir. Proqramlaşdırma dillərinin sayı durmadan artır, baxmayaraq ki, bu proses aydın şəkildə yavaşladı. Bəzi dillər yalnız tərəfindən istifadə olunur böyük rəqəm proqramçılar, digərləri milyonlarla insana məlum olur. Onlardan bəziləri yüksək ixtisaslaşdırılmışdır (müəyyən sinif problemləri həll etmək üçün nəzərdə tutulmuşdur), bəziləri isə universaldır. Peşəkar proqramçılar bəzən ondan çox istifadə edirlər müxtəlif dillər proqramlaşdırma.

Proqramlaşdırma dilləri bir neçə meyara görə təsnif edilə bilər: maşın yönümlü (yığıcılar) və maşından müstəqil, ixtisaslaşmış və universal.

Xüsusi dillərə ART dili daxildir ( A avtomatik P proqramlaşdırılmışdır T ools) ədədi idarəetmə ilə dəzgahlar üçün ilk ixtisaslaşmış proqramlaşdırma dilidir. Dil 1956-1959-cu illərdə bir qrup amerikalı mütəxəssis tərəfindən işlənib hazırlanmışdır. riyaziyyatçı Duqlas T. Rossun rəhbərliyi altında. COBOL dili ( co mmon B işgüzarlıq- O yönəldib L bucaq), 1959-cu ildə Qreys Murray Hopperin rəhbərliyi altında ABŞ-da yaradılmış, iqtisadi məlumatların emalına yönəlmişdir. Riyaziyyatçı Qreys Murray Hopper ikinci dərəcəli kapitan rütbəsi ilə COBOL layihəsinə rəhbərlik etdi, daha sonra kontr-admiral oldu. G.M. Hopper COBOL-un "anası və nənəsi" adlanır.


(Greys Murray Hopper)

Müasir veb proqramlaşdırma dilləri Perl və PHP də xüsusi dillər kimi təsnif edilə bilər. Rapira, E-language (Rusiya), SMR (Böyük Britaniya), LOGO (ABŞ) dilləri proqramlaşdırmanın tədrisi üçün nəzərdə tutulmuş dillər kimi təsnif edilə bilər.

Bu gün ən çox yayılmış universal proqramlaşdırma dilləri C++, Delphi, Java, Pascal, Visual Basic, Python-dur.

Lakin proqramlaşdırma dillərini müstəqil tədqiqat obyekti kimi nəzərə alaraq, onları dilin qurulması konsepsiyasına görə təsnif etmək olar.

Proqramlaşdırma dillərinin təsnifatı

Proqramlaşdırma dillərini iki sinifə bölmək olar: prosedur və qeyri-prosessual. prosessual (imperativ) dillər operator tipli dillərdir. Bu dildə alqoritmin təsviri operatorlar ardıcıllığı formasına malikdir. Prosedur dilinin xarakterik xüsusiyyəti təyinetmə operatorunun (Basic, Pascal, C) olmasıdır. İmperativ dildə yazılmış proqram təbii dillərdə imperativ əhval-ruhiyyədə ifadə olunan əmrlərə çox bənzəyir, yəni kompüterin yerinə yetirməli olduğu əmrlər ardıcıllığıdır. İmperativ üslubda proqramlaşdırma zamanı proqramçı kompüterə izahat verməlidir Necə problemi həll etmək lazımdır.

Qeyri-prosessual (deklarativ) dillər dillərdir, onlardan istifadə edərkən proqram nəticənin hansı xüsusiyyətlərə malik olduğunu açıq şəkildə bildirir, lakin onun necə əldə edilməli olduğunu demir. Qeyri-prosessual dillər iki qrupa bölünür: funksional və məntiqi.

Deklarativ proqramlaşdırma dilləri yüksək səviyyəli proqramlaşdırma dilləridir, burada ifadələr simvolik məntiqdə bəyannamələr və ya ifadələrdir. Belə dillərin tipik nümunəsi məntiqi proqramlaşdırma dilləridir (qaydalar və faktlar sisteminə əsaslanan dillər). Deklarativ dillərin xarakterik xüsusiyyəti onların deklarativ semantikasıdır. Deklarativ semantikanın əsas konsepsiyası ondan ibarətdir ki, hər bir ifadənin mənası həmin ifadənin proqramda necə istifadə olunduğundan asılı deyildir. Deklarativ semantika imperativ dillərə nisbətən daha sadədir, bu, deklarativ dillərin imperativ dillərdən üstünlüyü kimi görünə bilər.

Məntiq dilləri

Məntiq proqramlaşdırma dillərindəki proqramlarda müvafiq hərəkətlər yalnız verilmiş məntiqi qaydalara uyğun olaraq bu faktlardan yeni faktların çıxarılması üçün zəruri icazə şərti olduqda yerinə yetirilir. Məntiqi proqramlaşdırma riyazi məntiqə əsaslanır (bax: “ məntiqi əməliyyatlar. kəmiyyət göstəriciləri”, “Boolean ifadələri”).

İlk məntiq proqramlaşdırma dili Laboratoriyada Carl Hewitt tərəfindən hazırlanmış Planner dili idi süni intellekt 1969-cu ildə Massaçusets Texnologiya İnstitutu. Bu dil variantları sadalamaqla verilənlərdən və verilmiş qaydalardan avtomatik nəticə çıxarmaq (əldə etmək) imkanlarına əsaslanırdı (bütün bunlar plan adlanırdı). Amma çoxu tanınan dil məntiqi proqramlaşdırma 1971-ci ildə Alain Colmerauer tərəfindən Fransada Marsel Universitetində yaradılmış PROLOGdur (Proloq).

Alain Colmero
(Alen Kolmerauer)

PROLOQ proqramı iki komponentdən ibarətdir: faktlar və qaydalar. Faktlar proqramın işlədiyi məlumatlardır və faktlar toplusu mahiyyət etibarilə əlaqəli verilənlər bazası olan PROLOG verilənlər bazasını təşkil edir. Verilənlər üzərində yerinə yetirilən əsas əməliyyat uyğunlaşdırma əməliyyatıdır ki, bu da birləşmə və ya uzlaşma əməliyyatı adlanır. Qaydalar başlıq və alt məqsədlərdən ibarətdir. PROLOQ-da yazılmış proqramın icrası sorğu ilə başlayır və verilmiş faktlar və qaydalar dəsti daxilində bəzi məntiqi müddəanın doğruluğunu sübut etməkdən ibarətdir. Bu sübut üçün alqoritm (alqoritm nəticə çıxarmaq) və PROLOQ-da yazılmış proqramın icrası prinsiplərini müəyyən edir.

Problemi həll etmək üçün kompüterin yerinə yetirməli olduğu addımlar ardıcıllığını təyin edən prosedur dillərində yazılmış proqramlardan fərqli olaraq, PROLOG-da proqramçı faktları, qaydaları, onlar arasındakı əlaqələri və problem üzrə sorğuları təsvir edir. Məsələn, tutaq ki, kimin anası olması ilə bağlı əlimizdə aşağıdakı faktlar var:

ana ("Dasha", "Maşa").

ana ("Natasha", "Dasha").

Bundan əlavə, nənə münasibətini təqdim edən bir qayda var:

nənə(X,Y):-

İndi biz bu və ya digər şəxsin nənəsi və ya hansısa qadının nəvəsi (nəvəsi) kim olduğu barədə sorğular verə bilərik:

nənə("Nataşa", X).

Bu sorğunun cavabı PROLOG sistemi tərəfindən aşağıdakı kimi veriləcək:

PROLOG dilindən istifadə imkanları çox genişdir. Ən məşhurları arasında simvolik riyaziyyat, planlaşdırma, kompüter dəstəkli dizayn, kompilyatorların qurulması, verilənlər bazası, təbii dillərdə mətnlərin işlənməsi üzrə tətbiqlər var. Lakin bəlkə də PROLOG-un ən xarakterik tətbiqi ekspert sistemləridir.

Bu gün məntiqi dillərin bütün sinfi mövcuddur; beləliklə, QA-4, Popler, Conniver və QLISP məntiqi proqramlaşdırma dilləri də Planner dilindən yaranmışdır. Mercury, Visual Prolog, Oz və Fril proqramlaşdırma dilləri Proloqun nəslindəndir.

Funksional dillər

İlk funksional tipli dil 1956-1959-cu illərdə Massaçusets Texnologiya İnstitutunda yaradılmış LISP dilidir. 1956-cı ildə Dartmut Konfransında (ABŞ) ilk dəfə “süni intellekt” terminini təklif edən Con Makkarti.

Con Makkarti

Bu termin və onun çərçivəsində işlənmiş elmi istiqamət ətrafında mübahisələr hələ də səngiməsə də, tədqiqatçılar bu sahə üçün funksional və məntiqi dillərdən istifadədə yekdil fikirdədirlər. LISP-də süni intellektlə bağlı xeyli sayda işlər həyata keçirilib.

Yarandıqdan sonra LISP-ə onun xüsusiyyətlərini əks etdirən bir çox epitetlər verildi: funksiya dili, simvolik dil, siyahıların işlənməsi dili, rekursiv dil. Bugünkü təsnifat nöqteyi-nəzərindən LISP funksional tipli proqramlaşdırma dili kimi müəyyən edilir ki, o da -hesablama metoduna əsaslanır (-hesablama metodu ötən əsrin 30-cu illərində A.Çörk tərəfindən ciddi şəkildə işlənib hazırlanmışdır. hesablana bilən funksiyalar üçün riyazi model, bax. “Alqoritmlər nəzəriyyəsi”).

Funksional dildə yazılmış proqram, digər dəyərlərin funksiyaları kimi verilən funksiyaları və dəyərləri təyin edən nizamsız tənliklər toplusundan ibarətdir. LISP proqramları və verilənləri simvolik ifadələr şəklində mövcuddur və onlar siyahı strukturları kimi saxlanılır. LISP iki növ obyektlə məşğul olur: atomlarsiyahıları. Atomlar ədədi və ya simvolik (anlayışlar, materiallar, insanlar və s.) ola bilən obyektləri müəyyən etmək üçün istifadə olunan simvollardır. Siyahı mötərizədə alınmış sıfır və ya daha çox elementlərin ardıcıllığıdır, hər biri atom və ya siyahıdır. Siyahılarda üç primitiv əməliyyat yerinə yetirilir: siyahının birinci elementinin çıxarılması; birinci elementi çıxardıqdan sonra siyahının qalan hissəsini əldə etmək; L siyahının birinci elementi ilə Q siyahının qalan elementlərinin birliyi.

Yalnız funksional proqramlaşdırma dillərində proqram mətnləri təsvir etmək problemin həlli yolu, lakin həlli üçün hərəkətlər ardıcıllığını təyin etməyin.

Aşağıdakılar adətən funksional proqramlaşdırma dillərinin əsas xüsusiyyətləri hesab olunur: qısalıq və sadəlik; güclü yazı; modulluq; funksiyalar - hesablama obyektləri; təmizlik (yan təsirləri yoxdur); gecikmiş (tənbəl) qiymətləndirmə.

LISP ilə yanaşı, funksional dillərə REFAL (60-cı illərin ortalarında Lomonosov Moskva Dövlət Universitetində V.F. Turchin tərəfindən işlənib hazırlanmışdır), Haskell, Clean, ML, OCaml, F# daxildir.

Məşhur alqoritmin təsvirinə bir misal verək sürətli çeşidləmə Haskelldəki siyahı:

qsort (x:xs) = qsort elts_lt_x ++ [x]

Qsort elts_greq_x harada

elts_lt_x =

elts_greq_x =

Burada boş siyahının artıq çeşidləndiyi deyilir. Boş olmayan siyahını çeşidləmək isə siyahını üçə bölməkdir: ilkin siyahının başından kiçik olan elementlərin siyahısı, orijinal siyahının başlığından ([x]) və siyahının quyruğunun elementlərinin siyahısı. orijinal siyahı x-dən böyük və ya ona bərabərdir.

Obyekt yönümlü dillər

Obyekt yönümlü dillər adi proqramlaşdırma sistemlərində istifadə olunan prosedur və məlumat anlayışlarının “obyekt” anlayışı ilə əvəz olunduğu dillərdir (“məqaləsinə bax” Obyekt yönümlü proqramlaşdırma”). SmallTalk təmiz formada obyekt yönümlü proqramlaşdırma dili hesab olunur, obyekt yönümlü proqramlaşdırmanın imkanları Java, C++, Delphi dillərində də müəyyən edilmişdir.

Müasir proqramlaşdırmanın gələcək inkişafı sözdə “paralel proqramlaşdırma” ilə bağlıdır. Bu texnologiyanı həyata keçirmək üçün xüsusi obyekt yönümlü dillər hazırlanır. Bu dil növü, məsələn, MC# ( mcsharp) asinxron zənglərlə paylanmış mühitdə işləyən proqramların yaradılmasını dəstəkləyən .NET platforması üçün yüksək səviyyəli obyekt yönümlü proqramlaşdırma dilidir.

Proqramlaşdırma dilinin strukturu

Dillərin qurulması konsepsiyasında mövcud proqramlaşdırma dilləri arasında fundamental fərqlər var, bu xüsusilə əvvəlki dillər üçün doğrudur, lakin bütün bu dillər proqramlaşdırma dilləri adlanır, çünki nöqteyi-nəzərdən eyni formal quruluşa malikdirlər. daxili bina sisteminin.

İstənilən proqramlaşdırma dili cümlələrdən (operatorlardan) ibarətdir. Cümlələr (sözlər kimi) bəzi C əlifbası üzərində müəyyən edilir. Dilin sintaksisi xarici olaraq yaxşı qurulmuş proqramları təmsil edən C əlifbası üzərində cümlələr toplusunu təsvir edir.

Sintaksis dilin söz və cümlələrini əldə etmək qaydalarıdır. Sintaksis müəyyən qrammatik qaydalardan istifadə etməklə sxematik şəkildə təsvir edilir.

Formal dil bilikləri (əlifba + sintaksis), qurmaq üçün kifayətdir sintaktik düzgünlük proqram, lakin onun məqsədini və fəaliyyət tərzini başa düşmək üçün kifayət deyil. Proqramlaşdırma dilində proqramın mənası və iş rejimi semantikanın dəqiqləşdirilməsi ilə müəyyən edilir.

Dilin semantikası formal dilin sözlərini şərh etmək qaydalarıdır, yəni. ayrı-ayrı dil elementlərinin mənasının qurulması.

Formal dilləri, o cümlədən proqramlaşdırma dillərini müəyyən etmək üçün BNF (Backus-Naur formaları) və sintaksis diaqramlarından istifadə olunur. Bunlar bir-birini əvəz edən iki təsvir üsuludur.

Proqramlaşdırma dilini BNF baxımından təsvir edərkən aşağıdakı qeydlərdən istifadə olunur:

1) <..>- müəyyən edilmiş söz;

2) R - söz yaratmaq üçün sintaksisdən qayda;

3) ::= - BNF qaydası.

Hər biri R ehtiva edir terminal sözlər və ya nişanlar dil və ehtimal ki, aşağıdakı simvollar:

· [..] - bu element BNF-də mövcuddur;

· (..) - bu hadisə BNF-də istifadə edilə bilər;

· (..)* - bu hadisə BNF-də sonlu sayda istifadə edilə bilər.

Misal 1 Tam ədədi təyin edən BNF qaydasına misal verək.

Bu qayda belə oxunur: “Tam ədəd 0 simvolu və ya “–” simvolu ilə başlaya bilən simvollar ardıcıllığıdır, ardınca sıfırdan fərqli rəqəm, ardınca isə istənilən sonlu rəqəmlər ardıcıllığı gəlir.”

BNF-ə bənzər xüsusi, formal dillərin təsvir forması sintaktik diaqramlardır. Sintaksis diaqramlarında üç növ elementdən istifadə olunur: oval/dairə, düzbucaqlı, oxlar. Terminal sözlər və ya leksemlər ovallarda, təyin olunan sözlər düzbucaqlılarda yerləşdirilir. Sintaksis diaqramları vasitəsilə dilin qrafik təsviri dilin təsvirini əyani edir.

Misal 2. Sintaksis diaqramından istifadə edərək tam ədədin təsviri.

Nümunəvi Proqrama əsasən, tələbələrin proqramlaşdırma dillərinin müasir təsnifatını təqdim etmələri, həmçinin onların hər birinin tətbiqi sahələrinə istiqamətlənmələri zəruridir. Bu mövzunu təqdim etməyin ən asan yolu proqramlaşdırma dillərindən biri ilə ətraflı tanışlıqdan sonradır.

Yeni dillərin niyə yarandığını və köhnə dillərin təkmilləşdirildiyini izah etmək lazımdır: ilk növbədə, bu, səhvləri olmayan mürəkkəb proqramları tez yazmaq üçün bir vasitə axtararkən baş verir. Məsələn, 1974-cü ildə ABŞ Müdafiə Nazirliyində ADA dilinin yaradılmasına (ilk qadın proqramçı, Bayronun qızı Ada Lavleysin adı verilmişdir) başlanıldığı zaman məlumdur. ABŞ ordusu anladı ki, quraşdırılmış kompüter sistemlərinin (məsələn, raketin idarə olunması sistemləri) hazırlanması və saxlanması üçün çox vaxt, səy və pul sərf edirlər və proqramlaşdırma dillərindəki incə səhvlər real fəlakətlərə səbəb olur.

Deklarativ dillər ötən əsrin 80-ci illərinin sonu və 90-cı illərinin əvvəllərində çox populyar idi, beşinci nəsil kompüterlər üçün süni intellekt proqramlaşdırma dilləri adlanırdı. Lakin onların geniş yayılmasına olan ümidlər hələ də özünü doğrultmayıb. Bəlkə də ona görə ki, funksional və məntiqi proqramlaşdırmanın mövcud sistemləri mənalı tapşırıqlar üçün sürətli proqramlar yaratmağa imkan vermir. Mümkündür ki, onların vaxtı sadəcə olaraq hələ gəlməyib.

“Alqoritmləşdirmə və proqramlaşdırma” mövzusunun tədrisi strategiyasını seçərkən nəzərə almaq lazımdır ki, ümumi təhsil kursunun vəzifəsi böyük ölçüdə müəyyən düşüncə tərzinin inkişafı, ən ümumi bacarıqların formalaşdırılması, müəyyən qabiliyyət və ideyaların inkişafından çox xüsusi dillər və texniki proqramlaşdırma vasitələri. Eyni zamanda, belə bir kurs sonrakılar üçün əsas olmalıdır peşəkar təhsil proqramlaşdırmada Ali məktəb və ya orta məktəb Ali məktəb(peşə təhsilinin bir hissəsi kimi).

Hal-hazırda proqramlaşdırmanın öyrədilməsi üçün ən çox yayılmış iki yanaşma mövcuddur:

1) əsas proqramlaşdırma bacarıqlarının öyrədilməsinə yönəlmiş təhsil dilinin xüsusi hazırlanmış dili əsasında tədris;

2) elmi və iqtisadi problemlərin həllində praktikada geniş istifadə olunan bir və ya bir neçə proqramlaşdırma dilinin öyrənilməsi (belə dilləri standart adlandırmaq olar).

Birinci yanaşma tez-tez proqramlaşdırmanın əsaslarını tədris edərkən istifadə olunur aşağı siniflər Rapier, E-language, LOGO kimi xüsusi dillərdən istifadə edən orta məktəb. Bu dillər ibtidai sinif şagirdlərinin imkanlarını nəzərə alır. Bu yanaşma 5-6-cı siniflərdə informatika fənninin dərindən öyrənilməsi üçün əlverişlidir.

İkinci yanaşmaya gəldikdə, deyə bilərik ki, standart dillərin müasir tətbiqlərinin əksəriyyəti çoxlu texniki detallarla yüklənir və öyrənmək çətindir. Ancaq ən uyğun orta məktəb 8-11-ci siniflərdə informatika kursunun tədris olunduğu , standart dil əsasında proqramlaşdırmanın nəzəri əsaslarını öyrədir. Belə olan halda dilin dərinliklərinə getmək lazım deyil. Bununla maraqlanan tələbələr özləri edə bilərlər. Alqoritmik strukturlardan onların proqramlaşdırma dilində proqram təminatının həyata keçirilməsinə keçidə ən çox diqqət yetirilməlidir.

Burada qeyd etmək yerinə düşərdi ki, Paskal əvvəlcə tədris dili kimi yaradılıb, lakin zaman keçdikcə standart dil kimi geniş yayılıb və Delphi-nin vizual proqramlaşdırma texnologiyası ilə obyekt yönümlü dil kimi inkişaf edib. Paskal və ya Basic 8-9-cu siniflərdə kursun əsası kimi götürülə bilər və 10-11-ci siniflərdə genişləndirilmiş (isteğe bağlı) kurs kimi şagirdləri obyekt yönümlü genişləndirmələrlə (Delphi və Visual Basic) tanış etmək olar. Hər bir dilin öz tərəfdarları və rəqibləri var və son seçim müəllimin ixtiyarındadır.

Proqramlaşdırma dilini öyrənmək üçün iki əsas yanaşma var: formal və “Nümunə Proqramlaşdırma”. Birincisi, proqramlaşdırma dili konstruksiyalarının rəsmi (sərt) təsvirinə əsaslanır ( sintaksis dil və onun semantika) bu və ya digər şəkildə (sintaktik diaqramların, metadil və ya formal şifahi təsvirin, xüsusən də semantikanın köməyi ilə) və problemləri həll edərkən dilin yalnız öyrənilmiş və buna görə də başa düşülən elementlərindən istifadə etməklə. İkinci yanaşmada tələbələrə əvvəlcə hazır proqramlar verilir, onlara konkret olaraq nə işlə məşğul olduqları bildirilir və onlardan bir sıra “texniki” və ya əhəmiyyətsiz olanları tam izah etmədən oxşar proqram yazmaq və ya mövcud olanı dəyişdirmək tapşırılır. müəllimin nöqteyi-nəzərindən problemin həlli üçün təfərrüatlar. Eyni zamanda, uyğun konstruksiyaların dəqiq mənasını sonradan öyrənəcəyiniz deyilir, amma hələlik, eyni şeyi edin. İkinci yanaşma sözdə “sürətli başlanğıc”a imkan verir, lakin proqramlaşdırma mühitinin yarı savadlı istifadəçiləri əldə etmək təhlükəsi yaradır, yəni. öz praktikasında kifayət qədər mürəkkəb strukturlardan istifadə edən, lakin bu və ya digər halda onlardan nə üçün istifadə etmək lazım olduğunu və necə işlədiyini aydın izah edə bilməyən insanlar. Nəticədə, gec-tez belə "proqramçılar" sadəcə düzəldə bilmədikləri səhvlərlə qarşılaşırlar - bilikləri yoxdur.

Məktəb informatikasının vəzifələrindən biri də müxtəlif tərifləri tətbiq edərkən formal yanaşmanı dəqiq öyrətməkdir. Proqramlaşdırma dilinin formal öyrənilməsi buna çox kömək edir. Ancaq məktəblilərə proqramlaşdırma öyrədərkən yaxşı nümunələr (nümunələr) olmadan belə edə bilməz. Şagirdlər nə qədər gəncdirsə, dili təsvir edərkən bir o qədər çox nümunə verilməlidir (hətta bəzən ciddi tərifi onlarla əvəz etməklə). Başqa bir şey, nümunənin müzakirəsi nəticəsində onun bütün təfərrüatlarının məktəblilər üçün aydın olmasını təmin etmək lazımdır (onun necə və nə üçün işlədiyini izah etmək lazımdır, o cümlədən artıq öyrənilmiş rəsmi materiala əsaslanaraq). Bu halda, güclü tələbələr hər şeyi hərtərəfli başa düşmək imkanı əldə edəcək və əldə etdikləri biliklərdən gələcəkdə istifadə edə biləcəklər, qalanları isə xüsusi bacarıqlara yiyələnəcək və lazım gəldikdə sonradan formal təriflərə qayıtmaq imkanını buraxacaqlar.

Təbii proqramlaşdırma dilləri(ESL) -dən fərqli olaraq proqramlaşdırma dillərinin inkişafında növbəti addımı müəyyən edir sorğu dilləri istənilən səviyyəli istifadəçinin hər hansı xüsusi lüğətləri, qrammatikanı və sintaksisi mənimsəmək ehtiyacından azad olması - təkliflər ELP adi insan nitqinin cümlələrinə çox oxşardır. ELP istifadəçini CS və onun açıq mənbə proqramından daha da uzaqlaşdırır, interfeysin intellektual səviyyəsini əhəmiyyətli dərəcədə artırır. birinci ilə hesablama resursları. Hal-hazırda fərdi kompüterlər məhdud imkanlarla ELP-dən uğurla istifadə edirlər, məsələn Clout, Q&A, Savvy Retriever, HAL və başqaları.ELP-nin əsas inkişafları AI-nin vəzifələri və SUBS-də interfeysin intellektuallaşdırılması ilə bağlıdır. Bu istiqamətdə birbaşa tətbiq əhəmiyyəti (xüsusilə fərdi kompüterlərin kütləvi istifadəsi ilə əlaqədar) kompüterlərlə müxtəlif növ SNP-interfeysləri aldı. Bu tip ELP-dən qeyd etmək olar tənzimlənən dillər müxtəlif növ proqram təminatından istifadə zamanı kompüterlə interfeysin intellektuallaşdırılmasında böyük rol oynayan (menyular, anketlər, təlimatlar və s.); müxtəlif sistemlərdə mühüm rol oynayırlar müsahibə,təlim, ekspert və s., lakin onların istifadəsi müəyyən məhdudiyyətlərlə ciddi şəkildə tənzimlənir və sistemlərin ötürülməsi halında. tənzimlənir Digər kompüter növləri üçün ELP tez-tez əhəmiyyətli dəyişikliklər tələb edir. Buna görə də, istifadəçi ilə kompüter arasında daha çevik və təbii ünsiyyət üçün bu, daha adekvatdır təbii dil.

İstifadə problemi təbii ilə interfeysi təşkil etmək üçün dil intellektual Maraqlı illüstrativ nümunələrlə məzmun səviyyəsində VS xüsusi ədəbiyyatda yaxşı təsvir edilmişdir. Bununla belə, bu məsələ ilə bağlı bir mühüm qeyd də edilməlidir. Çox vaxt bunu təbii qəbul edirlər təbii dil kompüterlə istifadəçi interfeysini təşkil etməyin ən yaxşı yoludur. Bu fərziyyə hətta 5-ci nəsil kompüter layihəsi üçün əsas götürülür. Lakin, bizə elə də görünmür aşkar.

Bir sıra hallarda təbii dil daha az ifadəlidir qrafika, diqqətlə hazırlanmışdır formal domen dili daha ifadəlidir təbii dil (həmçinin kifayət qədər azdırçatışmazlıqlar). Üstəlik, bir çox fənn sahələrinin (riyaziyyat, fizika, kimya, biologiya və s.) öz xüsusiyyətləri var. Dilçilikjarqon, bəzi hallarda adi təbii dildən əhəmiyyətli dərəcədə fərqlənir. Buna görə də inkişaf etmişdir dil interfeysi ola bilər simbioz təbiiformal dillər və ya olmaq iyerarxiya dillər: təbii dil - formal (strukturlaşdırılmış) kompüter dili. Hər halda, bu problem hələ də tam həllindən çox uzaqdır.

34 nömrəli mühazirə tətbiqi proqram təminatı

Mühazirə planı.

1. Tətbiqi kompüter proqram təminatı.

2. Tətbiq paketlərinin sinifləri.

3. Əsas tətbiq vasitələri.

4. Proqram təminatının keyfiyyət xüsusiyyətləri.

34.1. Tətbiqi kompüter proqramı

Əvvəlki bölmədə, ən ümumi səviyyədə, müxtəlif növ, məqsəd və təşkilatların PSP-lərə əsaslanan PES-in strukturu müzakirə edilmişdir. PC-nin insan fəaliyyətinə intensiv müdaxilə və istifadənin kütləvi xarakteri ilə əlaqədar olaraq, kompüter proqram təminatında PPP-nin payı sürətlə artır. Qeyri-peşəkar istifadəçi üçün kompüter hesablama resurslarına malik yüksək səviyyəli interfeysi təmin edən bu komponentin əhəmiyyətini nəzərə alaraq, biz onu daha ətraflı nəzərdən keçirəcəyik. üç səviyyə:

(1) PPP-nin təşkili prinsipi;

(2) istifadəçinin təlim tələbləri;

(3) əsas müasir PPP qrupları.

Biri xarakterik xüsusiyyətlər müasir RFP prinsipindən istifadə etməkdir sintez mənalı əsaslanan alt proqramlardan iş proqramları təsvirlər istifadəçinin problem sahəsinin anlayış və terminlərinə yaxın problem yönümlü dildə tapşırıqlar. Bu yanaşma ilə, istifadəçi xüsusi vasitəsilə paketin formalaşdırılması dili(JFP) məlumatlandırıcı təsvir edir fərdi tapşırıq və ya tapşırıqlar sinfi (qərar tələb olunur), formalaşdıran nəsil proqramı alətlər qutusundan xüsusi RFP sabit və ya genişləndirilə bilən proqram mühitlər(düyü. ZZA). Bu proqrama əsaslanaraq, özünəməxsus bir tətbiq üçün RFP yaradılır giriş dili(VY) istifadəçi ilə ünsiyyət. PPP yaratdıqdan sonra istifadəçi problemlərinin həlli prosesində onunla işləyir. Bir qayda olaraq, təsvir olunan təşkilat prinsipi üçün istifadə olunur problem yönümlü PPP, həll etdikləri tapşırıqların diapazonu aydın şəkildə müəyyən edildikdə və vəzifələr bəzi ümumi xüsusiyyətlərlə əlaqələndirildikdə, məsələn, ədədi üsullar, statistik təhlil, müəyyən bir mövzu sahəsində modelləşdirmə və s. Belə bir təşkilatın PPP diapazonu çox genişdir - dən kitabxana müəyyən bir istiqamətdə alt proqramların təşkili (məsələn, statistik təhlil). çətin istiqamətləndirilməli olan mövzu sahəsinin rəsmi təsviri üçün xüsusi JFP tələb edən proqram mühiti (Şəkil 33a) (yaradılmış) PPP. Müəyyən bir paket yaratarkən, onlar özlərinə məxsus bir vasitə kimi istifadə olunur proqram təminatı mühiti və yenidən proqramlaşdırıla bilər.

PPP-nin yaradılması xüsusi vasitələrin istifadəsini tələb edən kifayət qədər uzun və zəhmətli bir prosesdir. Lakin, ümumi halda, belə sistemlər çox mürəkkəb olur və onların yaratdığı paketlər tələb olunan səmərəlilikdən kifayət qədər uzaqdır. Ona görə də bu çatışmazlıqları aradan qaldırmağın yollarından biri də yaratmaqdır ixtisaslaşmış instrumental sistemlərə diqqət yetirilmişdir ailələr problem yönümlü IFR ilə homojen giriş dilləri və eyni fəaliyyət prinsipləri. Bu tip yerli fondlardan onu qeyd etmək olar meta sistemi SATURNPAKET. Bəli, in PAKET digər oxşar sistemlər kimi, yuxarıdakı iki mərhələ fərqlənir: təsviri xüsusi NFP-də (alt sistem Konstruktor)nəsil Giriş dili ilə PPP (alt sistem ön prosessor); eyni zamanda əsas mərhələlərdə proqramlaşdırmanın istehsal qabiliyyəti təmin edilir nəsil paket: (1) paket tərəfindən həll edilən tapşırıqlar sinfinin təsviri və onların həlli üsulları; (2) PPP daxiletmə dilinin yaradılması; (3) tələb olunan proqram modullarının proqramlaşdırılması və sazlanması.

Bu texnologiya ilə müəyyən bir PPP-nin inkişafı baxımından həll ediləcək problemlərin təsviri ilə başlayır mövzu sahələr, yəni. arzu olunan obyektin funksional xassələrinin proqramlaşdırılması həyata keçirilir - xüsusi vasitəsi ilə PPP metadil, daxil olmaqla giriş istifadəçinin sonradan sözügedən paketlə əlaqə saxlamalı olacağı dil. Tərcümə edilmiş JFP proqramının yerinə yetirilməsinin nəticəsi verilən ilə arzu olunan PPP-dir giriş dil. Beləliklə, bu texnologiya ümumiyyətlə iki səviyyəli istifadəçinin olmasını nəzərdə tutur - sistemli, müəyyən bir mövzu sahəsi ilə PPP yaratmaq və problemli, vasitəsilə yaradılmış PPP-dən istifadə etməklə giriş mövzu sahəsinə və ya anlayışlarına yaxın dil təbii dil. Təbii ki, kifayət qədər sadə proqram mühiti vəziyyətində, həll edilməli olan dar yönümlü problemlər sinfi və sadə JFP funksiyası sistemliproblemli istifadəçi eyni şəxsi birləşdirə bilər.

Hal-hazırda kompüter təcrübəsi(CE) əsas elmi, mühəndislik, texniki və tədqiqatlar üçün əsas tədqiqat vasitələrindən birinə çevrilir ictimai problemlər: astronavtika, nüvə fizikası və enerjisi, proqnozlaşdırma və s., mürəkkəblik bu, bir tərəfdən onları kifayət qədər ciddi şəkildə öyrənməyə imkan vermir analitik olaraq, digər tərəfdən isə çox bahalı eksperimental üsullarla araşdırmaq. FE metodu problemli istifadəçilər tərəfindən işin eksperimental xarakterinə görə müxtəlif növ dəyişikliklərə məruz qalan müxtəlif proqram təminatı dəstlərinin istifadəsini nəzərdə tutur. PPP təşkilatının nəzərdən keçirilən prinsipi olduqca çevikdir uyğunlaşma qabiliyyəti paketin orijinal proqram mühitinin dəyişdirilməsi və genişləndirilməsi tapşırıqlarına yaxşı cavab verərək, bu iş növünü avtomatlaşdırmaq. Xüsusilə kütləvi istifadəçi tərəfindən PC-də idarə olunan paketlə interfeysin intellektual səviyyəsini artırmaq üçün onun proqram təminatı mühüm rol oynayır. qrafik komponenti, bu da işlənib hazırlanmışdır metasistemlər dizaynnəsil PPP. Bundan əlavə, artırmaq üçün məntiqi artıq mövcud olan populyar API-lərin interfeys təbəqəsi yaradılmışdır qrafik metasistemlər, əhəmiyyətli dərəcədə genişlənir GUI paketləri, onu dostluq edir.

Mövzu sahəsinə çevikliyini və uyğunlaşmasını təmin edən və istifadəçinin peşəkar səviyyəsi üçün bir sıra tələblər irəli sürən PPP-nin nəzərdən keçirilən təşkilatından fərqli olaraq, bir qayda olaraq, kütləvi istifadəçi üçün, sərt onun paketi dəyişdirməsinə mane olan bir təşkilat. Belə bir təşkilatın iki əsas göstəricisi var: (1) yüksək məntiqi səviyyə paket daxiletmə dili(VYP), istifadəçi və mövzu sahəsinə diqqət yetirir və daxili öz mühitində paketin genişləndirilməsi funksiyalarını təmin edən modullar yaratmağa, həmçinin paketin xüsusi tətbiqləri üçün sənədlər yaratmağa imkan verən paket dili; (2) paketlə interfeys yalnız domen üçün xüsusi VLP səviyyəsində təmin edilir. AT hər iki halda paket üçün WLL yaratmaq təcrübəsi iki əsas yanaşmadan istifadə edir: (1) artıq mövcud olan HLL əsasında bir dil yaratmaq (bir qayda olaraq, və icra dili paket) və (2) inkişaf orijinal giriş dili. At birinci yanaşma həyata keçirilməsini xeyli asanlaşdırır giriş dil, qeyri-peşəkar istifadəçi üçün isə paketi mənimsəməkdə əlavə çətinliklər yaranır. İkinci yanaşma bəzi hallarda əhəmiyyətli dərəcədə yüksək inkişaf xərcləri tələb edir. giriş dil isə onu öyrənmək və istifadəni asanlaşdırmağa imkan verir (menyu dili, təbii peşəkar dilin elementləri, sorğu dili, dialoq qrafikası dili və s.).

Harada spektr VLP-nin istifadəçi istiqaməti çox genişdir - təcrübəsiz istifadəçidən müəyyən bir mövzu sahəsində peşəkara qədər. Misal üçün, oyun paketlər yüksək konsepsiyaya malikdir qrafik interfeys və xüsusi inkişaf tələb etmir; paketlər mətn redaktorları həm də inkişaf etmiş bir dil var menyu sistemləri, kifayət qədər yüksək konseptual səviyyə (məsələn, paket MS Word); domenə aid paketlər (məsələn, MathCAD, azaldın. Riyaziyyat təmin olunub giriş riyazi dillə tanış olan istifadəçiyə yönəlmiş dil. Nəhayət, daxili paketin dili əsasən paket tərəfindən birbaşa dəstəklənməyən proqramlaşdırma funksiyalarına və ya proqramlaşdırmaya yönəldilmişdir sənədlər xüsusi tətbiqlər üçün. Tez-tez kimi daxili istifadə olunan dil həyata keçirilməsi paket və ya onun modifikasiyası (məsələn, paketlər azaltmaq. Riyaziyyat və s.); lakin bəzi hallarda daxili dil yönümlüdür mövzu sahəsi paketi var giriş sadə və dost menyu sisteminə əsaslanan dil və daxili C-yə bənzər SALT dili , paket mühitində SLT-sənədlərini (proqramlar, paketin xüsusi tətbiqləri üçün modullar) asanlıqla və tez yaratmağa və icra etməyə imkan verir). Mürəkkəblik PPP-nin daxili dilləri fərqlidir, onları mənimsəmək üçün müəyyən proqramlaşdırma bacarığı tələb olunur; lakin onlar paket mühitində yerinə yetirildikdə imkan verən zəngin sənəd kitabxanalarının yaradılmasına imkan verir əhəmiyyətli dərəcədə genişlənir onun funksiyaları və tətbiq dairəsi.

Nəhayət, mövzu yönümlü VLP ilə birlikdə sərt bir təşkilat nisbətən kiçik paketlərə və ya xüsusi oriyentasiyalı paketlərə, lakin kütləvi tətbiqə yönəldilmişdir. Bir qayda olaraq, kimi dillər menyu, dialoq qrafikası, sorğu və digərləri, qeyri-peşəkar istifadəçiyə yönəldilib. Belə bir nümunə təşkilatlar sadə mətn redaktor paketləri, xüsusi paketlər və s. xidmət edə bilər. Eyni zamanda, onların daha çox inkişaf etmişləri səviyyədə tərtib etməyə imkan verən makro alətlərə malikdir makrolar ən çox istifadə olunur ardıcıllıqlar paket əməliyyatları (məs. ChiWriter, Xanım Söz, Söz Mükəmməl qarşı. və s.).

Təşkilatlarına görə, paketlər müxtəlif səviyyələrə və növlərə imkan verir uzantılar co istifadəçi tərəfi: ehtimaldan tam paketi genişləndirmək üçün hər hansı bir imkan olmadıqda, xüsusi istifadə şərtləri üçün paket yaratmaq (proqram mühitinin genişləndirilməsi imkanları nəzərə alınmaqla). Lakin əksər hallarda müasir PPP imkan verir uzantılar, bunlardan ən çox problemli istifadəçi üçün təbii yaratmaq yoludur kitabxanalar(sənədlər, proqramlar, modullar, makrolar) üzərində daxili paket dili, həlledici tapşırıqlar bəzi mövzu sahəsində və paketin özünün mühitində icra olunur. Bir sıra paketlər imkan verir uzadılması hər ikisini yaratmaqla onun imkanları xarici(paketin əsas modullarına nisbətən) və yerləşdirilmiş funksiyaları. Bununla belə, məqsədlər üçün uyğunluq paketləri, ən uyğunu səbəbiylə paketi genişləndirməkdir xarici istifadəçiyə dəyişiklik etməyə imkan verməyən funksiyalar və alətlər (müəyyən qeyd-şərtlərlə) əsas tərtibatçı tərəfindən təmin edilən və saxlanılan paketin bir hissəsidir.

Müasir TPN-lərin əksəriyyəti istifadə etməzdən əvvəl əməliyyat tələb edir qurğular, paketin xüsusi şərtlərə uyğunlaşdırılmasından ibarətdir istismar (avadanlığın konfiqurasiyası, problemin həlli rejimi və s.). Bir qayda olaraq, quraşdırma bir dəfə həyata keçirilir və ya həyata keçirilir daxili paket deməkdir (Xanım Word, Quattro və s.) və ya vasitəsilə xüsusi kommunal xidmətlər (Sprint, Riyaziyyat və s.). Sadə paketlər üçün başlatma, bir qayda olaraq, əməliyyat sistemi vasitəsi ilə hər dəfə yükləndikdə avtomatik yerinə yetirilir (Çərçivə, AutoSketch və s.).

Sənədlər, paketlə birlikdə verilir, xüsusi istifadə şərtləri üçün onun quraşdırılması üçün tövsiyələr daxil edilməlidir. nəzərə alaraq üç PPP-nin təşkilinin əsas prinsiplərini qısaca müzakirə edəcəyik funksional doldurma paketləri, hansı fayl səviyyəsi inümumi halda aşağıdakı kimi təmsil oluna bilər: (1) modullar paketin əsas funksiyalarını təmin etmək; (2) konfiqurasiya faylları; (3) ümumi təyinatlı kommunal xidmətlər və paketin genişləndirilməsi funksiyaları; (4) ixtisaslaşmış məlumat bazası; (5) paket mühitində onların icrası üçün sənədlər kitabxanası; (6) paketdə kömək, lisenziya məlumatı, habelə sənədləri ehtiva edən fayllar. Bir qayda olaraq, bütün müasir PPP-də qeyd olunur strukturlaşdırılması onlar fayl sistemləri.

Bir sıra görkəmli paketlər (Ekspert Seçim, Riyaziyyat, MathCAD, Xanım excel və s.) həm də əsas paketə nisbətən funksional olaraq məhdud olan, lakin paketi hərəkətdə təsvir etməyə, habelə onun mühitində işləməyin əsaslarını öyrətməyə imkan verən illüstrativ və/və ya təlim versiyaları səviyyəsində təqdim olunur. bir sıra hallarda, sonrakı kommersiya məqsədləri üçün bu vəsaitdən daha məlumatlı seçim etməyə imkan verir.

Əsas anlayışlar

Alqoritm - bu, aşağıdakı xüsusiyyətlərə malik olan ilkin məlumatların istənilən nəticəyə k çevrilməsi prosesini təyin edən reseptdir (sifariş və ya sifarişlər sistemi):

  • əminlik, yəni rəhbər işçilər üçün dəqiqlik və başa düşülənlik; bu xassəsinə görə alqoritmin icrası prosesi mexaniki xarakter daşıyır;
  • effektivlik, yəni məhdud sayda kifayət qədər sadə addımlardan sonra istənilən nəticəyə gətirmək bacarığı;
  • kütləvi xarakter, yəni müəyyən bir problem sinfindən hər hansı bir problemi həll etmək üçün uyğunluq.

Alqoritmin tərifindən görünür ki, onun həyata keçirilməsi prosesi ayrı-ayrı addımlardan, alqoritmik aktlardan ibarət diskret olmalıdır. Bu addımların sadəliyi tələbi ondan ibarətdir ki, addımların qeyri-məhdud mürəkkəbliyini fərz etsək, alqoritm anlayışını hər hansı müəyyənlikdən məhrum edəcəyik. Alqoritmin sonlu sayda addımda həllə gətirib çıxarma xassəsinə potensial fizibilite deyilir.

Təbii dillər onlarda müəyyən və dəqiq reseptlər tərtib etmək üçün az istifadə olunur. Buna görə də alqoritm rəsmi dildə resept olmalıdır.

Hər bir kompüter əsasən müəyyən sinfin məsələlərini həll etmək üçün nəzərdə tutulmuşdur. Bununla əlaqədar olaraq, kompüterdən elementar kimi qəbul edilən müəyyən əməliyyatlar toplusunun tələb olunan birləşmələrində yerinə yetirmək qabiliyyətini təmin etməsi tələb olunur.

Elementar maşın əməliyyatları hər hansı digər saxlama qurğusundan təsadüfi giriş yaddaşının xanasına məlumatın daxil edilməsi, xanadan məlumatın verilməsi, həmçinin aşağıdakı əməliyyatlardır ki: texniki vasitələrdə həyata keçirilir; elementar maşın əməliyyatlarının nəticəsi olan və bir və ya bir neçə xanada sabitlənmiş ilkin məlumatlara malikdir; bir ayrıca xanada sabitlənmiş və mövcud olan, lakin maşının hər hansı elementar əməliyyatının ilkin məlumatları kimi istifadəsi məcburi olmayan nəticə verir; əvvəlki üç şərti təmin edən daha sadə maşın əməliyyatları kompleksi kimi qəbul edilə bilməz.

Əməliyyat sistemi kompüterdə təmin edilən bütün maşın əməliyyatlarının məcmusudur.

Komanda müəyyən bir qrup əməliyyatların yerinə yetirilməsini təmin edən elementar reseptdir.

Əsas Əməliyyatlar Kompüterlər arifmetik, məntiqi, köçürmələr, keçidlərdir, maşın bir əmri yerinə yetirməkdən digərini yerinə yetirməyə keçid etdikdə, RAM-dan əmrlər alır və maşını dayandırır (“dayandır”). Hərfi informasiya üzərində əsas əməliyyatlar bunlardır: sözün uzunluğunun müəyyən edilməsi; sözün operativ yaddaşın bir yerindən digərinə köçürülməsi; verilmiş sözün müəyyən hissəsini vurğulamaq; sözlər arasında boşluqların daxil edilməsi; sözlər sətirinin daha kiçik sətirlərə bölünməsi; iki sözün müqayisəsi. Adətən bu əməliyyatlar redaktə adlanır.

Proqramlaşdırma

Kompüterlər adətən ya fərdi məsələlərin (müəyyən bir sinfə aid olan) həlli üçün, ya da müxtəlif siniflərin bir-biri ilə əlaqəli məsələləri kompleksinin həlli üçün istifadə olunur.

Kompüterdə müəyyən bir vəzifəni (tapşırıqlar sinfini) həll edərkən iş aşağıdakı mərhələlərə bölünür:

    problemin riyazi formalaşdırılması;

    onun həlli üçün metodologiyanın işlənib hazırlanması;

    onun həlli üçün alqoritmin hazırlanması və hansısa proqramlaşdırma dilində yazılması;

    proqramlaşdırma;

    proqramın maşında sazlanması;

    ilkin məlumatların hazırlanması, məsələnin kompüterdə həlli.

Təsvir edilən əsərlər kompleksi adlanır problem proqramlaşdırma.

Bir-biri ilə əlaqəli vəzifələrin kompleksini həll etmək üçün proqramlar sistemini hazırlayarkən, hər bir proqramın hazırlanması zamanı təsvir olunan iş ardıcıllığı qorunur. Bundan əlavə, sistemin birliyini təmin etmək zərurəti ilə bağlı bir sıra əlavə iş mərhələləri var. Bir-biri ilə əlaqəli vəzifələrin həlli üçün proqramlar sistemi yaratmaq üçün işlər toplusu adlanır sistem proqramlaşdırması.

Problemin riyazi formalaşdırılması. Bu iş məsələnin həlli üçün ilkin məlumatların tərkibini və xarakterini müəyyən etməkdən, ilkin nəticələri müəyyən etməkdən, riyazi qeydlərdən istifadə etməklə məsələnin şərtlərini yazmaqdan ibarətdir. Məsələnin riyazi formalaşdırılmasında istifadə olunan riyazi aparat məsələnin hansı sinfə aid olmasından asılıdır.

Problemin həlli texnikasının inkişafı. Bütün arzu olunan nəticələrin ilkin nəticələrdən asılılığı müəyyən edildikdə və kompüterdə həyata keçirilə bilən istənilən nəticələrin alınması üsulları göstərildikdə həll texnikası işlənmiş hesab olunur. Əgər seçilmiş metodların uyğunsuzluğu məsələnin kompüterdə həlli prosesində aşkar edilərsə, metodun işlənib hazırlanması mərhələsinə qayıtmaq lazımdır.

Problemin həlli üçün alqoritmin işlənməsi. Problemin həlli metodologiyası əsasında problemin həlli üçün alqoritm hazırlanır. Alqoritm riyazi təsvirlər dilində hazırlanır və sonra proqramlaşdırma dilləri adlanan dillərdən alqoritmik dildə yazılır. Məsələnin həlli üçün alqoritmin hazırlanması kompüterin xüsusiyyətləri nəzərə alınmaqla aparılmalıdır.

Problemi həll etmək üçün kompüterdən istifadə edərkən aşağıdakı xüsusiyyətləri nəzərə almaq lazımdır:

  • rəqəmsal şəkillərdə böyük, lakin məhdud sayda rəqəmlər;
  • RAM-da saxlanılan nömrələr üzərində əməliyyatların daha yüksək sürəti;
  • ilkin məlumatların daxil edilməsinin və nəticələrin çıxarılmasının nisbətən aşağı sürəti;
  • RAM və xarici yaddaş qurğuları arasında nömrə mübadiləsinin nisbətən aşağı sürəti;
  • xarici yaddaş qurğularının çox böyük tutumu ilə nisbətən kiçik RAM tutumu;
  • maşının təsadüfi nasazlıqları ehtimalı və nəticədə onun işinə nəzarət etmək ehtiyacı.

Proqramlaşdırma. Proqramlaşdırmadır in hazırlanmış alqoritmin proqramlaşdırma dilində (məsələn, ASSEMBLY dilində və ya ALGOL, FORTRAN, COBOL, PL / I adlanan dildə) qeydi əl ilə həyata keçirilir və sonradan maşın alqoritmik dilinə tərcümə edilir.

yayım proqramlaşdırma dilində verilmiş alqoritmin maşın dilindəki alqoritmə ekvivalent çevrilməsi prosesidir. Bu proses tərcüməçi adlanan xüsusi proqram vasitəsilə həyata keçirilir.

Proqramın maşında sazlanması. Proqramın maşında sazlanması proqramdakı səhvləri aradan qaldırmaq məqsədi daşıyır və aşağıdakıları əhatə edir: proqrama nəzarət; səhvlərin məzmununun (diaqnostikasının) axtarışı və müəyyən edilməsi; aşkar edilmiş səhvlərin düzəldilməsi.

İlkin məlumatların hazırlanması. Kompüterdə problemin həlli. Kompüterə daxil ediləcək tapşırığın ilkin məlumatları əvvəllər blanklardan və ya sənədlərdən perfo lentlərə və ya perfokartalara köçürülməlidir. Bu proses klaviatura ilə təchiz olunmuş xüsusi perforasiya qurğularında həyata keçirilir. AT Perforasiya prosesində səhvlər həm perforasiya qurğularının təsadüfi sıradan çıxması nəticəsində, həm də perforator operatorlarının işindəki səhvlər nəticəsində mümkündür. Perforasiya və giriş zamanı məlumatlara daxil edilmiş bütün səhvlər düzəldilməlidir.

Bir qayda olaraq, kompüterə məlumat daxil etmək üçün ya 80 sütunlu fərdi kompüterlər, ya da kağız PL-dən istifadə olunur. Daha böyük maşınlarda hər ikisi var. Delikli kart 12 sətirdən ibarətdir və buna görə də hər sütunda 12 zərbə mümkündür; zımbalı lentin eninə istiqamətində 5, 6, 7 və 8 zərbə mövqelərinə icazə verilir. Beləliklə, nəzəri olaraq 2 5 =32-dən 2 12 =4096 simvola qədər olan əlifbadan istifadə etmək mümkündür, lakin praktikada perfokart sütununda 3-dən çox zərbəyə nadir hallarda rast gəlinir, belə ki, bir qayda olaraq, istifadə olunan əlifba aşağıdakıları ehtiva edir. 40-80 simvol. Kompüter avadanlığı arasında perfokartlarda və perfoqrafik lentlərdə olan məlumatları insanların oxuması üçün əlverişli formada kağız üzərində çoxaltmaq üçün müstəqil qurğu var. Nəticədə biz adətən adlanan şeyi əldə edirik siyahı və ya çap.

Proqramları və ilkin məlumatları kompüterə daxil etdikdən sonra problem avtomatik olaraq həll edilir.

Komputer proqramı

Kompüterin riyazi proqram təminatı (MO). hər biri praktiki olaraq istifadəçi tərəfindən təkbaşına və ya bəzi başqa proqramlarla birlikdə problemləri həll etmək və ya proqramlaşdırma ilə bağlı bəzi işləri yerinə yetirmək və ya kompüterin müəyyən iş rejimini yaratmaq üçün istifadə edilə bilən proqramlar toplusu kimi müəyyən edilə bilər.

AT MO kompüter sistemi aşağıdakı proqram qruplarını əhatə edə bilər:

    əməliyyat sistemi proqramları;

    proqram təminatı sistemi;

    proqramlara tətbiqlər;

    proqram təminatı sistemi;

    kompüterin sağlamlığına nəzarət etmək üçün nəzərdə tutulmuş test proqramları sistemi.

Əməliyyat sistemi kompüterin iş rejimini təyin edən və onun əməliyyat imkanlarını genişləndirən proqramları ehtiva edir. Əməliyyat sisteminə bir sıra proqramlar daxildir, bunlardan əsasları aşağıdakılardır:

dispetçer- kompüterin müəyyən iş rejimini təmin edən proqram;

nəzarətçi, və ya ekran,- onun üçün müəyyən edilmiş rejim çərçivəsində insan operatoru tərəfindən maşına verilən işi təmin edən proqram;

bir sıra kommunal proqramlar, məsələn, ilkin məlumatların daxil edilməsi üçün proqramlar, nəticələrin redaktə edilməsi və verilməsi üçün proqramlar, yükləyici - RAM-a sözdə işləyən proqramların daxil edilməsi üçün proqram, yəni problemlərin həlli üçün proqramlar, kitabxanaçı - alt proqramlara daxil olmaq üçün proqram. makro əməliyyatları və makro əməliyyatların alt proqramlarını yerinə yetirmək üçün əməliyyat sistemi ilə insan operatoru arasında əlaqə proqramı.

Əməliyyat sisteminin işləməsi üçün böyük əhəmiyyət kəsb edir müasir maşınlarda olan (və birinci nəsil maşınlarda olmayan) xüsusiyyətlərə malikdir: kəsmə sisteminin olması, yaddaşın qorunması, təlimatın qorunması və kəsilmənin maskalanması.

Dispetçerin mahiyyəti maşının işindəki hər hansı bir fasiləni ya taktiki olanların sayına aid etməsi və bu halda nəzarəti və fasilə haqqında məlumatı dərhal nəzarətçiyə, ya da strateji olanların sayına ötürməsidir. Sonuncu halda, o, fasilənin özünü təmin edir. Bu reaksiyaya uyğun gələn mətn nəticə adlanacaq.

Nəzarətçi insan operatorun tələbi ilə proqramların icrası qaydasını planlaşdırır və mövcud kompüter avadanlıqlarını onlar arasında bölüşdürür, onların növbəsini təşkil edir və bu növbədə nizam-intizamı təmin edir. Nəzarətçinin qarşısında duran əsas vəzifələr bunlardır: kompüterin işinin gedişatını idarə etmək; insan operatoru ilə əlaqə saxlamaq.

Kompüterin müxtəlif iş rejimləri mövcuddur ki, onların təmin edilməsi dispetçerin əsas məqsədlərindən biridir.

Bir sıra rejimlər sözdə formada təqdim olunan problemlərin həlli ilə əlaqələndirilir iş paketi. Eyni zamanda, bütün paket ona daxil olan vəzifələr və onların bir-birindən üstünlükləri (prioritet sistemi) haqqında məlumatla təmin edilir.

İş paketinin icrası nəzarətçinin nəzarəti altında həyata keçirilir. Bu halda maşının tək proqramlı, iki proqramlı və ya çox proqramlı işləməsi həyata keçirilə bilər. Onun istifadəsinin effektivliyi əsasən işin bir paketə necə birləşdirildiyindən asılıdır. CPU (arifmetik blok və idarəetmə bloku) boş deyilsə, paket yaxşı hesab olunur. Təsvir edilən rejimlər adlanır toplu rejimləri. Müasir kompüterlər eyni vaxtda 16-ya qədər işi yerinə yetirməyə imkan verir.

Vaxt paylaşımı rejimi terminallar adlanan çoxlu sayda uzaq giriş-çıxış qurğularının eyni vaxtda kompüterə qoşulması ilə xarakterizə olunur. Partiya əməliyyatı zamanı istifadəçilər idarəetmə panelinə buraxılmır, vaxt mübadiləsi rejimində onların hər biri operatorun iştirakı olmadan maşınla əlaqə saxlayır. Dispetçer bütün növbələrdə olan istifadəçilərə kiçik vaxtların ardıcıl olaraq verilməsini təmin edir. Bir neçə saniyə ilə ölçülən bir müddət ərzində maşın hər bir istifadəçiyə az-az xidmət edir. Vaxt mübadiləsi rejimi maşın işinin yerinə yetirilməsi kompüter və istifadəçi arasında dialoq şəklində davam etməli olduğu hallarda əlverişlidir. Eqo kompüter proqramlarını sazlayarkən, sual-cavab kimi informasiya məsələlərini həll edərkən baş verir.

Proqram təminatı sistemi müxtəlif giriş proqramlaşdırma dillərində göstərilən alqoritmləri maşın dilinə çevirmək üçün bir sıra tərcüməçi proqramları ehtiva edir. Tipik olaraq, proqramlaşdırma alətləri sistemi üç səviyyəli alqoritmik dildən olan tərcüməçiləri ehtiva edir.

Alqoritmin tərcüməsi prosesi və onun maşın tərəfindən icrası prosesi iki üsuldan birində birləşdirilə bilər.

Birinci üsul adlanır tərtib, ondan ibarətdir ki, alqoritmin maşın tərəfindən icrası prosesi onun tərcüməsi prosesi tam başa çatdıqdan sonra həyata keçirilir. “Kompilyasiya” adı ona görə yaranmışdır ki, əvvəlcə tərcümə edilmiş alqoritmin müəyyən hissələrinə uyğun gələn qabaqcadan hazırlanmış hissələrin (alt proqramların) vahid bütövlükdə birləşməsinə əsaslanan tərcümə prosesini nəzərdə tuturdu. Sonradan bu ad əvvəlcədən hazırlanmış mətnlərin istifadəsi ilə əlaqəli olmayan "dinamik" tərcümə halına qədər genişləndirildi.

Tərcümə prosesi ilə alqoritmin icra prosesini birləşdirməyin ikinci yolu adlanır təfsir. Bu üsul ondan ibarətdir ki, alqoritmin ayrı-ayrı hissələri tərcümədən dərhal sonra yerinə yetirilir, bundan sonra eyni prosedur alqoritmin digər hissələrində həyata keçirilir və s.

Kompilyasiya alqoritmin icrası zamanı onu həyata keçirən kompilyator proqramına artıq ehtiyac qalmaması və ona görə də kompüterin əsas yaddaşında yerləşməməsi ilə xarakterizə olunur. Tərcümə metodunun tətbiqi məsələnin həlli zamanı kompüterin əsas yaddaşında tərcüməçi proqramının olmasını tələb edir.

Metodların hər birinin öz üstünlükləri var, lakin şərh üsulu daha çevikdir. Bundan əlavə, tərcümə proqramının özünü saxlamaq üçün çoxlu əlavə yaddaş tələb olunsa da, yaddaşın ayrılması vəzifəsini asanlaşdırır.

Ən son kompüterlərin proqram sistemləri çox vaxt modulluq deyilən prinsipə əsaslanır. modullar icraçı sistemin dilində və ya giriş proqramlaşdırma dilində müəyyən edilmiş alqoritmlərin "parçaları" adlanır, bunun üçün aşağıdakı şərtlər yerinə yetirilir:

İcra sisteminin dilində müəyyən edilmiş alqoritmlərin “parçaları” onların müvafiq işlənməsi ilə onlardan icra sisteminin dilində müəyyən edilmiş proqramı yığmağın mümkünlüyünü təmin etmək üçün kifayət qədər əlavə məlumatla təmin edilməlidir;

Daxil edilən proqramlaşdırma dillərində göstərilən alqoritmlərin "parçaları" müvafiq emalla icra sisteminin alqoritmik dilində müəyyən edilmiş modullara çevrilməsini təmin etmək üçün kifayət qədər əlavə məlumatla təmin edilməlidir.

Modulluq prinsipi icra sisteminin dilində olan proqramların modullardan yığılmasıdır. Kitabxanada icra sisteminin dilində modullar toplana bilər. Modul prinsipi proqramı yığarkən müxtəlif alqoritmik dillərdə tərtib edilmiş modullardan istifadə etməyə imkan verir. Modulları toplamaq və sonra onları təkrar istifadə etmək bacarığı proqramçıların işinə qənaət edir.

Bütün proqram proqramları hansısa kitabxananın üzvü olmalıdır. Standart proqramlar kitabxanası hər bir proqram onu ​​müəyyən edən əlavə məlumatlarla təmin edilən əvvəlcədən tərtib edilmiş proqramlar toplusudur. Bütün proqramlar üzrə məlumatlar adlı ümumi cədvəldə ümumiləşdirilməlidir kataloq. Kataloq adı və məqsədi ilə alt proqram tapmağa imkan verməlidir.

Kitabxana adətən xüsusi tərtib edilmiş və xüsusi hazırlanmış proqramları toplayır.

Sadalanan proqramlaşdırma vasitələrindən müxtəlif vəzifələrin (problemlərin) həlli üçün istifadə edilməlidir. Eyni zamanda, fərdi tapşırıqların (problemlərin) proqramlarının çox "yaxşı" olmaya biləcəyinə inanılır, lakin kompüterdə bir problemin proqramlaşdırılması və həlli üçün vəsaitin ümumi xərci adətən daha çox "yaxşı" tərtib edərkən daha azdır. proqramlar.

ACS-nin riyazi dəstəyi

Riyazi dəstək (MO) ACS- bu, kompüterdə avtomatlaşdırılmış idarəetmə sistemlərinin xüsusi problemlərinin həlli üçün proqramları effektiv şəkildə inkişaf etdirməyə, bu problemlərin həlli prosesində kompüterin işinə nəzarət etməyə və kompüterin düzgün işləməsinə nəzarət etməyə imkan verən üsullar, üsullar və alətlər sistemidir. Kompüter.

MO ACS yaratarkən əməl edilməli olan əsas müddəalar aşağıdakılardır:

  • hazırlanmış MO ACS-nin mövcud MO kompüterində uyğunluğu və əsaslandırılması;
  • MD-nin seçilmiş vasitələrinin avtomatlaşdırılmış idarəetmə sisteminin tapşırıqlarına yönəldilməsi;
  • kifayət qədər müxtəlif proqramlaşdırma avtomatlaşdırma vasitələri;
  • iş proqramlarında səmərəli dəyişikliklər etmək bacarığı;
  • alqoritmlərin birmənalı və hərtərəfli təsvirinin mümkünlüyü;
  • şəxsi istifadə proqramlarının işini optimallaşdırmaq imkanı;
  • tikinti proqramlarının modulluğu.

MO ACS istifadəçiyə proqramlaşdırma texnologiyası üzrə geniş spektrli xidmətlər təqdim etməyə xidmət edir. Onu iki hissəyə bölmək olar: nəzarət proqramlarının tərtibi və emal proqramlarının tərtibi.

Nəzarət proqramları maşınların operativ yaddaşının ilkin yüklənməsini və avtomatlaşdırılmış idarəetmə sisteminin işinə, o cümlədən fasilələrin emalına, kanalların işinin paylanmasına, kitabxanadan proqramların operativ yaddaşa yüklənməsinə nəzarəti həyata keçirmək. Nəzarət proqramları çox proqramlı işi təmin edir, operatorla əlaqə saxlayır.

Emal proqramları proqramlaşdırma avtomatlaşdırma sistemi və xidmət proqramları daxildir.

Proqramlaşdırmanın avtomatlaşdırılması sisteminin funksiyaları aşağıdakılar: giriş proqramlaşdırma dillərində proqramların yazılması; proqramların kompüterin daxili dilinə tərcüməsi; standart rutinlərdən lazımi konfiqurasiyaların (seqmentlərin) birləşdirilməsi (qurulması); giriş dilləri səviyyəsində sazlama proqramları; proqramların giriş dilləri səviyyəsində korreksiyası.

Xidmət proqramlarının əsas vəzifələri aşağıdakılardır: kitabxanaya proqramların yazılması; proqramların kitabxanadan çıxarılması; proqramların bir maqnit daşıyıcıdan digərinə yenidən yazılması, proqramların çapı və zımbalı daşıyıcılara çıxarılması; RAM-da işləmək prosesində lazımi proqramların çağırılması və onun yerində qurulması.

MO ACS-nin əsas komponentləri sistem dispetçer proqramı və istehsal və iqtisadi məlumatların emalı üçün nəzərdə tutulmuş standart alt proqramlar və standart proqramlar kitabxanasıdır.

Sistem dispetçeri istehsal-təsərrüfat və ya inzibati fəaliyyətlə müəyyən edilmiş rejimdə avtomatlaşdırılmış idarəetmə sisteminin işləməsini təmin edir.

Standart rutinlər kitabxanası, MO kompüterlərində mövcud olan avtomatlaşdırılmış idarəetmə sistemlərində informasiyanın emalı proseslərinə yönəlmiş sistem kitabxanasının inkişafı istiqamətində keçid mərhələsidir. Sistem Kitabxanası ehtiva etməlidir:

sənədlərin və ilkin məlumatların digər yazılı mənbələrinin daxil edilməsi və maşın formasına çevrilməsi üçün proqramlar;

massivlərdən tələb olunan məlumatların səmərəli axtarışı və çıxarılması üçün həm böyük həcmləri, həm də strukturunun mürəkkəbliyi ilə xarakterizə olunan kompüter massivlərinin təşkili proqramları;

verilənlərin insan üçün ən əlverişli formaya (qrafiklər, diaqramlar, şəkillər şəklində) çevrilməsi və onları xarici cihazlara çıxarmaq üçün proqramlar.

Proqramlaşdırma dilləri

proqramlaşdırma dili kompüterdə problemlərin həlli proseslərini təsvir etmək üçün istifadə olunan işarə sistemləri adlanır. Təbiətinə görə proqramlaşdırma dilləri üç qrupa bölünür:

  1. formal alqoritmik dillər;
  2. formal qeyri-alqoritmik proqramlaşdırma dilləri;
  3. proqramlaşdırmada istifadə olunan kifayət qədər rəsmiləşdirilməmiş işarə sistemləri.

Formal proqramlaşdırma dilləri. Bu dillər qrupuna aşağıdakılar daxildir: maşınların və əməliyyat sistemlərinin alqoritmik dilləri; maşın yönümlü alqoritmik dillər; problem yönümlü alqoritmik dillər; universal maşından asılı olmayan alqoritmik dillər.

Əməliyyat sistemi dilləri Alqoritmik dillərə kompüterdən əmələ gələn komplekslər və onlar üçün hazırlanmış bir dispetçer proqramı (bəzən nəzarətçi də deyilir) tərəfindən qəbul edilən alqoritmik dillər deyilir.

Proqramların birbaşa əl ilə maşının və ya əməliyyat sisteminin dilində tərtib edilməsi hal-hazırda istifadə edilmir, çünki bu, proqramçıdan çoxlu sayda detalları yadda saxlamağı tələb edir, onlar olmadan əmrlərdən proqram qurmaq mümkün deyil.

Maşın yönümlü alqoritmik dillər alqoritmin qeydində onun müəyyən hissələrinin hansı texniki vasitələrlə yerinə yetirilməli olduğunu və bu halda yaddaş qurğularından necə istifadə edilməli olduğunu göstərməyə imkan verən ifadəli vasitələri ehtiva edir. Maşın yönümlü proqramlaşdırma dillərinə avtokodlar və imkanlarına görə ALMO kimi universal alqoritmik dillərə yaxın olan bəzi dillər daxildir.

Domenə əsaslanan alqoritmik dillər bunlar müəyyən bir dar sinifin problemlərinin həlli proseslərini təsvir etmək üçün xüsusi olaraq hazırlanmış dillərdir, məsələn, xətti cəbr, statistika, məlumatların emalı problemləri və s. Xüsusilə, COBOL problem yönümlü dillərə aiddir.

Universal Maşından Müstəqil Alqoritmik Dillərçox geniş siniflərin problemlərinin həlli üçün alqoritmlər yaratmaq üçün uyğundur. Bu dillərə artıq qeyd olunan ALGOL, FORTRAN, PL/1 daxildir.

Universal maşından asılı olmayan alqoritmik dillər arasında YLS istisnadır. Bu dilin məqsədi proqramlaşdırma dili olmaq ilə məhdudlaşmır. YALS maşın dilində və ya ASSEMBLY dilində proqramlaşdırma zamanı alqoritmlərin təsvirinin birinci mərhələsi kimi istifadə olunur (operator proqramlaşdırma metodu; YALS-də yazılmış alqoritm əl ilə maşın dilinə və ya ASSEMBLY dilinə tərcümə olunur).

Aşağıdakı cədvəl rəsmi proqramlaşdırma dillərinin müqayisəsini təqdim edir.

Tamamilə rəsmiləşdirilməmiş işarə sistemləri. Bu dillər adətən manuel proqramlaşdırmada və ya avtomatlaşdırılmış proqramlaşdırmanın ilkin əl addımında istifadə olunur. Buna misal olaraq proqramın iş qrafikini göstərmək olar. Proqramın blok diaqramı proqramın böyüdülmüş təsviridir, burada onun ayrı-ayrı hissələri "bloklar" (düzbucaqlılar, romblar, dairələr və s.) şəklində təsvir olunur, daxilində bu hissələrin məzmunu bir formada ifadə edilir. təbii dil (məsələn, rus dilində). Bloklar (proqramın hissələri) arasında əlaqə idarəetmənin ötürülməsini bildirən xətlərin köməyi ilə təsvir edilmişdir. Nəzarətin ötürülməsinin baş verdiyi şərtləri göstərmək üçün xətlər etiketlənə bilər. Blok diaqramlar LLS-də ümumiləşdirilmiş operatorlardan istifadə etməklə yazılmış alqoritmlərə bənzəyir, lakin onlardan blokların mənasının təbii, qeyri-rəsmi dildə ifadə olunması ilə fərqlənir, LLS-də isə ümumiləşdirilmiş operatorlar dəqiq formal dildə deşifrə olunur.

Hal-hazırda kompüterdə müvafiq məsələlərin həlli üçün 2000-dən çox müxtəlif alqoritmik dil və onların 700-dən çox tətbiq sahəsi məlumdur.

Aşağıdakı səviyyələrdə proqramlaşdırma dilləri var:

    sıfır və ya aşağı səviyyəli dil - maşın kodu;

    birinci səviyyənin dili mnemokod və ya simvolik kodlaşdırma dilidir;

    ikinci səviyyəli dil - avtokod (makrokod);

    üçüncü səviyyəli dillər (daha yüksək) - problem yönümlü dillər.

Daxiletmə dilləri kimi, avtomatlaşdırılmış idarəetmə sisteminin tapşırıqlarının növündən asılı olaraq, istifadə etmək məqsədəuyğundur. domenə xas dillər müxtəlif növlər

Formal alqoritmik proqramlaşdırma dillərinin müqayisəli məlumatları

Alqoritmik proqramlaşdırma dilləri sinfi

Kompüter xüsusiyyətlərinin uçotu

Tapşırıq sinfinin xüsusiyyətləri

Proqramlaşdırma yolu

Proqramın keyfiyyətinin şərti qiymətləndirilməsi

Maşın dilləri

Maşın yönümlü dillər

Qismən

Kompüterin xüsusiyyətləri ilə müəyyən edilir

avtomatlaşdırılmış

Qənaətbəxş

Domenə xas dillər

Kiçik

avtomatlaşdırılmış

Qənaətbəxş

Universal Maşın Müstəqil Dillər

Yoxdur və ya çox azdır

Çox geniş

avtomatlaşdırılmış

aşağı

(məsələn, təhlil üçün - ALGOL, FORTRAN və s., iqtisadi problemlər üçün - ALGEK və s., informasiya problemləri üçün - COBOL, SYNTOL və s.).

Bəzi alqoritmik proqramlaşdırma dillərini nəzərdən keçirək.

ALQOL-60. Dilin adı buradan gəlir İngilis dili sözləri Alqoritmik Dil. 1960-cı ildə müxtəlif ölkələrdən bir qrup alim tərəfindən işlənib hazırlanmış və geniş yayılmışdır. Müvəffəqiyyətin səbəbləri onun adi riyazi dilə yaxınlığı, problemlərin geniş sinfini təsvir etmək rahatlığı, universallıq və konkret kompüterdən tam müstəqillik, dilin əlifbadan ən mürəkkəb strukturlara qədər ciddi şəkildə rəsmiləşdirilməsidir.

ALGOL-60 təkcə universal proqramlaşdırma dili deyil, həm də alqoritmləri təsvir etmək üçün beynəlxalq dildir.

ALGOL-60 dilində alqoritmlərin yazılmasının əsasını “;” işarəsi ilə ayrılmış operatorlar ardıcıllığı təşkil edir. Dildə vahid hərəkətlər olan bu ifadələr ardıcıllığı, ifadələrdə istifadə olunan zəruri xüsusiyyətlər haqqında tərcüməçiyə məlumat verən təsvirlər ardıcıllığı ilə birləşdirilir. Təsvirlər, məsələn, dəyişən qiymətlər kimi istifadə olunan ədədlərin sinifləri, ədədlər massivlərinin ölçüləri haqqında və s. haqqında məlumat verir. Bu dildə təsvirlərin və operatorların belə birləşməsi blok adlanır.

ALGOL-60 dilindəki proqram blok və ya mürəkkəb müddəadır ki, onun daxilində başqa bir ifadə yoxdur və onun tərkibində olmayan başqa bir ifadədən istifadə edilmir.

ALGOL proqramlaşdırmasının həyata keçirildiyi hesablama mərkəzləri tam ALGOL proqramları şəklində deyil, prosedur təsvirləri şəklində təcrübə toplamalıdır. Bu onunla əlaqədardır ki, hazır ALGOL proqramlarını yeni proqramlara daxil etmək praktiki olaraq mümkün deyil, halbuki prosedurların təsviri bunun üçün xüsusi hazırlanmışdır.

SSRİ-də ALGOL-60 onun bəzi variantları şəklində geniş yayılmışdır.

FORTRAN. FORTRAN sözü iki ingilis sözündən (Formula Translator) əmələ gəlib. FORTRAN dilinin ən mühüm xüsusiyyətlərindən biri onun konkret kompüterin xüsusiyyətlərindən nisbətən azad olmasıdır. FORTRAN maşından asılı olmayan proqramlaşdırma dilidir.

Bu dildə həm standart (tez-tez istifadə olunan) proqramlar, həm də konkret məsələlərin həlli üçün istifadə olunan bir çox xüsusi proqramlar daxil olmaqla, ən geniş riyazi proqram kitabxanaları toplanmışdır.

FORTRAN-ın proqramlaşdırma praktikasına geniş tətbiqi onun keyfiyyətlərinə görədir ki, bunlardan birincisi, digər alqoritmik dillərlə (məsələn, ALGOL) müqayisədə sadəliyini qeyd etmək lazımdır; ikincisi, həddindən artıq mürəkkəb strukturların olmaması səbəbindən tərcümə edilmiş proqramlar başqa dillərdə yazılmış proqramlardan daha səmərəlidir; eyni zamanda, FORTRAN əksər hesablama alqoritmlərinin proqramlaşdırılması üçün uyğundur;

üçüncüsü, FORTRAN-ın insanı maşınla birləşdirmək üçün çox güclü vasitələri var: kompüterin verdiyi məlumat alim və mühəndislərə tanış olan formada təqdim olunur. Və nəhayət, dördüncüsü, FORTRAN yaxşı uyğun gəlir səmərəli istifadə xarici kompüter cihazları.

FORTRAN-dan istifadə etməklə yazılmış məsələnin həlli alqoritmi operatorlar ardıcıllığından ibarətdir. Bu operatorlar bir neçə müxtəlif növ ola bilər. Problemin həlli alqoritmini təyin edən operatorlar birlikdə götürüldükdə orijinal proqramı təşkil edirlər. Mənbə proqramı perfokartlara yazıldıqdan və punchla vurulduqdan sonra FORTRAN tərcüməçisindən istifadə etməklə işçi proqrama çevrilir.

Birinci operator || kimi görünən başlıq operatorudur PROGRAMa ||, burada a proqramın adı, sonuncusu isə son operator (operator || END ||) və alt proqramlar dəstidir. Əsas proqram və hər bir alt proqram ifadələrin etiketlərini, həmçinin dəyişənlərin, massivlərin və digər qiymətlərin adlarını lokallaşdırır və bununla da müxtəlif alt proqramlarda və əsas proqramda eyni etiket və identifikatorlardan istifadə etməyə imkan verir. Əsas proqram və alt proqramlar arasında əlaqə müvafiq zəng operatorlarından istifadə etməklə həyata keçirilir.

FORTRAN-da proqramları tərtib edərkən operatorların aşağıdakı ardıcıllığına riayət etmək tövsiyə olunur: 1) əsas proqramın operator-başlığı (alt proqram); 2) faylın təsviri operatoru; 3) gizli tip təyinetmə operatoru; 4) növü təyin etmək üçün açıq operator, ölçüləri təyin etmək üçün operator, ümumi sahələri təyin etmək üçün operator; 5) ekvivalentliyin dəqiqləşdirilməsi operatoru; 6) operator-funksiya, operator-prosedur; 7) format təyini operatoru, icra olunan operatorlar (şərtsiz, şərti, giriş, çıxış); 8) son operator.

COBOL. Dilin adı ingiliscə Common Business Orientated Language sözlərindən gəlir. COBOL problemin həlli və verilənlərin emalı proseslərini təsvir etmək üçün nəzərdə tutulmuş problem yönümlü alqoritmik dildir. Hazırda COBOL iqtisadi problemlər üçün geniş istifadə olunan yeganə yüksək səviyyəli proqramlaşdırma dilidir. Onun geniş populyarlığı COBOL-un adətən iqtisadi problemlərin formalaşdırıldığı və həll edildiyi təbii dilə kifayət qədər yaxın olması ilə izah olunur.

COBOL dilinin fərqli xüsusiyyətləri aşağıdakılardır:

dil müəyyən mənada alt çoxluqdur ingilis dili; COBOL ilə yazılmış mətn əvvəlcədən hazırlanmadan başa düşülə bilər;

dil biznes sənədlərinə xas bir quruluşla məlumatları yaxşı təsvir edir; bu məlumatlar şəxsi işlərə, mallara, maliyyəyə aid ola bilər (birləşdirilmiş məlumatlara da icazə verilir);

dildə tam uyğunluq problemini, yəni konkret kompüterlərin xüsusiyyətlərindən müstəqillik problemini həll etməyə cəhd edilir.

COBOL proqramı bölmə adlanan dörd hissədən ibarətdir. Bu bölmələrin aşağıdakı adları var: identifikasiya bölməsi, avadanlıq bölməsi, məlumat bölməsi və prosedurlar bölməsi. Prosedur bölməsi faktiki proqramı ehtiva edir, lakin üçüncü bölmədə müəyyən edildiyi kimi emal ediləcək məlumatların strukturu məlum deyilsə, mənasızdır (yaxud ən yaxşı halda tam müəyyən edilməmişdir). Aparat bölməsi daha sonra konfiqurasiya bölməsinə və I/O bölməsinə, məlumat bölməsi isə massiv bölməsinə, işləyən yaddaş bölməsinə və sabitlər bölməsinə bölünür. Bölmənin (bölmənin) əvvəlində bölmənin (bölmənin) adı, sonra nöqtə qoyulur; nöqtəli ad ayrıca sətir çəkir. Bölmə və ya bölmənin məzmunu adlandırılmış paraqraflarda qruplaşdırılmış cümlələrdən ibarətdir.

COBOL-da kommersiya məlumatlarını emal edərkən lazım olan proqrama kiçik dəyişikliklər etmək daha asandır.

COBOL-da I/O-nun əsas vahidi məlumat faylıdır. Hər bir fayl qeydlərdən ibarətdir. Eyni fayl tez-tez həll olunan vəzifələrin xarakterindən asılı olaraq müxtəlif proqramlarda istifadə olunur. Faylların təsviri çox ciddidir və dəyişdirilə bilməz.

Tərtibatçılar proqramların yayımı üçün bir maşından, tərtib edilmiş proqrama uyğun olaraq problemi həll etmək üçün başqa bir maşından istifadə etmək imkanını nəzərə aldılar. Bundan əlavə, eyni COBOL proqramı müxtəlif avadanlıq dəstləri ilə müxtəlif kompüterlərin dillərinə tərcümə edilə bilər.

SOL. Rəqəmsal modelləşdirmə effektiv tədqiqat metodu kimi mürəkkəb sistemlərin təhlili və dizaynı ilə məşğul olan mütəxəssislər arasında getdikcə daha çox populyarlıq qazanır.

Çox vaxt sistem mütəxəssisi öyrəndiyi sistemin işini simulyasiya edən proqram yazmaqda çətinlik çəkir. Bunun səbəbi, riyazi olaraq təsvir etmək demək olar ki, mümkün olmayan sistemlərin həddindən artıq mürəkkəbliyi ola bilər. Bu tip problemlər, xüsusən də cihaz və idarəetmə sistemlərinin yaradılması təcrübəsində çoxdur. Proqramların tərtibini asanlaşdırmaq üçün hazırda avtomatik proqramlaşdırma dilləri (ixtisaslaşdırılmış modelləşdirmə dilləri) istifadə olunur ki, bu da kompüterdə tapşırıqların hazırlanmasına və həyata keçirilməsinə ən az vaxt sərf etməklə, sistemin işini simulyasiya edən proqramlar qurmaq və araşdırmaq imkanı verir. tədqiq olunur.

Eyni zamanda, ixtisaslaşdırılmış dilin elementləri, bir qayda olaraq, kifayət qədər universaldır və ola bilər . simulyasiya edilmiş hadisələrin geniş sinfinə tətbiq edilir. Bundan əlavə, ixtisaslaşmış modelləşdirmə dilləri universal dillərlə müqayisədə modelləşdirilən sistemi xarakterizə edən hesablama və məntiqi əməliyyatların proqramlaşdırılmasını xeyli sadələşdirir. Eyni zamanda, tapşırıq meneceri ilə proqramçı arasında əlaqə də sadələşdirilir. Buna xüsusi modelləşdirmə dillərinin aşağıdakı xüsusiyyətləri vasitəsilə nail olunur:

  • dəyişənlər və parametrlər arasında maşının yaddaş bölgüsü strukturunu düzəltmək imkanı. Bu paylama əksər universal dillərdə əldə ediləndən daha incə və zərifdir;
  • simulyasiya edilmiş sistemin vəziyyətlərinin dəyişdirilməsini asanlaşdıran bir sıra təlimatların olması. Əksər hallarda bu, standart idarəetmə və ya alt proqramların həyata keçirilmə ardıcıllığına nəzarət edən müvəqqəti alt proqram tərəfindən həyata keçirilir;
  • müəyyən bir zamanda müəyyən bir alt proqramın həyata keçirilməsinə ehtiyacı müəyyən edən bir sıra təlimatların olması;
  • təsadüfi ədədlər və ehtimal paylamaları ilə bağlı standart və ya tez-tez baş verən əməliyyatları yerinə yetirmək üçün əmrlərin olması;
  • modelləşdirmə proqramının icrası zamanı statistik göstəricilərin qəbulunu və qeydiyyatını sadələşdirən əmrlərin olması.

Bəzi ixtisaslaşmış alqoritmik modelləşdirmə dillərini nəzərdən keçirin.

GPSS universal modelləşdirmə dili ən çox istifadə edilən, sadə və intuitivdir. Proqramlaşdırma və maşın əməliyyatları haqqında bilik tələb etmir. Simulyator proqramçı olmayanlar üçün xüsusilə cəlbedici olan blok-sxem şəklində təqdim olunur.

SIMSCRIPT alqoritmik dili hal-hazırda ən güclü modelləşdirmə dili hesab olunur. Bir sıra unikal xüsusiyyətlərinə görə o, ən geniş tapşırıqlar sinfinə şamil edilir. Bununla belə, bu dil nisbətən mürəkkəbdir və sazlama proqramları üçün diaqnostika vasitələri məhduddur. Bundan əlavə, bu dilin potensial istifadəçisi FORTRAN dilini bilməli və proqramlaşdırma təcrübəsinə malik olmalıdır.

Modelləşdirmə problemlərinin həlli ilə məşğul olan mütəxəssislərin diqqətini ALGOL əsasında bu məqsədlə hazırlanmış xüsusi dillər cəlb edir. Belə avtomatik proqramlaşdırma dilləri arasında ən təkmil olanı SIMULA və SOL (SOL) dilləridir.

Diskret dəyişən sistemlərin modelləşdirilməsi üçün ən uğurlu ixtisaslaşdırılmış alqoritmik dillərdən birinə nümunə Simulyasiya yönümlü dildir (SOL).

SOL dili ALGOL universal proqramlaşdırma dili əsasında qurulub, eyni struktura malikdir və onun əsas elementlərindən istifadə edir. Diskret hadisələri olan proseslərin geniş sinifini təsvir etmək üçün SOL universal anlayışlar sistemini təmsil edir və buna görə də bir çox cəhətdən ALGOL və ya FORTRAN kimi domen yönümlü avtomatik proqramlaşdırma dillərinə çox oxşardır. Bununla belə, SOL dili onu bu dillərdən fərqləndirən əsas xüsusiyyətlərə malikdir: SOL asinxron paralel proseslərin modelləşdirilməsi mexanizmini, arifmetik ifadələr daxilində təsadüfi elementlərin rahat qeydini, simulyasiya edilmiş sistemin komponentləri üzrə statistik məlumatların toplanması üçün avtomatik alətləri təmin edir. Digər tərəfdən, domenə xas universal dillərin bir çox xüsusiyyətləri SOL-da istifadə edilmir, çünki onlar onunla uyğun gəlmir, əksinə, imkanlarını genişləndirmədən dizaynına böyük mürəkkəblik əlavə edirlər. Dilin qurulmasının və onun üzərində simulyasiya proqramlarının yazılmasının əsasını təşkil edən prinsiplər mürəkkəb sistemlərin modellərini asan oxunan formada qurmağa imkan verir.

PL/I. Dilin adı ingilis dilindəki Programming Language/One sözlərindən gəlir.

PL/I dili bir sıra yüksək inkişaf etmiş dillərin yaradılmasından sonra meydana çıxdı və təbii ki, bu sələf dillər onun strukturuna əhəmiyyətli təsir göstərmişdir. Belə ki, o, ALGOL-dan proqramın blok strukturunu, dinamik yaddaşın yerləşdirilməsi imkanını özündə saxlayır, çağırış prosedurları aparatı, FORTRAN-da istifadə olunan formatların təyini metodu və s.. Amma yeni funksiyalar da çoxdur. Dil modelləşdirmə, məntiqi məsələlərin həlli, məntiq dövrələrinin tədqiqi, real vaxt rejimində məsələlərin həlli, proqram təminatı sistemlərinin işlənib hazırlanması üçün əlverişlidir. Mümkün istifadə fərqli tip verilənlər (ikilik, onluq, simvol, mürəkkəb ədədlər, matrislər və s.), lakin bu məlumatları massivlərə, cədvəllərə, mətnlərə, anketlərə, fayl şkaflarına və s. şəklində təşkil etmək çox çətindir. Standart funksiyaların və prosedurların böyük bir dəsti var. PL/I dilində əsas və saxlama qurğuları arasında informasiyanın daxil edilməsi, çıxışı və mübadiləsinin bütün proseslərinə nəzarət edən uğurlu əməliyyatlar sistemi işlənib hazırlanmışdır. Bütün bu xüsusiyyətlər dildə güclü tıxac hissi yaradır. Mənfi cəhətləri də nəzərə almaq lazımdır: dilin təsviri qeyri-qənaətbəxşdir, rəsmiləşdirilməyib.

PL/I təkcə iqtisadi və elmi-texniki proqramlaşdırma üçün deyil, həm də real vaxt rejimində işlərin proqramlaşdırılması və proqramlaşdırma sistemlərinin yaradılması üçün nəzərdə tutulmuş çoxməqsədli proqramlaşdırma dilidir.

Dilin inkişafında əsas məqsədlərdən biri modulluğa, yəni əsas proqramda artıq tərcümə edilmiş proqramları təkrar tərcümə etmədən ayrı modullar kimi istifadə etmək imkanına nail olmaq idi. Proqramların yazılmasının mümkün qədər sadəliyini və rahatlığını təmin etmək zərurəti nəzərə alınmışdır. Eyni zamanda, proqramların ümumi və ətraflı məntiqi sxemlərinin tərtib edilməsi zərurəti hələ də qalır, lakin PL / I dilində proqramlaşdırmada müvafiq təcrübə ilə maşın dilində proqram yazmaqla bağlı çoxlu və yorucu işlərdən qaçmaq olar.

PL/I dilində hər bir dəyişən deskriptoru, hər bir spesifikasiya-tamamlayıcı və hər bir spesifikasiyaya “defoltun şərhi (prinsipi)” verilir. Bu o deməkdir ki, dilin bir neçə xüsusiyyəti təmin etdiyi və proqramçı heç birini qeyd etmədiyi yerdə kompilyator “defolt şərhdən” istifadə edir, yəni dildə bu hal üçün nəzərdə tutulan bəzi xüsusiyyətlər nəzərdə tutulur. Hər bir konstruksiya üçün nəzərdə tutulduğu kimi, dildəki imkanlar proqramçı tərəfindən ən çox tələb olunan imkanlardır.

PL/I proqramları sərbəst formada yazılır; proqramçı özü ona lazım olan proqramların yazı formalarını inkişaf etdirə bilər. Eyni zamanda kompüter sisteminin bütün vasitələrinə çıxış təmin edilir.

PL/I dilində yazılmış proqramın ifadələri "bloklara" birləşdirilir. Bloklar mühüm funksiyaları yerinə yetirir: onlar dəyişənlərin və digər adların əhatə dairəsini müəyyən edir ki, müxtəlif bloklarda eyni ad müxtəlif məqsədlər üçün istifadə olunsun; onlar dəyişənlər üçün yaddaş hüceyrələrini yalnız verilmiş blokun icrası zamanı ayırmağa və blok başa çatdıqdan sonra onları başqa məqsədlər üçün istifadəyə buraxmağa imkan verir.

RPG. RPG dili tapşırıqların proqramlaşdırılmasını və iqtisadi məlumatların emalının avtomatlaşdırılması üçün nəzərdə tutulmuşdur. Bu vəzifələrin məzmunu əsasən tükənmişdir aşağıdakı proseslər: faylların saxlanması (yəni təşkili, saxlanması, tənzimlənməsi və yenilənməsi), faylların çeşidlənməsi, siyahılar, hesabatlar, cədvəllər, xülasələr, hesabatlar və s. kimi müxtəlif mühasibat sənədlərinin tərtibi və çapı. Bir qayda olaraq, hesablamalar ümumi məbləğin kiçik bir hissəsini tutur. problemin həllinin həcmi. Bu cür problemləri həll edərkən, xüsusilə hesabatların tərtibi və verilməsi mərhələsində RPG-dən istifadə etmək rahatdır. Bu halda hesab edilir ki, hesabat üçün istifadə olunan daxiletmə faylları başqa vasitələrdən istifadə edilməklə yaradılır və çeşidlənir.

RPG sizə daxil edilən məlumatlar üzərində bəzi hesablamalar (adətən sadə və standart) yerinə yetirməyə, hesabat yaratmağa və onu çap etməyə imkan verir. Daxiletmə məlumatları kart daxiletmə qurğularından, maqnit lentlərdən və ya birbaşa giriş yaddaş cihazlarından daxil edilə bilər. Hesabat yaratmaqla yanaşı, RPG giriş fayllarını düzəltməyə və yeniləməyə, həmçinin yeni fayllar yaratmağa imkan verir. RPG-də cədvəllərlə əməliyyatlar aparmağa imkan verən alətlər (məsələn, cədvəlin tələb olunan elementini axtarmaq və cədvəli göstərmək), həmçinin RPG proqramının digər dillərdə yazılmış proqramlarla əlaqəsini təşkil etmək üçün alətlər var. və eyni problemi həll etmək üçün istifadə olunur.

Dilin bir xüsusiyyəti ondan ibarətdir ki, proqramçı problemin həlli üçün əməliyyatların ardıcıllığını (problem alqoritmi) təsvir etməməli, yalnız xüsusi formalarda hesabatın yaradılması üçün istifadə edilən giriş məlumatlarını, bu verilənlər üzərində aparılmış hesablamaları və s. hesabatın formatı.

Bu məlumat əsasında RPG tərcüməçisi işləyən proqram yaradır, sonra isə yaradılmış proqram daxil olan faylları emal edir və tələb olunan hesabatı çap edir.

RPG-dən istifadə edərək hesabatın hazırlanması aşağıdakı əsas addımlardan ibarətdir: tapşırıq məlumatlarının müəyyən edilməsi və onların işlənməsi; orijinal proqramın tərtib edilməsi; orijinal proqramın perforasiyaları; iş proqramı əldə etmək; iş proqramının icrası.

Tapşırığın proqramını yazmazdan əvvəl onun müəyyən təhlilini aparmaq tələb olunur. Giriş məlumatlarını, giriş məlumatlarının qeydlərinin formatını və tipini, istifadə olunan qeyd sahələrini və onların mövqeyini, məlumatların işlənmə üsulunu, hesablanacaq ümumilərin sayını və növünü, çap edilmiş hesabatın formatını və digər çıxış məlumatları.

Tapşırığın giriş və çıxış məlumatları və onların işlənməsi üsulu müəyyən edildikdən sonra bu məlumatları müvafiq RPG formalarında təsvir etmək lazımdır. RPG formalarının bir neçə növü var ki, onların hər biri müəyyən məlumatları qeyd etmək üçün nəzərdə tutulub. Daxil olan məlumatların təsviri formaları bütün daxiletmə fayllarının siyahısını verir, faylların hər birindəki bütün növ qeydlərin strukturunu və fərqləndirici xüsusiyyətlərini və qeydlərdə istifadə olunan sahələrin yerini təsvir edir. Hesablama forması daxil edilmiş məlumatların hansı işlənməsinin yerinə yetirilməli olduğunu göstərir. Çıxış təsviri vərəqi tələb olunan hesabatın və digər çıxış fayllarının formatını təsvir edir. Faylın təsviri forması və əlavə məlumat forması proqramda istifadə olunan faylların xüsusiyyətlərini (giriş, çıxış, cədvəl və s.) göstərir. İlkin proqram bu problemi həll etmək üçün RPG formalarında göstərilən məlumatdır.

Proqram müvafiq formalara yazıldıqdan sonra proqramın mətni kartoçkalara vurulur.

İşləyən proqram əldə etmək üçün əvvəlcə mənbə proqramı tərcümə etməlisiniz. Bunun üçün orijinal proqramın kartlarına RG1G tərcüməçisinin idarəetmə kartı və idarəetmə operatorlarının kartları - RPG tərcüməçisinin işləməsi üçün zəruri olan TASK CONTROLS kimi bəzi nəzarət kartları əlavə olunur. Tərcümə edildikdən sonra əldə edilən modul REDAKTOR vasitəsilə redaktə edilə bilər. Redaktə nəticəsində icraya hazır proqram (yük modulu) alınır ki, bu da işçi proqram adlanır. İstədiyiniz hesabatı hazırlamaq üçün tərtib etmək və redaktə etmək lazımdır.

İş proqramı tərcümə və redaktədən dərhal sonra və ya istənilən vaxt həyata keçirilə bilər. İş proqramı hazırlıq daxiletmə fayllarını oxuyur, onları emal edir və nəticədə hesabat və digər çıxış faylları əldə edir.

ALQAMLAR. ALGAMS alqoritmik dili orta gücə malik maşınlara yönəldilmişdir; onun əsasını ALGOL-60 dilinin alt çoxluğu təşkil edirdi.

ALGAMS-da həll olunan mühüm problem giriş-çıxış prosedurlarının tətbiqidir. ALGAMS-da standart funksiyalar dəsti genişləndirilib, kitabxananın alt proqramlarından istifadə etmək imkanı da var. ALGAMS-a proqramın mümkün seqmentasiyasını, hissə identifikatorları deyilənləri göstərməyə imkan verən alətlər, eləcə də bəzi massivləri xüsusi identifikatorlarla təsvir etməklə kompüterin bufer yaddaşından səmərəli istifadə etməyə imkan verən alətlər daxildir.

Daxiletmə bəyanatı INPUT identifikatorundan və ardınca mötərizə içərisində olan faktiki parametrlərin siyahısından ibarətdir. Birinci parametr məlumatların daxil edildiyi kanalın sayını təyin edir, qalan faktiki parametrlər sadə dəyişənlər, massiv identifikatorları və ya indeksli dəyişənlərdir.

Mətn daxil edilərkən, göstərilən giriş obyektindən başlayaraq massivin ardıcıl elementlərinə prosedur = TEXT mənasında giriş sətirinin ardıcıl simvollarına uyğun gələn tam qiymətlər təyin olunur. Prosedur = TEXT aşağıdakı kimi müəyyən edilir:<оператор текст>::=MƏTN (<строка>, <переменная с индексами>).

Daxiletmə prosedurunun identifikatoru OUTPUT sözüdür. Operatorun dörd növü var: nömrə çıxarma operatoru, mantiq operatoru, mətn çıxarma operatoru və yerləşdirmə operatoru. Çıxış bəyanatı OUTPUT identifikatorundan və ardınca mötərizə içərisində olan faktiki parametrlərin siyahısından ibarətdir. Birinci faktiki prosedur parametri çıxış kanalının nömrəsini, ikinci parametr çıxış məlumat formatını, qalanları isə çıxış obyektləridir. Məlumatı çap etmək üçün redaktə vasitələri var.

BASEY K. Dilin adı ingiliscə Beginners all Purpose Symbolic Instructioncode sözlərindən gəlir. Sadəliyi, öyrənmə asanlığı və müxtəlif problemlərin həlli üçün böyük imkanlar sayəsində geniş populyarlıq qazanmışdır. Bir çox minikompüterlərdə bu dil əsas danışıq dili kimi qəbul edilir. BASIC dili proqramlaşdırma dilidir. Həm yerinə yetirilən əməliyyatların sayına, həm də ilkin və nəticədə əldə edilən məlumatların miqdarına görə kiçik həcmli elmi-texniki məsələlərin həlli üçün əlverişlidir. Dilin ən mühüm xüsusiyyəti onun mərhələli həyata keçirilməsi üçün uyğunlaşdırılmış olmasıdır. Bu o deməkdir ki, BASIC proqramının mənbə mətnindəki hər dəyişiklikdən sonra bütün proqramı deyil, yalnız onun dəyişdirilmiş ifadələrini yenidən tərcümə etmək mümkündür. BASIC dilinin addım-addım tətbiqi mümkünlüyü təkrar tərcümə üçün kompüter vaxtının dəyərini azaltmağa imkan verir. Bu, öz növbəsində, sazlama dövrünü o qədər sürətləndirir ki, BASIC proqramlarının dialoq rejimində sazlanması məqsədəuyğun olur.

Yenidən nömrələnmiş BASIC dili operatorlarından ibarət böyük proqramları toplamaq imkanı ilə yanaşı, birbaşa əmrlər adlanan, yəni proqramçının konsolundan (teletaypdan) daxil edildikdən dərhal sonra yerinə yetirilən əmrlər verilir. Birbaşa əmr rejimində yalnız RUN-icranın işə salınması, LIST - mətnin çapı, SAVE - proqram mətninin kitabxanada saxlanması, BYE - sessiyanın sonu kimi inzibati direktivlərdən istifadə oluna bilər; ardıcıllıq nömrəsi olmadan daxil edilmiş hər hansı BASIC ifadəsi birbaşa komanda rejimində yerinə yetirilir. Bu, xüsusən proqramın icrası zamanı istənilən vaxt dəyişənlərin dəyərlərini çap etməyə və dəyişdirməyə imkan verir.

Xidmət sözü Fəaliyyət yerinə yetirildi

PRINT Dırnaq içərisində olan mesaj mətnini və ya arifmetik ifadənin dəyərini (qiymətləndirdikdən sonra) və ya dəyişənlərin qiymətlərini çap edin

INPUT Proqramçının konsolundan nömrələri daxil edin və onları göstərilən dəyişənlərə göndərin

LET Bir ifadənin dəyərini dəyişənə təyin edin

GO TO Verilən nömrə ilə ifadənin icrasına keçin

ƏGƏR Göstərilən şərt yerinə yetirilirsə, bu ifadədə göstərilən hərəkəti yerinə yetirmək lazımdır, əks halda növbəti ifadənin icrasına keçin.

DATA Data; bu bəyanat icra olunmur. O, debug məlumat blokunu (rəqəmlər) təsvir edir. Sazlama məlumat blokları dəsti sazlama məlumatlarının bir sırasını təşkil edir

END Proqramın sonu

Beləliklə, addım-addım kompilyasiya sxemi birbaşa əmr rejimi ilə birləşərək, dialoq rejimində BASIC proqramlarını effektiv şəkildə ayırmağa imkan verir.

BASIC proqramı hər biri funksiya sözü ilə başlayan ifadələrdən ibarətdir. Xidmət sözü operatorun növünü və onun icrası zamanı həyata keçirilən hərəkətlərin xarakterini müəyyən edir.

Bir çox məsələləri həll edərkən məlumatları cədvəl şəklində təqdim etmək lazımdır. BASIC dilinin bəzi operatorlarının imkanlarından istifadə etməklə müxtəlif formatlı cədvəllər formalaşdırmaq mümkündür.

21-ci əsr informasiyaya sahib olmağın istənilən sahədə ən mühüm rəqabət üstünlüyü olduğu bir dövrdür. Lakin nəzərdə tutulduğu şəxslər üçün başa düşülən dildə ifadə edilmədikdə və ya mənasını ünvana çatdıra bilən tərcüməçi olmasa, heç bir fayda gətirməz.

Hazırda yer üzündə 2000-ə yaxın insan yaşayır. Onların fərqləndirici xüsusiyyəti, ilk növbədə, dildir.

Bəşəriyyət danışıq dili (təbii) ilə yanaşı bir çox süni dillər yaratmışdır. Onların hər biri konkret problemlərin həlli üçün nəzərdə tutulub.

Bu cür işarə sistemlərinə rəsmi dillər daxildir, onların nümunələri aşağıda təqdim olunur.

Təriflər

Əvvəlcə dilin nə olduğunu müəyyən edək. Bu söz adətən insanlar və biliklər arasında əlaqə yaratmaq üçün istifadə olunan işarə sistemi kimi başa düşülür.

Əsası həm süni həm də təbii dillər- əlifba.

Sözlər və ifadələr yaratmaq üçün istifadə olunan simvollar toplusudur.

Dil aşağıdakılarla xarakterizə olunur:

  • istifadə olunan simvollar dəsti;
  • onlardan “sözlərin”, “ibarələrin” və “mətnlərin” tərtibi qaydalarını;
  • qurulmuş konstruksiyaların istifadəsi üçün qaydalar toplusu (sintaktik, praqmatik və semantik).

Təbii dillərin xüsusiyyətləri

Artıq qeyd edildiyi kimi, bütün dillər şərti olaraq süni və təbii bölünür. Onların arasında çoxlu fərqlər var.

Danışıq dilləri təbiidir. Onların xüsusiyyətləri, digərləri arasında:

  • əksər sözlərin qeyri-müəyyənliyi;
  • sinonimlərin və omonimlərin mövcudluğu;
  • eyni mövzu üçün bir neçə adın olması;
  • demək olar ki, bütün qaydalara istisnaların mövcudluğu.

Bütün bu xüsusiyyətlər təbii işarə sistemləri ilə rəsmi dillər arasındakı əsas fərqlərdir. Birmənalı olmayan söz və ifadələrin nümunələri hamıya məlumdur. Beləliklə, "efir" sözü kontekstdən asılı olaraq həm məzmun, həm də radio və ya televiziya yayımı mənasını verə bilər.

Danışıq dillərinin əsas funksiyaları bunlardır:

  • ünsiyyət;
  • idrak fəaliyyəti;
  • emosiyaların ifadəsi;
  • həmsöhbətə təsir (müxbir, əgər yazışmalardan danışırıqsa).

Süni dillərin xüsusiyyətləri

Süni dillər insanlar tərəfindən xüsusi məqsədlər üçün və ya müəyyən insan qrupları üçün yaradılır.

Süni dillərin əsas xüsusiyyətlərindən biri onların lüğətinin birmənalı tərifi, habelə onlara məna vermək və ifadələrin formalaşdırılması qaydalarıdır.

Formal dillər və qrammatikalar

İstər təbii, istərsə də süni dil ancaq müəyyən qaydalar toplusu olduqda mövcud ola bilər. Eyni zamanda, öyrənilən mövzu sahəsinin əlaqələrinin və xassələrinin ardıcıl, yığcam və dəqiq nümayişi təmin edilməlidir. Əgər onlar ciddi şəkildə tərtib olunubsa, o zaman dil deyirlər. Proqramlaşdırma dilləri bu cür işarə sistemlərinə nümunədir, baxmayaraq ki, onlar daha çox aralıq mövqe tuturlar (aşağıya bax).

Rəsmi işarə sistemlərinin qurulması sxemi aşağıdakı kimidir:

  • əlifba seçilir (ilkin simvollar dəsti);
  • dilin ifadələrinin (sintaksisinin) qurulması qaydaları müəyyən edilir.

Tətbiq sahəsi

Prosesdə formal məntiq, proqramlaşdırma və s.) istifadə olunur elmi araşdırma. Onlar biliyi təmsil etmək üçün təbii olanlardan daha yaxşıdır və daha obyektiv və dəqiq məlumat mübadiləsi vasitəsidir.

Formal dillərə bütün məlum riyazi və kimyəvi simvol sistemləri, Morze kodu, nota yazısı və s.

Bundan əlavə, rəsmi proqramlaşdırma dilləri geniş istifadə olunur. Onların sürətli inkişafı 20-ci əsrin ortalarında, kompüter texnologiyasının yaranması ilə əlaqədar olaraq başladı.

Formal məntiq dili

İstənilən proqramlaşdırma dilinin mərkəzində riyaziyyat dayanır. O, öz növbəsində formal məntiqin işarə sisteminə əsaslanır.

Bir elm olaraq məntiqi Aristotel yaratmışdır. O, həmçinin bu ifadələrə daxil olan anlayışların məzmunundan asılı olmayaraq, onların həqiqət dəyərini qoruyan ifadələrin transformasiyası qaydalarını işləyib hazırlamışdır.

Formal məntiq bəzi ifadələrin qeyri-müəyyənliyi ilə əlaqəli təbii dillərin “nöqsanları” ilə mübarizə aparır və s. Bu məqsədlə düşüncələrlə əməliyyatlar formal dilin əlamətləri olan hərəkətlərlə əvəz olunur. Bu, hər hansı qeyri-müəyyənliyi aradan qaldırır və ifadənin həqiqətini dəqiq müəyyən etməyə imkan verir.

Proqramlaşdırma dillərinin xüsusiyyətləri

Artıq qeyd edildiyi kimi, bəzi qeyd-şərtlərlə onları formal kimi təsnif etmək olar.

Sonuncularla bir çox sintaktik qaydalar, təbii olanlarla isə bəzi açar sözlər və konstruksiyalar birləşdirir.

Proqramlaşdırma dilini yaratmaq üçün etibarlı simvollar toplusunu və dilin düzgün proqramlarını və hər bir düzgün proqramın mənasını müəyyən etmək lazımdır. Əgər birinci vəzifəni rəsmiləşdirmə yolu ilə həll etmək olarsa, sonuncu halda bu yanaşmalar işləmir.

Proqramlaşdırma dillərində etibarlı simvollar toplusu klaviaturadan daxil edilə bilən simvollardır. Onlar ASCII kodlaşdırma cədvəlinin birinci hissəsidir.

qrammatikalar

Proqramlaşdırma dilləri, digərləri kimi, qrammatikaya malikdir. Bu termin təkliflərin tərtibi metodunun təsviri kimi başa düşülür. Qrammatikalar müxtəlif yollarla təsvir olunur. Proqramlaşdırma dilləri vəziyyətində, onlar iki növ simvol sətirlərinin ardıcıl cütləri ilə təyin olunan qaydalardır: sintaktik konstruksiyaları və semantik məhdudiyyətləri təyin edən. Qrammatikaları təyin edərkən əvvəlcə formal olaraq sintaktik konstruksiyaların qurulması qaydalarını, sonra isə təbii dillərdən birində semantik olanları təyin edirlər.

Qaydalar qrafik formada xüsusi diaqramlar vasitəsilə yazılır. Əvvəlcə bu yanaşma Paskal dilinin yaradılması zamanı tətbiq edilirdi. Ancaq sonra başqalarında geniş istifadə olunmağa başladı.

Proqramlaşdırma dillərinin təsnifatı

Hal-hazırda, "dialektlər" ilə birlikdə bir neçə min var. Onlar prosessual və deklarativ olaraq təsnif edilir. Birinci növ dillərdə məlumatların çevrilməsi onlarda həyata keçirilən hərəkətlərin ardıcıllığını, ikincisi isə münasibətləri təsvir etməklə müəyyən edilir. Digər təsnifatlar da var. Məsələn, proqramlaşdırma dilləri funksional, prosedur, obyekt yönümlü və məntiqi dillərə bölünür. Əgər məsələyə ciddi yanaşsaq, heç bir təsnifat obyektiv ola bilməz. Axı, proqramlaşdırma dillərinin əhəmiyyətli bir hissəsi eyni anda bir neçə növ formal sistemlərin imkanlarına malikdir. Vaxt keçdikcə kənarların daha da bulanması ehtimalı var.

İndi siz “Hansı rəsmi dilləri bilirsiniz?” sualına cavab verə biləcəksiniz. Alimlər müxtəlif praktik və həlləri mümkün etmək üçün onları təkmilləşdirməyə davam edirlər nəzəri tapşırıqlar, hazırda həll olunmayan hesab olunur.