Programmazione logica
In informatica la programmazione logica è un paradigma di programmazione nato negli anni '70 che adotta la logica del primo ordine sia per rappresentare sia per elaborare l'informazione. La programmazione logica differisce dalla programmazione tradizionale, sviluppata da linguaggi ad alto livello quali Fortran, Cobol, BASIC, ALGOL, Pascal, Ada, etc., in quanto richiede e nello stesso tempo consente al programmatore di descrivere la struttura logica del problema piuttosto che il modo di risolverlo [1]. Da un punto di vista concettuale, il programmatore si può così concentrare sugli aspetti logici del problema e sul modo migliore per rappresentarli, senza essere focalizzato sulla necessità di determinare in dettaglio il modo di pervenire ai risultati.
In particolare viene adottato il frammento della logica a clausole di Horn che rappresenta la base teorica su cui sono costruiti i linguaggi di programmazione afferenti al paradigma logico e in particolare il Prolog, o suoi sottolinguaggi, come Datalog o AnsProlog.
Il meccanismo principale per elaborare teorie logiche fatte di clausole è l'unificazione.
Fra le estensioni della programmazione logica sono la programmazione logica induttiva e la programmazione logica abduttiva.
Note
[modifica | modifica wikitesto]- ^ Furlan F. & Lanzarone G.A. - PROLOG Linguaggio e metodologia di programmazione logica
Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file sulla programmazione logica
Collegamenti esterni
[modifica | modifica wikitesto]- Programmazione logica, in Enciclopedia della Matematica, Istituto dell'Enciclopedia Italiana, 2013.
- (EN) Opere riguardanti Logic programming, su Open Library, Internet Archive.
- (EN) Logic programming, su Encyclopaedia of Mathematics, Springer e European Mathematical Society.
- (EN) Denis Howe, logic programming, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
Controllo di autorità | Thesaurus BNCF 7540 · LCCN (EN) sh86003454 · GND (DE) 4195096-3 · BNE (ES) XX550687 (data) · BNF (FR) cb12067891q (data) · J9U (EN, HE) 987007553495005171 |
---|