Formallaşdırılmış proqramlaşdırma dilləri. Yüksək səviyyəli proqramlaşdırma dilləri. Proqramlaşdırma növləri Proqramlaşdırma dilləri insanla kompüter arasında ünsiyyət üçün xüsusi olaraq yaradılmış rəsmi dillərdir. Tətbiqi kompüter proqramı

Son 70 il ərzində proqramlaşdırma insan fəaliyyətinin geniş sahəsinə çevrilib, onun nəticələri praktiki əhəmiyyətinə görə nüvə fizikası və ya kosmik tədqiqatlar sahəsində ən son nəticələrlə kifayət qədər müqayisə olunur. Bu nəticələr əsasən yüksək səviyyəli alqoritmik dillərin yaranması və sürətli inkişafı ilə bağlıdır.

Pascal, C, Ada, Java, C++, C# və başqaları kimi müasir yüksək səviyyəli proqramlaşdırma dilləri hələ də həm sistem, həm də tətbiqi proqram təminatının hazırlanmasında iştirak edən proqramçılar üçün ən geniş yayılmış və güclü vasitədir. Yeni tapşırıqların və ehtiyacların ortaya çıxması ilə bu dillərin funksionallığı getdikcə daha təkmil versiyalar yaratmaqla daim genişlənir.

Proqramlaşdırma dillərinin inkişafının digər istiqaməti proqramçı olmayan istifadəçilər (texnoloqlar, konstruktorlar, iqtisadçılar və s.) üçün ixtisaslaşdırılmış (problem yönümlü) proqram sistemlərinin və mühitlərinin yaradılması ilə bağlıdır. Belə sistem və mühitlərə misal olaraq müxtəlif təyinatlı CAD, avtomatlaşdırılmış təlim sistemləri, distant təhsil sistemləri, iqtisadiyyatda ekspert və modelləşdirmə sistemləri və s. Bu cür sistemlərdə istifadə olunan müvafiq problem yönümlü dillərin məqsədi tez-tez onların adlarında əks olunur, məsələn: "Texnoloji avadanlıqların sxemlərini təsvir etmək üçün dil", "Təlim ssenarisini təsvir etmək üçün dil", "Vəziyyəti modelləşdirmə dili". və s.

Həm ümumi təyinatlı, həm də domenə xas proqramlaşdırma dillərinin ortaq bir cəhəti var – onlar

formal dillər. Rəsmi dil nədir? Ən ümumi formada bu suala aşağıdakı kimi cavab vermək olar: dil -çoxlu təkliflər var rəsmi dil - cümlələri müəyyən qaydalara uyğun qurulan dildir.

Cümlələr sözlərdən, sözlər isə simvollardan (hərflərdən) qurulur. Bütün icazə verilən simvollar toplusu adlanır əlifba sırası ilə dil. Proqramlaşdırma dillərində cümlələr adətən operatorlara (və ya göstərişlərə) uyğun gəlir və biz kompüter klaviaturasında əlifba simvollarını görürük.

Həm təbii dillər, həm də proqramlaşdırma dilləri sonsuz dəstlərdir. Proqramlaşdırma dilində qeyri-məhdud sayda proqram yazıla bilər.

Rəsmi dildə cümlələrin qurulması qaydalarını necə təyin etmək olar? Bu suala cavab verərkən iki mühüm anlayışdan başlayacağıq: sintaksissemantika dil.

Sintaksis dil düzgün cümlələrin və sözlərin strukturunu, proqramlaşdırma dillərində isə başqa şeylərlə yanaşı, proqram mətnlərinin icazə verilən strukturlarını müəyyən edir.

Rəsmi dillərin sintaksisini təsvir etməyin müxtəlif yolları var (dərsliyin ikinci fəsli onu təsvir etmək yollarına həsr olunub). Ən çox proqramlaşdırma dillərində istifadə olunur backus forması - Naura(BNF) və sintaksis diaqramları.

BNF Backus tərəfindən hazırlanmışdır və ilk dəfə 1963-cü ildə ALGOL-60 dilinin ciddi təsviri üçün istifadə edilmişdir. Bu forma həm bütövlükdə dilin strukturunu təsvir etmək, həm də ayrı-ayrı dil konstruksiyalarını (dilin alt çoxluqlarını) təsvir etmək üçün istifadə olunur. və onun elementləri - operatorlar, identifikatorlar, ifadələr, rəqəmlər və s.

Aşağıda onluq tam ədədlər üçün sintaksisi və "+" və "*" operatorlarını ehtiva edən arifmetik ifadələr üçün sintaksisi müəyyən edən BNF nümunələri verilmişdir.

BNF onluq tam ədədləri:

= 0|1|...|9

Arifmetik ifadələrin BNF:

:= () a

Yuxarıdakı ifadələrdə a hər hansı identifikatoru ifadə edir və ifadənin qurulduğu əlifbanın simvolu kimi qəbul edilir.

BNF-nin sol tərəfində müəyyən edilmiş parametrlərin adları bucaqlı mötərizədə yazılır. sintaktik kateqoriyalar(anlayışlar, vahidlər), “:=” simvolu “olur”, “bu”, “kimi müəyyən edilir”, “|” simvolu deməkdir. “və ya” deməkdir.

BNF-nin sağ hissəsi bu kateqoriyaların xüsusi dəyərlərinin qurulması üçün mümkün variantları, bu halda onluq ədədlərin və xüsusi arifmetik ifadələrin dəyərlərini müəyyənləşdirir. BNF də bu dəyərlərin tərtib olunduğu simvolların əlifbasını ehtiva edir. Onluq tam ədədlər üçün əlifba çoxluqdur (+,-, 0, 1,..., 9), ifadələr üçün isə çoxluqdur. (a, *, +, (,)}.

Sintaktik kateqoriyanın mənalarının qurulması prosesi aşağıdakılardan ibarətdir geri çəkilmə bu dəyərlər BNF qaydalarının sağ hissələrinin sola ardıcıl əvəzlənməsi ilə. Aşağıdakılar "-320" rəqəminin törəmələri və ifadəsidir "a+a*a" müvafiq BNF istifadə edərək:

BNF çox oxşardır formal qrammatikalar formal dillər nəzəriyyəsində istifadə olunur (bəzi müəlliflər onları müəyyən edir).

Məhz BNF-nin meydana çıxması formal dillər nəzəriyyəsinin sürətli inkişafına və onun proqramlaşdırma dillərinin inkişafı və tərcüməçilərin dizaynının tətbiqi problemlərinə tətbiqinə təkan verdi.

Əgər baxılan BNF-də qaydaların sol tərəfindən hər bir sintaktik kateqoriya ilə işarələnmişdir A, BFROM müvafiq olaraq və simvol yerinə:= istifadə edin -onda aşağıdakı formalar alınacaq:

Onluq tam ədədlər üçün:

A->B+B-B B^>CBC C->0 | 11... | 9

Arifmetik ifadələr üçün:

A^A+BB

B->B*SS

C^>(A)a

Qaydalar belə yazılır formal qrammatikalar. Sintaktik kateqoriyaları bildirən simvollar, bu halda, B, C formal qrammatikada deyilir qeyri-terminal simvollar və əlifbanın simvollarıdır terminal.

Təcrübədə proqramlaşdırma dilinin qrammatikasını “birinci yaxınlaşma”da əldə etdikdən sonra onun xassələrini araşdırmaq, bəzi hallarda isə bəzi transformasiyaları yerinə yetirmək lazımdır. Bu, əsasən qrammatikanı müvafiq tərcüməçinin qurulması üçün əlverişli formaya gətirmək ehtiyacı ilə bağlıdır. Bu çevrilmələrin həyata keçirilməsi prosesində formal baxımdan BNF əlifbasının hansı konkret sintaktik kateqoriyalarını və simvollarını ehtiva etməsinin əhəmiyyəti yoxdur. Ona görə də bu mərhələdə adətən formal qrammatikaya keçir və formal dillər nəzəriyyəsinin müvafiq üsullarından istifadə olunur. Eyni zamanda, BNF formal qrammatikalarla tamamilə eyniləşdirilməməlidir. Formal dillər nəzəriyyəsində qrammatikanın tərifi daha ümumidir. Xüsusilə, təsvir etmək üçün istifadə edilə bilər kontekstdən asılılıqlar, proqramlaşdırma dillərinin inkişafında həmişə qarşısını almaq mümkün olmayan və BNF istifadə edərək təsvir edilə bilməyən.

Proqramlaşdırma dillərinin qrammatikasının xarakterik xüsusiyyəti onlarda rekursiyanın olmasıdır. rekursivlik o deməkdir ki, bəzi sintaktik kateqoriyanın tərifi müəyyən edilmiş kateqoriyanın özünü ehtiva edir (bu, açıq rekursiya adlanır). Məsələn, nəzərdən keçirilən BNF-də kateqoriyalar üçün təriflər sağ tərəfdə bu kateqoriyaların özlərini ehtiva edir. Rekursiya - proqramlaşdırma dillərinin qrammatikalarının demək olar ki, qaçılmaz xüsusiyyətidir ki, bu da onları sonsuz etməyə imkan verir. Eyni zamanda, daha sonra müzakirə ediləcək bəzi rekursiya növləri müvafiq tərcüməçilərin hazırlanması prosesini əhəmiyyətli dərəcədə çətinləşdirir.

Yuxarıda qeyd etdiyimiz bir dilin sintaksisini sintaksis diaqramlarının köməyi ilə təsvir etməyin başqa bir yolu üzərində qısaca dayanaq. Bəzi müəlliflər dil standartını təsvir edərkən daha aydın olduğuna görə bu metoda üstünlük verirlər. Sintaksis diaqramlarının nümunələri bir çox proqramlaşdırma kitablarında tapıla bilər (məsələn, ). Qeyd edək ki, hər iki təsvir metodu - həm BNF, həm də sintaktik diaqramlar ekvivalentdir və siz həmişə bir təsvir metodundan digərinə keçə bilərsiniz.

İndi konsepsiyanı nəzərdən keçirin dilin semantikası.Əgər dilin sintaksisi onun düzgün cümlə və mətnlərinin quruluşunu müəyyən edirsə, onların mənalarının düzgünlüyünü semantika müəyyən edir. Öz növbəsində mənanın düzgünlüyü cümləni təşkil edən sözlərin mənalarından asılıdır. Məsələn, təbii dildə cümlə sintaksisi kimi müəyyən edilirsə

onda müxtəlif mənalı cümlələr toplusu qura bilərsiniz. Məsələn, “maşın sürür” və “maşın düşünür” cümlələri sintaksis baxımından düzgündür. Bununla belə, birinci cümlə düzgün məna daşıyır, ikincinin mənasız olduğunu söyləmək olar. Beləliklə, semantika mənalar toplusunu və cümlələr (mətnlər) və mənalar arasında yol verilən uyğunluqları müəyyən edir.

Bundan əlavə, dilin semantikası bu dildə təsvir olunan obyektlərin xüsusiyyətlərindən asılıdır. Əgər nəzərdən keçirilən nümunədə avtomobil optimal rejimləri və hərəkət marşrutlarını hesablamaq üçün proqramları olan kompüterlə təchiz olunsa, ikinci cümlə artıq mənasız görünməyəcəkdir.

Eynilə, proqramlaşdırma dillərində sintaktik cəhətdən yaxşı formalaşmış təyinat operatoru

a 10,5 (a = 10,5) və b yalan (b = yalan) olarsa, semantik cəhətdən yanlış olacaqdır.

Proqramlaşdırma dillərinin semantikasının rəsmi təsviri sintaksisin təsvirindən daha çətin bir iş oldu. Proqramlaşdırma dillərinin həyata keçirilməsində riyazi metodların tətbiqinə həsr olunmuş əsərlərin əksəriyyəti sintaksisin təsviri və təhlil üsullarının qurulması məsələlərini dəqiq əhatə edir. Bu sahədə kifayət qədər vahid nəzəriyyə və metodologiya inkişaf etmişdir. Bununla yanaşı, dilin semantikası və semantik təhlil hələ də bir çox tədqiqatların mövzusudur.

Proqramlaşdırma dilinin semantikasının bir çox aspektlərini ümumi, qeyri-rəsmi xarakter daşıyan semantik konvensiyaların siyahısı kimi təsvir etmək olar. Məsələn, proqramçılar “blokdakı hər identifikator bir dəfə elan edilir”, “dəyişən istifadə edilməzdən əvvəl müəyyən edilməlidir” və s. kimi konvensiyalarla tanışdır.

Formal dillər nəzəriyyəsinin semantika və semantik təhlil sahəsində uğurlu tətbiqinə misal olaraq, bir dilin təsvirində semantik razılaşmaları nəzərə almağa imkan verən tərcümə qrammatikalarının atributlarını göstərmək olar. proqramın tərcüməsi zamanı onlara riayət olunmasına nəzarət etmək.

