Programarea conceptuală este o abordare a programării descrisă de E.Kh. Tyugu în cartea cu același nume [1] . K. programarea presupune operarea cu concepte ( concepte ) descrise din punct de vedere al domeniului de studiu, ceea ce permite utilizarea calculatoarelor în stadiul de stabilire a problemei. O descriere suficient de precisă a problemei permite computerului să compună automat programe pentru rezolvarea acesteia. Trăsăturile caracteristice ale programării conceptuale sunt, de asemenea, utilizarea limbajului domeniului de studiu și utilizarea memoriei semantice pentru a acumula cunoștințe despre sarcinile de rezolvat.
Sarcina care intră în intrarea sistemului de programare conceptuală, scrisă în termeni de domeniu, este interpretată pe rețeaua semantică , care descrie modelul domeniului de studiu. Modulele de program pre-preparate și depanate asociate cu conceptele domeniului subiectului sunt apoi utilizate pentru a sintetiza o soluție gata făcută (sau a sintetiza un program care rezolvă o problemă) [2] . Cu alte cuvinte, k. programarea presupune existența unei baze de cunoștințe , care include componente elementare care vă permit să construiți o soluție a unei probleme arbitrare dintr-o anumită zonă de subiect.
Aplicarea ideilor de programare K. a fost inițial destinată proiectării dispozitivelor tehnice. În anii '90, logicianul american Wang Hao (Wong) a propus utilizarea programării K. pentru a modela comportamentul sistemelor sociale, economice și politice [3] .
Prima implementare a principiilor programării conceptuale a fost sistemul PRIZ EU, iar implementarea limbajului a fost limbajul UTOPIST, dezvoltat la EC AS ESSR sub îndrumarea lui E.Kh. Tyugu în 1988 [4] . Un exemplu de program în limbajul UTOPIST arăta astfel:
<!-- nu este acceptat --> start K este un pătrat, latura = X. C este un cerc, diametrul = X. se știe că S = aria din K - aria din C. găsiți S prin X sfarsitAcest exemplu arată că s-au făcut încercări de a apropia limbajul, prin aplicarea unor definiții macro, de forma unui limbaj natural.
La începutul anilor 2000, a apărut o abordare a programării cu un nume similar ( Programare conceptuală ). De asemenea, implică operarea asupra conceptelor care trebuie transpuse în reprezentări găsite în spațiul programului. Implementarea acestei abordări a fost realizată sub forma limbajului XL , ale cărui principale caracteristici sunt sintaxa și semantica extensibile.
În lucrări [5] [6] s-a încercat dezvoltarea ideilor inițiale de programare K. în direcția utilizării unui procesor lingvistic pentru procesarea programelor scrise în limbaj natural. În sistemul Nalaps, baza de cunoștințe de domeniu este descrisă sub formă de module de program - biblioteci de clase de limbaj Java cu marcare semantică a atributelor de clasă. Se analizează textul în limbaj natural care intră în sistem, rezultatul căruia este o reprezentare sintactic-semantică, conform căreia sistemul sintetizează și compilează apoi automat codul programului în limbajul Java.