Sobes.tech
Middle

Wat is logische programmering?

sobes.tech AI

Antwoord van AI

Logisch programmeren is een programmeerparadigma gebaseerd op formele logica. Het programma wordt beschreven als een verzameling feiten en regels, niet als een reeks instructies voor uitvoering.

Belangrijke concepten:

  • Feiten: Verklaringen die als waar worden beschouwd (bijvoorbeeld ouder(ivan, pavel)).
  • Regels: Beschrijvingen van afhankelijkheden tussen feiten (bijvoorbeeld grootouder(X, Y) :- ouder(X, Z), ouder(Z, Y), gelezen als "X is grootouder van Y als X ouder is van Z en Z ouder is van Y").
  • Vragen: Vragen die aan het programma worden gesteld om informatie te verkrijgen (bijvoorbeeld ?- grootouder(ivan, Wie?), "Wie is kleinkind van Ivan?").

Het uitvoeringsproces van het programma bestaat uit het zoeken naar een bewijs van de waarheid van de vraag op basis van de gegeven feiten en regels, met behulp van inferentie-mechanismen (bijvoorbeeld resolutie).

De meest bekende taal voor logische programmeren is Prolog.

Toepassingen in QA:

  • Specificaties van vereisten in logische vorm.
  • Automatische generatie van tests op basis van specificaties.
  • Analyse van beperkingen en afhankelijkheden in het systeem.
  • Formele verificatie van systeem-eigenschappen.

Voorbeeld in Prolog:

// Feiten
ouder(ivan, pavel).
ouder(pavel, anna).
ouder(ivan, maria).

// Regels
grootouder(X, Y) :- ouder(X, Z), ouder(Z, Y).

// Vraag
// ? - grootouder(ivan, Wie?).
// Antwoord: Wie = anna.