Proqramlaşdırma dillərinin gələcək inkişafı perspektivləri ilə bağlı proqnozlara gəlincə, diametral əks olanlara qədər kifayət qədər geniş fikirlər mövcuddur. Bəzi müəlliflər hesab edirlər ki, dillərin hər biri onu müəyyən bir proqramlaşdırma sahəsi üçün rahat və cəlbedici edən öz semantik xüsusiyyətlərinə malikdir (məsələn, Prolog və Lisp süni intellekt problemlərinin həllinə yönəlib; Fortran bu sahədə ən effektivdir. hesablama məsələlərinin həlli;Cobol - iqtisadi hesablamalar üçün istifadə olunur və s.). Buna görə, xüsusi xüsusiyyətlərə malik olan bütün yeni dilləri yaratmalı və ya mövcud versiyaları vaxtaşırı yeniləməlisiniz və universal bir dil yaratmağa çalışmamalısınız. Bu nöqteyi-nəzəri təsdiqləmək üçün universal dil yaratmaq üçün bütün iddialı layihələrin iflasa uğradığı arqumenti irəli sürülür (ADAiPL-1 dillərinin inkişafı ilə bağlı yerinə yetirilməmiş ümidləri xatırlatmaq kifayətdir).

Müəlliflərin başqa bir hissəsi hesab edir ki, ilk proqramlaşdırma dillərinin - Fortran, Algol və s. standartlarının nəşrindən bəri - 60-cı illərdə. 20-ci əsrdə dillərin "sabitləşməsi" o mənada baş verdi ki, müxtəlif dillərdə məqsədlərinə görə oxşar olan dil konstruksiyaları lüğət və sintaksisdəki fərqlərə baxmayaraq, praktiki olaraq eyni semantik əsasa malikdir. Buna görə də, bu ümumi semantik bazanı formal olaraq müəyyən etmək mümkün olan kimi, artıq ənənəvi mənada proqramlaşdırma dili deyil, semantik strukturların blankları olacaq universal dil yaratmağa başlamaq mümkün olacaq. Proqram bu konstruksiyaların toplusu kimi təqdim olunacaq və mətn redaktoru öz yerini struktur redaktoruna verəcək. Bu yanaşmanın qismən həyata keçirilməsinə misal olaraq Delphi, C++ Builder və s. kimi vizual proqramlaşdırma mühitləri verilmişdir.

Son

Başlamaq

Təkrarlamaq

Başlamaq

Pseudo kodlar

Pseudocode alqoritmləri vahid şəkildə yazmaq üçün nəzərdə tutulmuş qeydlər və qaydalar sistemidir. Təbii və rəsmi dil arasında aralıq mövqe tutur.

Bir tərəfdən adi təbii dilə yaxındır, ona görə də alqoritmlər düz mətn kimi orada yazıla və oxuna bilər. Digər tərəfdən, psevdokodda bəzi formal konstruksiyalar və riyazi simvolizm istifadə olunur ki, bu da alqoritmin qeydini ümumi qəbul edilmiş riyazi qeydlərə yaxınlaşdırır.

Pseudocode formal dillərə xas olan əmrlərin yazılması üçün ciddi sintaktik qaydaları qəbul etmir ki, bu da dizayn mərhələsində alqoritmin yazılmasını asanlaşdırır və mücərrəd icraçı üçün nəzərdə tutulmuş daha geniş əmrlər toplusundan istifadə etməyə imkan verir. Bununla belə, psevdokodda adətən formal dillərə xas olan bəzi konstruksiyalar var ki, bu da psevdokodda yazmaqdan formal dildə alqoritm yazmağa keçidi asanlaşdırır. Xüsusilə, psevdokodda, eləcə də rəsmi dillərdə mənası birdəfəlik müəyyən edilən köməkçi sözlər var. Onlar çap olunmuş mətndə qalın şriftlə yazılmış və əlyazma mətnində altı xətt çəkilmişdir. Psevdokodun vahid və ya formal tərifi yoxdur, ona görə də xidməti sözlər dəsti və əsas (əsas) strukturları ilə fərqlənən müxtəlif psevdokodlar mümkündür. Nümunə olaraq, alqoritmin psevdokodlarından birinə giriş veririk:

alqoritm Evklid alqoritmi;

sağol birinci rəqəm ikinciyə bərabər deyil

əgərədədlər bərabərdir

sonra dayan hamısı;

əks halda iki ədəddən böyüyünü təyin etmək;

h Böyük ədədi böyük və kiçik ədədlər arasındakı fərqə dəyişdirin

son;

cavab olaraq birinci rəqəmi götürün

Bu alqoritmi daha sadə şəkildə yazmaq olar, lakin əsas mümkün psevdokod konstruksiyalarını nümayiş etdirmək üçün məhz belə bir qeyd verilmişdir. Öz xüsusiyyətlərinə görə, psevdokodlar, yuxarıda təsvir edilən digər yazı alqoritmləri kimi, insan yönümlüdür.

Yuxarıda qeyd olundu ki, alqoritmi şifahi formada, diaqram şəklində və ya psevdokodla yazarkən, əmrlərin göstərilməsi zamanı müəyyən özbaşınalığa yol verilir. Eyni zamanda, belə bir qeyd o qədər dəqiqdir ki, insana məsələnin mahiyyətini başa düşməyə və alqoritmi icra etməyə imkan verir.

Lakin praktikada alqoritmlərin icraçısı kimi xüsusi avtomatlardan - elektron hesablama maşınlarından (kompüterlərdən) istifadə olunur. Buna görə də kompüterdə icra üçün nəzərdə tutulmuş alqoritm kompüter tərəfindən “anlaşılan” dildə yazılmalıdır. Və burada onların ifaçısının özbaşına şərhinə yer qoymadan əmrlərin dəqiq qeydinə ehtiyac ön plana çıxır. Buna görə də alqoritmin yazılması üçün dil rəsmiləşdirilməlidir. Belə bir dil deyilir proqramlaşdırma dili , və bu dildə alqoritmin qeydi üçün proqram kompüter.


Proqramlaşdırma diliəlifbanın, konstruksiyaların yazı qaydalarının (sintaksis) və konstruksiyaların şərhi qaydalarının (semantika) birləşməsindən ibarət formallaşdırılmış dildir.

Hal-hazırda kompüterlərin müxtəlif tətbiq sahələri üçün, yəni kompüterlərin köməyi ilə həll olunan müxtəlif sinif tapşırıqları üçün nəzərdə tutulmuş bir neçə yüz proqramlaşdırma dili mövcuddur. Bu dillər dilin müəyyən bir kompüterdən asılılıq dərəcəsini nəzərə alaraq müxtəlif səviyyələrə görə təsnif edilir.

