Commit c2eb10f1 authored by Amin Raslan's avatar Amin Raslan
Browse files

Update hintergrundwissen.tex

parent be040991
\section{Hintergrundwissen}
\label{section:hintergrundwissen}
Programmiersprachen können in der Regel verschiedene Programmierparadigmen erlauben, wobei grob zwischen der \emph{imperativen} und der \emph{deklarativen} Programmierung unterschieden wird. Bei der imperativen Programmierung wird beschrieben, wie etwas berechnet werden soll. Der Programmierer gibt also eine Folge von Anweisungen (Befehlen) in einer bestimmten Reihenfolge vor, die dann festlegen, was der Computer tun soll. Prozedurale und objektorientierte Programmierung sind beispielhafte Programmierparadigmen, die dieses Prinzip verwenden. Im Gegensatz dazu wird bei der deklarativen Programmierung beschrieben, was berechnet werden soll. Der Programmierer versorgt den Computer also mit Informationen, welcher dann einen Lösungsraum aufbaut und versucht, eine Lösung zu finden. Funktionale und logische Programmierung sind beispielhafte Programmierparadigmen, die dieses Prinzip verwenden \cite{programmierparadigma}. In dieser Arbeit wird die logische Programmierung gebraucht. Die logische Programmierung wurde unter Anderem aus dem Versuch entwickelt, logische Theoreme mithilfe der Maschine zu beweisen. Zum Beispiel zu beweisen, dass $X \rightarrow Z$ aus den logischen Axiomen $X \rightarrow Y$ und $Y \rightarrow Z$ folgt. Es können aber auch Probleme aus anderen Bereichen als Theoreme betrachten werden, wie arithmetische Aufgaben und Datenbanken \cite{logische_programmierung}. Logische Programmierung findet unter Anderem Einsatz in der künstlichen Intelligenz, Programmentwicklung, Datenbanken, Sprachverarbeitung, Computer Aided Desgin und Constraintprogrammierung \cite{einsatz_logischer_programmierung}, was das Thema dieser Arbeit ist.
Programmiersprachen können in der Regel verschiedene Programmierparadigmen erlauben, wobei grob zwischen der \emph{imperativen} und der \emph{deklarativen} Programmierung unterschieden wird. Bei der imperativen Programmierung wird beschrieben, wie etwas berechnet werden soll. Der Programmierer gibt also eine Folge von Anweisungen (Befehlen) in einer bestimmten Reihenfolge vor, die dann festlegen, was der Computer tun soll. Prozedurale und objektorientierte Programmierung sind beispielhafte Programmierparadigmen, die dieses Prinzip verwenden. Im Gegensatz dazu wird bei der deklarativen Programmierung beschrieben, was berechnet werden soll. Der Programmierer versorgt den Computer also mit Informationen, welcher dann einen Lösungsraum aufbaut und versucht, eine Lösung zu finden. Funktionale und logische Programmierung sind beispielhafte Programmierparadigmen, die dieses Prinzip verwenden \cite{programmierparadigma}. In dieser Arbeit wird die logische Programmierung gebraucht. Die logische Programmierung wurde unter Anderem aus dem Versuch entwickelt, logische Theoreme mithilfe der Maschine zu beweisen. Zum Beispiel zu beweisen, dass $X \rightarrow Z$ aus den logischen Axiomen $X \rightarrow Y$ und $Y \rightarrow Z$ folgt. Es können aber auch Probleme aus anderen Bereichen als Theoreme betrachten werden, wie arithmetische Aufgaben und Datenbanken \cite{logische_programmierung}. Logische Programmierung findet unter Anderem Einsatz in der künstlichen Intelligenz, Programmentwicklung, Datenbanken, Sprachverarbeitung, Computer Aided Design und Constraintprogrammierung \cite{einsatz_logischer_programmierung}, was das Thema dieser Arbeit ist.
\subsection{Prolog}
Die logische Programmiersprache Prolog wurde vom französischen Informatiker Alain Colmerauer entwickelt und ist das Resultat eines Projektes, dessen Ziel es eigentlich war, mit der Maschine direkt auf Französisch zu kommunizieren. Der Name Prolog wurde aus dem Französischen abgeleitet: \enquote{\textbf{Pro}grammation en \textbf{log}ique} \cite{geschichte_von_prolog} (Im Deutschen: Programmieren in Logik).
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment