Konceptuel programmering er en tilgang til programmering beskrevet af E.Kh. Tyugu i bogen af samme navn [1] . K. programmering indebærer at arbejde med begreber ( koncepter ) beskrevet i forhold til fagområdet, hvilket gør det muligt at bruge computere på det stadie, hvor problemet stilles. En tilstrækkelig præcis beskrivelse af problemet gør det muligt for computeren automatisk at sammensætte programmer til at løse det. Karakteristiske træk ved konceptuel programmering er også brugen af fagområdets sprog og brug af semantisk hukommelse med henblik på at opsamle viden om de opgaver, der løses.
Opgaven, der kommer ind i det konceptuelle programmeringssystems input, skrevet i forhold til emneområdet, fortolkes på det semantiske netværk , som beskriver modellen for emneområdet. Forberedte og debuggede programmoduler knyttet til fagområdets begreber bruges derefter til at syntetisere en færdiglavet løsning (eller syntetisere et program, der løser et problem) [2] . Med andre ord forudsætter k. programmering eksistensen af en videnbase , som omfatter elementære komponenter, der giver dig mulighed for at bygge en løsning af et vilkårligt problem for et givet emneområde ud fra dem.
Anvendelsen af ideerne om K. programmering var oprindeligt beregnet til design af tekniske enheder. I 90'erne foreslog den amerikanske logiker Wang Hao (Wong) brugen af K. programmering til at modellere adfærden af sociale, økonomiske og politiske systemer [3] .
Den første implementering af principperne for konceptuel programmering var PRIZ EU-systemet, og sprogimplementeringen var det UTOPISTISKE sprog, udviklet ved EC AS ESSR under vejledning af E.Kh. Tyugu i 1988 [4] . Et eksempel på et program i UTOPIST-sproget så således ud:
<!-- ikke understøttet --> Start K er et kvadrat, side = X. C er en cirkel, diameter = X. det er kendt, at S = areal fra K - areal fra C. find S ved X slutningenDette eksempel viser, at man ved at anvende makrodefinitioner forsøgte at bringe sproget tættere på formen af et naturligt sprog.
I begyndelsen af 2000'erne opstod en tilgang til programmering med et lignende navn ( Concept programmering ). Det involverer også at operere på begreber , der skal omsættes til repræsentationer, der findes i programrummet. Implementeringen af denne tilgang blev lavet i form af XL-sproget , hvis hovedtræk er udvidelig syntaks og semantik.
I værker [5] [6] blev der gjort et forsøg på at udvikle de indledende ideer om K. programmering i retning af at bruge en sproglig processor til at behandle programmer skrevet i naturligt sprog. I Nalaps-systemet er domænevidenbasen beskrevet i form af programmoduler - Java -sprogklassebiblioteker med semantisk opmærkning af klasseattributter. Den naturlige sprogtekst, der kommer ind i systemet, analyseres, hvoraf resultatet er en syntaktisk-semantisk repræsentation, hvorefter systemet så automatisk syntetiserer og kompilerer programkoden i Java-sproget.