Proqramlaşdırma kompüter proqramları yaratmağa imkan verən bütöv bir elmdir. Buraya çoxlu sayda müxtəlif əməliyyatlar və vahid proqramlaşdırma dilini təşkil edən alqoritmlər daxildir. Beləliklə, bu nədir və proqramlaşdırma dilləri nədir? Məqalədə cavablar, həmçinin proqramlaşdırma dillərinin ümumi siyahısı verilmişdir.

Proqramlaşdırma dillərinin yaranması və dəyişmə tarixi kompüter texnologiyasının inkişaf tarixi ilə yanaşı öyrənilməlidir, çünki bu anlayışlar birbaşa əlaqəlidir. Proqramlaşdırma dilləri olmadan kompüterin işləməsi üçün hər hansı bir proqram yaratmaq qeyri-mümkün olardı, bu isə o deməkdir ki, kompüterlərin yaradılması mənasız bir məşqə çevriləcəkdir.

İlk maşın dili 1941-ci ildə Analitik Mühərrikin ixtiraçısı Konrad Zuse tərəfindən icad edilmişdir. Bir az sonra, 1943-cü ildə Howard Aiken maşın kodu səviyyəsində təlimatları oxuya bilən Mark-1 maşınını yaratdı.

1950-ci illərdə proqram təminatının hazırlanmasına aktiv tələbat var idi və maşın dili böyük həcmdə kodlara tab gətirə bilmədi, ona görə də kompüterlərlə yeni ünsiyyət üsulu yaradıldı. "Assembler" maşın təlimatlarını əvəz edən ilk mnemonik dildir. İllər keçdikcə proqramlaşdırma dillərinin siyahısı yalnız artır, çünki kompüter texnologiyasının əhatə dairəsi daha da genişlənir.

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

Hal-hazırda 300-dən çox proqramlaşdırma dili mövcuddur. Onların hər biri öz xüsusiyyətlərinə malikdir və müəyyən bir vəzifə üçün uyğundur. Bütün proqramlaşdırma dillərini bir neçə qrupa bölmək olar:

  • Aspekt yönümlü (əsas ideya proqram modullarının səmərəliliyini artırmaq üçün funksionallığın ayrılmasıdır).
  • Struktur (proqramın ayrı-ayrı bloklarının iyerarxik strukturunun yaradılması ideyasına əsaslanır).
  • Məntiqi (riyazi məntiq aparatının nəzəriyyəsi və həll qaydaları əsasında).
  • Obyekt yönümlü (belə proqramlaşdırmada artıq alqoritmlərdən deyil, müəyyən sinfə aid olan obyektlərdən istifadə olunur).
  • Çoxparadiqma (bir neçə paradiqmanı birləşdirir və bu və ya digər halda hansı dildən istifadə edəcəyinə proqramçı özü qərar verir).
  • Funksional (əsas elementlər ilkin məlumatların hesablamalarının nəticələrindən asılı olaraq dəyəri dəyişən funksiyalardır).

Proqramlaşdırma başlayanlar üçün

Çox adam soruşur ki, proqramlaşdırma nədir? Əsasən, bu, kompüterlə əlaqə qurmağın bir yoludur. Proqramlaşdırma dilləri sayəsində biz xüsusi proqramlar və ya proqramlar yaradaraq müxtəlif qurğular üçün xüsusi tapşırıqlar təyin edə bilərik. Bu elmi ilkin mərhələdə öyrənərkən ən əsası uyğun (sizin üçün maraqlı) proqramlaşdırma dillərini seçməkdir. Yeni başlayanlar üçün siyahı aşağıdadır:

  • Basic 1964-cü ildə icad edilmişdir, yüksək səviyyəli dillər ailəsinə aiddir və tətbiqi proqramların yazılması üçün istifadə olunur.
  • Python ("Python") sadə, oxunaqlı sintaksisi sayəsində öyrənmək olduqca asandır, lakin üstünlüyü ondan ibarətdir ki, ondan həm adi masaüstü proqramlar, həm də veb proqramlar yaratmaq üçün istifadə edilə bilər.
  • Paskal ("Paskal") - ən qədim dillərdən biri (1969) tələbələri öyrətmək üçün yaradılmışdır. Onun müasir modifikasiyası ciddi yazı və struktura malikdir, lakin "Paskal" intuitiv səviyyədə başa düşülən tamamilə məntiqi bir dildir.

Bu, yeni başlayanlar üçün proqramlaşdırma dillərinin tam siyahısı deyil. Çox sayda sintaksis var ki, onları başa düşmək asandır və yaxın illərdə mütləq tələb olunacaq. Hər kəsin özü üçün maraqlı olacaq istiqaməti müstəqil seçmək hüququ var.

Yeni başlayanlar xüsusi alətlər sayəsində proqramlaşdırmanın və onun əsaslarının öyrənilməsini sürətləndirmək imkanı əldə edirlər. Əsas köməkçi proqramlar və tətbiqlər üçün inteqrasiya olunmuş Visual Basic inkişaf mühitidir ("Visual Basic" həm də 1970-ci illərin Basic dilinin üslubunu miras almış proqramlaşdırma dilidir).

Proqramlaşdırma dili səviyyələri

Kompüterlərdə problemlərin həlli üçün proqramlar və alqoritmlər yaratmaq, təsvir etmək üçün nəzərdə tutulmuş bütün rəsmiləşdirilmiş dillər iki əsas kateqoriyaya bölünür: aşağı səviyyəli proqramlaşdırma dilləri (siyahı aşağıda verilmişdir) və yüksək səviyyəli dillər. Onların hər biri haqqında ayrıca danışaq.

Aşağı səviyyəli dillər prosessorlar üçün maşın təlimatları yaratmaq üçün nəzərdə tutulmuşdur. Onların əsas üstünlüyü ondan ibarətdir ki, onlar mnemonic notationdan istifadə edirlər, yəni sıfırlar və birlər ardıcıllığı əvəzinə (ikilik say sistemindən) kompüter ingilis dilindən mənalı qısaldılmış sözü xatırlayır. Ən məşhur aşağı səviyyəli dillər "Assembler" (bu dilin bir neçə alt növü var, hər biri çoxlu ümumi cəhətlərə malikdir, lakin yalnız əlavə direktivlər və makrolar dəsti ilə fərqlənir), CIL (.Net-də mövcuddur) platforması) və JAVA Bytecode.

Yüksək səviyyəli proqramlaşdırma dilləri: siyahı

Yüksək səviyyəli dillər tətbiqlərin rahatlığı və səmərəliliyi üçün nəzərdə tutulmuşdur, onlar aşağı səviyyəli dillərin tam əksidir. Onların fərqləndirici xüsusiyyəti proqramların strukturlarını və alqoritmlərini yığcam və qısa şəkildə təsvir edən semantik konstruksiyaların olmasıdır. Aşağı səviyyəli dillərdə onların maşın kodunda təsviri çox uzun və anlaşılmaz olardı. Yüksək səviyyəli dillər isə platformadan müstəqildir. Bunun əvəzinə kompilyatorlar tərcüməçi funksiyasını yerinə yetirirlər: onlar proqram mətnini elementar maşın təlimatlarına çevirirlər.

Proqramlaşdırma dillərinin aşağıdakı siyahısı: C ("C"), C # ("C-sharp"), "Fortran", "Pascal", Java ("Java") - ən çox istifadə olunan yüksək səviyyəli sintaksislər sırasındadır. O, aşağıdakı xüsusiyyətlərə malikdir: bu dillər mürəkkəb strukturlarla işləyir, sətir məlumat növlərini və fayl giriş/çıxış əməliyyatlarını dəstəkləyir, həmçinin oxunaqlılıq və başa düşülən sintaksis sayəsində işləmək daha asan olması üstünlüyünə malikdir.

Ən çox istifadə olunan proqramlaşdırma dilləri

Prinsipcə, istənilən dildə proqram yaza bilərsiniz. Sual budur ki, o, səmərəli və qüsursuz işləyəcəkmi? Buna görə də müxtəlif problemlərin həlli üçün ən uyğun proqramlaşdırma dilləri seçilməlidir. Populyarlıq siyahısını aşağıdakı kimi ümumiləşdirmək olar:

  • OOP dilləri: Java, C++, Python, PHP, VisualBasic və JavaScript;
  • struktur dillər qrupu: Basic, Fortran və Pascal;
  • çoxparadiqma: C#, Delphi, Curry və Scala.

Proqramların və tətbiqlərin əhatə dairəsi

Bu və ya digər proqramın yazıldığı dilin seçimi əsasən onun tətbiqi sahəsindən asılıdır. Beləliklə, məsələn, kompüter avadanlığının özü ilə işləmək üçün (sürücülərin yazılması və dəstəkləyici proqramlar) ən yaxşı seçim əsas proqramlaşdırma dillərinə daxil olan C ("C") və ya C ++ olacaqdır (siyahıya baxın yuxarıda). Mobil proqramların, o cümlədən oyunların inkişafı üçün Java və ya C # ("C-sharp") seçməlisiniz.

Hansı istiqamətdə işləməyinizə hələ qərar verməmisinizsə, sizə C və ya C++ ilə öyrənməyə başlamağı tövsiyə edirik. Onların çox aydın sintaksisi, siniflərə və funksiyalara aydın struktur bölməsi var. Bundan əlavə, C və ya C++ bilməklə istənilən digər proqramlaşdırma dilini asanlıqla öyrənə bilərsiniz.

Dəmir yolu dili haqqında “Qatar “Krasnıye Zori” platformasından dayanmadan keçəcək”. Qeyd edək ki, sürücü “dur” feli deyil, “dayan” isimindən istifadə edib. Dayanma dəmiryol işçiləri üçün çox vacib anlayışdır. Qatar "dayanacaq" ola bilər, amma "dayanacaq" ola bilməz. Turçin [Turchin 2000] də oxşar misal gətirərək dar peşəkar məqsədlər üçün istifadə olunan dilin rəsmiləşdirilməsinə işarə edir.

Formallaşdırılmış dil aşağıdakı kimi müəyyən edilə bilər [Turchin 2000]. Reallığın iki mərtəbəli dil modelini nəzərdən keçirək (şək. 4. 4). Si vəziyyəti Li dil obyekti ilə kodlanır. L1 obyekti si-nin adıdır. Bir müddət sonra S1 vəziyyəti S2 vəziyyəti ilə əvəz olunur. Bəzi dil fəaliyyətini həyata keçirərək, L1-i başqa bir obyektə - L2-yə çeviririk. Modelimiz düzgündürsə, L2 S2-nin adıdır. Nəticədə S2 real vəziyyəti bilmədən L2 dil obyektinin şifrəsini açaraq bu haqda təsəvvür əldə edə bilərik. L1->L2 transformasiyasının yerinə yetirilməsi dilin rəsmiləşib-dolaşmayacağını müəyyən edir.

    Formallaşdırılmış dil üçün L1->L2 çevrilməsi müstəsna olaraq orada iştirak edən və dilin semantikasında onlara uyğun gələn dil təsvirlərindən asılı olmayan Li dil obyektləri ilə müəyyən edilir.

    Qeyri-rəsmi dil üçün Li dil obyektinin çevrilməsinin nəticəsi təkcə Li təmsilinin növündən deyil, həm də onun insan başında əmələ gətirdiyi təmsil si-dən, daxil olduğu assosiasiyalardan asılıdır.

İnsan ən qeyri-formal dilləri dərk edə bilir. Kompüter isə başa düşmür, daha dəqiq desək, proqramı qeyri-rəsmi dildə icra edə bilmir. Məhz buna görə də proqramlaşdırmanın öyrənilməsində həmişə formal alqoritmik proqramlaşdırma dilləri mühüm yer tutur.

Qeyri-rəsmi olanın rəsmiləşdirilməsi haqqında Formallaşdırılmamışın rəsmiləşdirilməsi qeyri-rəsmi prosesdir. Baxmayaraq ki, məntiqçilər və hərbçilər bununla mübarizə aparmağa çalışırlar.

Sevgi formulu haqqında Sevgi düsturu rəsmiləşdirməyə rəvac vermir. Ən yaxşı halda, o, yalnız çox kobud bir model kimi təqdim edilə bilər.

Modelləşdirmə dilləri

Modelləşdirmə dili - modellərin qurulmasını (reallığın sadələşdirilmiş təsviri), o cümlədən onların vizuallaşdırılması və struktur və davranışın müəyyənləşdirilməsini müəyyən edən qaydalar toplusu. Modelləşdirmə dili daxildir:

    model elementləri - modelləşdirmənin fundamental anlayışları və onların semantikası;

    notation - modelləşdirmə elementlərinin vizual təsviri;

    istifadə təlimatı - domen modellərinin qurulması çərçivəsində elementlərin istifadəsi qaydaları.

Proqramlaşdırma dilləri və inteqrasiya olunmuş mühitlər

    İlk FRAMEWORK inteqrasiya mühitinin yaradıcısının fikrincə, inteqrasiya olunmuş mühit elə bir proqramdır ki, istifadəçi onu iş gününün əvvəlində işə salaraq, onda işləmək üçün lazım olan bütün resursları tapır və buna görə də inteqrasiya olunmuş mühitdən çıxmır. iş gününün sonuna qədər. Təbii ki, bu tərif çox düzgün deyil və vəziyyəti müəyyən qədər ideallaşdırır, lakin onun ümumi mənası kifayət qədər aydındır. İnteqrasiya edilmiş mühitlərin əsas xüsusiyyəti yüksək dərəcədə interaktivlikdir. Bu, müxtəlif proqram resurslarını vahid bir bütövlükdə birləşdirməklə əldə edilir, buna görə də ad. Belə ki, proqramlaşdırma dilinin kompilyatorunun inteqrasiya olunmuş mühiti (bu proqramlaşdırma dilinin mətnindən icra olunan proqram yaradan proqram) adətən mətn redaktorunu və kompilyasiya xətalarının diaqnostikası sistemi olan kompilyatorun özünü ehtiva edir. Bundan əlavə, adətən, o, həm də sazlayıcıya malikdir - bu dilin tərcüməçisi, proqramı sətir-sətir yerinə yetirir və bir sıra digər xüsusi xüsusiyyətlərə malikdir. Fəal inkişaf edən sahələrdən biri olan vizual dizayn tamamilə inteqrasiya olunmuş mühitin imkanlarından istifadəyə əsaslanır. İstifadəçi öz proqramı üçün lazım olan proqramlaşdırma dili obyektlərini interaktiv şəkildə seçir və onlar arasında əlaqə qurur. Visual BASIC (Microsoft), həmçinin Object PASCAL (Delphi və Kylix, Borland mühitləri) kimi dillərin populyarlığı təsadüfi deyil. Hətta BASIC-dən başqa digər proqramlaşdırma dillərini bilməyən və Windows-da heç vaxt proqramlaşdırmayan təcrübəsiz bir proqramçı belə iki və ya üç gün ərzində Visual BASIC-dən istifadə edərək Windows altında işləyən proqramlar yarada bilər. Ancaq əvvəllər Windows altında proqramlaşdırmayan yüksək səviyyəli proqramçı, C++ istifadə edərək, eyni proqramı yaratmaq üçün çox vaxt həftələr, hətta aylar sərf etməli olur. Düzdür, Visual BASIC-in bir sıra əhəmiyyətli məhdudiyyətləri var. Vizual dizayn mühitlərinin köməyi ilə siz klaviaturada bir sətir kod yazmadan çox mürəkkəb proqramlar yarada bilərsiniz. Bununla belə, ənənəvi prosedur proqramlaşdırma dillərinə əsaslanan bütün proqramlar eyni çatışmazlıqdan əziyyət çəkir. Onlar üçün icra olunan kod bir şeydir, proqram tərəfindən işlənmiş məlumatlar isə tamam başqadır. Həqiqətən, proqram kodu EXE uzantısı olan bir faylda yerləşir və məlumatlar ya xüsusi məlumat fayllarında (adətən kompüterin daxili təsvirində mətn və ya ikili formada) olur və ya klaviaturadan və ya başqa bir proqramdan daxil edilir. xarici cihaz. İndi sual verək: istifadəçi icra olunan proqrama proqram mətninə “əlavə” sayıla biləcək məlumatı verməlidirsə necə? Məsələn, biz ekranda funksiya qrafikinin qurulmasını istəyirik və belə bir proqramda biz bütün lazımi xidmət imkanlarını təqdim edirik. Lakin funksiyanın düsturunu istifadəçi özü təyin etməlidir və onun nə olacağı əvvəlcədən məlum deyil. Aydındır ki, bu cür vəzifələri yalnız tərcüməçi sisteminin köməyi ilə həll etmək olar. Ancaq "hər şeyi ödəməlisən". Kompilyator proqramın mətnini kompilyator proqramı olmadan işləyə bilən icra edilə bilən koda çevirir. Tərcümə tipli dillər əsasında yaradılmış proqramlar yalnız tərcüməçi proqramının nəzarəti altında icra oluna bilər. Onlar həmçinin tərtib edilənlərdən daha yavaşdırlar, çünki şərh etmək üçün əlavə vaxt tələb olunur. Ancaq bir çox hallarda bu, əhəmiyyət kəsb etmir.

Yaradılma tarixi: 1963 Təsir: PROFT Yazmaq: tipsiz Dialektlər:

    Applesoft BASIC

    Commodore BASIC

    Microsoft BASIC

Tətbiqlər və versiyalar:

  • Javascript-də Applesoft BASIC Tərcüməçisi

    Atari Microsoft BASIC I/II

  • Commodore BASIC

    Galaxia BASIC

    Microsoft Visual Basic

  • Proqramlar üçün Visual Basic

BASIC (BASIC - Beginner's All-purpose Symbolic Instruction Code - yeni başlayanlar üçün simvolik təlimatlar üçün universal kod; ingilis dili basic - əsas, əsas) - yüksək səviyyəli proqramlaşdırma dilləri ailəsi.

BASIC 1963-cü ildə Dartmut Kollecinin professorları Con Kemeny və Tomas Kurtz tərəfindən yaradılmış və kollec tələbələri komandası tərəfindən onların rəhbərliyi altında həyata keçirilmişdir. Zaman keçdikcə, digər dialektlər meydana çıxmağa başladıqca, bu "orijinal" dialekt Dartmut BASIC kimi tanındı.

BASIC elə qurulmuşdur ki, tələbələr vaxt mübadiləsi terminallarından istifadə edərək proqramlar yaza bilsinlər. O, köhnə dillərin mürəkkəbliyi ilə bağlı problemlərin həlli kimi yaradılmış, daha “sadə” istifadəçilər üçün nəzərdə tutulmuşdur, proqramların sürəti o qədər də maraqlı deyil, sadəcə olaraq öz problemlərini həll etmək üçün kompüterdən istifadə etmək bacarığıdır.

Dilin dizaynında aşağıdakı səkkiz prinsipdən istifadə edilmişdir:

    yeni başlayanlar üçün istifadəsi asan;

    ümumi təyinatlı proqramlaşdırma dili olmaq;

    təcrübəli proqramçılar üçün mövcud olan funksionallığı genişləndirmək imkanı təmin etmək;

    interaktiv olmaq;

    aydın səhv mesajları təqdim etmək;

    kiçik proqramlarda tez işləmək;

    aparatın işini başa düşməyi tələb etmir;

    istifadəçi ilə əməliyyat sistemi arasında vasitəçi olmaq.

Dil qismən Fortran II və qismən Algol-60-a əsaslanırdı və əlavələr onu vaxt mübadiləsi, mətnin işlənməsi və matris arifmetikası üçün uyğunlaşdırdı. BASIC əvvəlcə GE-265-də çoxlu terminal dəstəyi ilə həyata keçirildi. Populyar inancın əksinə olaraq, yarandığı dövrdə o, tərtib edilmiş bir dil idi. Bu dil Altair 8800 mikrokompüterində görünməsi ilə ümumi populyarlıq qazandı.Bir çox proqramlaşdırma dilləri kiçik yaddaşa sığmaq üçün çox çətin idi. Kağız lenti, audio kaset kimi yavaş mediası olan və uyğun mətn redaktoru olmayan maşınlar üçün BASIC kimi kiçik bir dil bir lütf idi. 1975-ci ildə Microsoft (o zaman cəmi iki idi - Bill Gates və Paul Allen, Monte Davidovun iştirakı ilə) Altair BASIC-i buraxdı. CP / M əməliyyat sistemi üçün uzun müddət dilin inkişafını təyin edən BASIC-80 dialekti yaradılmışdır. Bu dövrdə BASIC-in bir neçə yeni versiyaları yaradılmışdır. Microsoft MS-DOS/PC-DOS üçün BASIC-in bir neçə versiyasını, o cümlədən BASICA, GWBASIC və Quick BASIC (QBASIC) satdı.Borland 1985-ci ildə Turbo BASIC 1.0-ı buraxdı (onun varisləri sonradan PowerBASIC adı altında başqa şirkət tərəfindən satıldı). Ev kompüterlərində müxtəlif BASIC uzantıları meydana çıxdı, bunlara adətən qrafika, səslə işləmək, DOS əmrlərini yerinə yetirmək üçün alətlər, həmçinin strukturlaşdırılmış proqramlaşdırma alətləri daxildir. Bəzi digər dillər tamamilə fərqli bir sistemin qurulduğu əsas kimi tanınmış BASIC sintaksisindən istifadə etdilər (məsələn, GRASS-ə baxın). Bununla belə, 80-ci illərin sonlarından başlayaraq, yeni kompüterlər daha mürəkkəbləşdi və BASIC-i proqramlaşdırma üçün daha əlverişli etməyən funksiyalar (məsələn, qrafik istifadəçi interfeysi) təmin etdi. Çox sayda versiyanın hələ də istifadə olunduğu və satılmasına baxmayaraq, BASIC yer itirməyə başladı. Microsoft-un Visual Basic-in gəlişi ilə BASIC ikinci həyatı aldı. Microsoft Windows platformasında ən çox istifadə olunan dillərdən birinə çevrildi. Daha sonra WordBasic adlı variant yaradıldı, MS Word proqramında Word 97-ə qədər istifadə edildi. Tətbiqlər üçün Visual Basic (VBA) variantı 1993-cü ildə Excel 5.0-da, sonra 1995-ci ildə Access 95-də, sonra isə bütün digər alətlərdə quruldu. Office paketində - 1997-ci ildə. Internet Explorer 3.0 və yuxarıda, həmçinin Microsoft Outlook-a VBScript dil tərcüməçisi daxildir. OpenOffice.org paketinin tam versiyasında BASIC tərcüməçisi də var.

Salam, Dünya!: QBasic 1.1, QuickBasic 4.50 üçün nümunə

ÇAP " Salam , Dünya !"

Faktorial: QBasic 1.1, QuickBasic 4.50 üçün nümunə

Faktorialın iterativ tərifindən istifadə olunur. 13-ü hesablayanda! hesab daşması baş verir və burada müxtəlif tətbiqlərin davranışı fərqlənir: QBasic daşma barədə məlumat verir, QuickBasic isə sadəcə olaraq mənfi dəyərləri çap edir. Bundan əlavə, PRINT əmri standart olaraq nömrədən əvvəl və sonra bir boşluq çap edir.

DIM f AS LONG f = 1 PRINT "0 !="; f FOR i = 1-dən 16-ya qədər:

f = f*i:

PRINTi; "!="; f

FORMALlaşdırılmış DİL- bəzi nəzəriyyələri təmsil etmək üçün nəzərdə tutulmuş süni işarə sistemi. Formallaşdırılmış dil insan ünsiyyətinin və təfəkkürünün təbii (milli) dillərindən, esperanto kimi süni dillərdən, təbiətin müəyyən hissəsinin vasitələrini birləşdirən elmin "texniki" dillərindən fərqlənir. müvafiq elmi simvolları olan dil (kimya dili, adi riyaziyyat dili və s.), alqoritmik dil ümumi proqramlaşdırma növü və s. ilk növbədə, onun vəzifəsi məntiqi nəticə ilə sübutetmə anlayışını (və ya onların analoqlarını) təqdim etməyə imkan verən müəyyən məntiqi məzmunu təsbit etmək (rəsmiləşdirmək) vasitəsi kimi xidmət etməkdir. Tarixən ilk rəsmiləşdirilmiş dil olmuşdur sillogistik Aristotel, standartlaşdırılmış təbii (yunan) dil fraqmentindən istifadə edərək həyata keçirilir. Formallaşdırılmış dilin ümumi ideyası Leybniz (xarakteristika universalis) tərəfindən tərtib edilmişdir, o, onun "nəticələrin hesablamalarına" - hesablama nisbətçisinə qədər genişlənməsini təmin etmişdir. Müasir dövrdə məntiq və cəbrin analoqu əsasında rəsmiləşdirilmiş dillərin müxtəlif variantları işlənib hazırlanmışdır. Burada əsas məqam iş idi Morqana , Boole və xüsusilə onların ardıcılları Şröder Poretski . Müasir rəsmiləşdirilmiş dillər - ən çox yayılmış formalarında - əmək fəaliyyətinə qayıdırlar. Frege "Begriffsschrift" - "Konseptlərdə qeyd" (1879), buradan təklif məntiqi dilinin inkişafının əsas xətti və (onu əhatə edən) (çoxlu) predikatların məntiqi, eləcə də bu məntiqi linqvistik vasitələrin tətbiqi gəlir. riyaziyyatın əsaslandırılması problemlərinə.

Belə formallaşdırılmış dillərin xarakterik strukturu: ilkin işarələrin əlifbasının təyin edilməsi, dilin (yaxşı formalaşmış) düsturunun induktiv tərifi, sözdə. formalaşma qaydalarını təyin etmək, nəticə çıxarma qaydalarını təyin etmək, sözdə. düsturların seçilmiş məntiqi xarakteristikasını (həqiqət, sübut olunma və s.) qoruyan transformasiya qaydaları. Transformasiya qaydalarının əlavə edilməsi formallaşdırılmış dili məntiqi hesablamaya çevirir. Formallaşdırılmış dillərin bir çox növləri var: bunlar, ilk növbədə, deduktiv-aksiomatik konstruksiyaların dilləri, təbii ("təbii") nəticə və ardıcıl konstruksiyalar sistemləri, analitik cədvəllər, "arqument məntiqi" sistemləri və bir çox başqalarıdır.

Formallaşdırılmış dillər "klassik" dillərdən (onlarda Aristotelin eynilik, ziddiyyət və ortadan kənarlaşdırılan qanunları, eləcə də məntiqi qeyri-müəyyənlik prinsipi tam qüvvədədir) və çoxsaylı dillərlə bitən məntiqi gücü ilə fərqlənir. müəyyən prinsipləri zəiflətməyə imkan verən qeyri-klassik məntiqlər, düsturların və ya onların modallıqlarının qiymətləndirilməsinin çoxmənalılığını təqdim edir. Məntiqi vasitələrin bu və ya digər mənada minimuma endirdiyi dillər işlənib hazırlanmışdır. Bunlar, məsələn, minimal və müsbət məntiqlərin dilləri və ya tək məntiqi əməliyyatdan istifadə edən təklif məntiqinin dilidir. Schaeffer insult (bax Məntiqi bağlayıcılar ).

Formallaşdırılmış dillər adətən sintaktik və semantik cəhətdən xarakterizə olunur. Lakin ən əsası onun düsturlarının nəticə çıxarma qaydaları (həqiqət, sübut, yoxlanılma, ehtimal və s.) ilə qorunan məntiqi xarakteristikasıdır. İstənilən formallaşdırılmış dil üçün əsas problemlər onda ifadə olunan məntiqin tamlığı, həllediciliyi və ardıcıllığıdır; məsələn, klassiklərin dili təklif məntiqi tam, həll edilə bilən və ardıcıl və klassik predikat məntiqi (çoxlu) tam olsa da, lakin həll olunmaz; uzadılmış predikat hesabının dili - predikatlar üzrə kəmiyyət ifadələri ilə və abstraksiya prinsipinin qeyri-məhdud tətbiqi ilə - ziddiyyətlidir (Freqin məntiqi-arifmetik sistemi belə idi, Rassel onun adına antinomiyanı kəşf etmişdir).

Formallaşdırılmış dil "saf forma" ola bilər, yəni. heç bir ekstralogik məlumat daşımamalıdır; onu daşıyırsa, o zaman tətbiqi formallaşdırılmış dilə çevrilir, onun spesifikliyi daimi predikatların və terminlərin (təsvirlərin) olmasıdır - məsələn. arifmetik - tətbiq sahəsinin xüsusiyyətlərini əks etdirən. Yüksək səviyyəli mücərrədlik nəzəriyyələrini rəsmiləşdirmək üçün rəsmiləşdirilmiş dil müxtəlif yollarla dəyişdirilə, genişləndirilə və ya "yaratıla" bilər; misal: klassik hesablamanın ikinci dərəcəli arifmetika kimi rəsmiləşdirilməsi (yəni predikat dəyişənləri üzərində kəmiyyət göstəriciləri ilə). Bir sıra hallarda formallaşdırılmış dil çoxlu, hətta sonsuz sayda məntiqi strukturları ehtiva edir (məsələn, konstruktiv riyaziyyatın rəsmiləşdirilməsinə xidmət edən A.A.Markovun “dillər qalası” və ya formada modallıqların şərhi kimi). “mümkün dünyalar” iyerarxiyası). Formallaşdırılmış məntiq dilinin semantik bazası çoxluq-nəzəri, cəbr, ehtimal, oyun-nəzəri və s. ola bilər. Onun yalnız ehtimal semantikasına oxşayan “zəifləmələri” də ola bilər – məsələn, formallaşmış “müəyyən məntiq” dili yaranır (Zadə mənasında). Sonra dil doğma danışan amilini nəzərə alaraq (bu konsepsiyanın əhatə dairəsinə subyektin “mənsubiyyət funksiyasını” qiymətləndirmək) xüsusi praqmatika əldə edir. Bu və ya digər formada rəsmiləşdirilmiş dillərdə "insan amili"ni nəzərə almaq meylinin artdığı yer budur ki, bu da kvant mexanikasının məntiqinin bəzi rəsmi dillərində aydın şəkildə özünü göstərir. Başqa bir istiqamətdə, semantikası ekzistensial fərziyyələrin və ya müəyyən ontoloji müqəddimələrin rədd edilməsini nəzərdə tutan formallaşdırılmış dillərin inkişafı var - sonsuz sayda bina ilə qaydaların qəbul edilməsi, mövzu sahələrinin "çox çeşidli", hətta ziddiyyətli olması. olanlar və s.

Formallaşdırılmış dilin əvəzsiz xüsusiyyəti nəticə çıxarma qaydalarının “mümkün” şərhidir; məsələn, müəyyən bir addımda, məsələn, modus ponens qaydasından istifadə etmək və ya istifadə etməməkdə sərbəstik. Bu xüsusiyyət alqoritmik dillərdən məhrumdur, hansı ki, “tərif” xarakteri daşıyır. Lakin kompüter məntiqinin inkişafı və "təsvir edən" tipli proqramların inkişafı ilə bu fərq hamarlanmağa başlayır. Evristik problemlərin həllinə yönəlmiş rəsmiləşdirilmiş dillərin inkişafı da eyni istiqamətdə işləyir.

Ədəbiyyat:

1. Kilsə A. Riyazi məntiqə giriş, cild 1. M., 1960;

2. Kleene S.K. Metariyaziyyata giriş. M., 1957;

3. Karri H. Riyazi məntiqin əsasları. M., 1969;

4. Freudenthal H. Məntiq dili. M., 1969;

5. Smirnova E.D. Formallaşdırılmış dillər və məntiqi semantika problemləri. M., 1982.