# metadata.dc.description[].value
Treballs Finals de Grau d'Enginyeria Informàtica, Facultat de Matemàtiques, Universitat de Barcelona, Any: 2015, Director: Juan Carols Martínez Alonso

# metadata.dc.description.abstract[].value
This text aims to collect the research work done in a very specific field of programming, logic programming. Therefore, I have focused my work on the study of first-order logic and specific language for this paradigm: Prolog.
Dr. Peña Marí wrote in bis book "De Euclides a Java", about the history of algorithmics: «This story begins almost at very same time that the history of mankind... ». But this study does not go that far. Since the purpose of the work is programming -or rather, a part of it-, we must move forward in time a bit...
The aim of this work is to expand the knowledge received in the course of "Logica i llenguatges, Grade Computer Engineering" at UB. In previous editions more study material was dealt with, so that the course had to be divided in two different matters. My work has consisted on studying all materials that are no
longer a topic within the course, extending them when necessary, namely the study of Prolog language.
I want to start my presentation by putting, both in historical and scientific context, everything connected with what I'm going to talk about in this work. In this introductory chapter I will try to provide you with some historical details. I will cite the most basic, necessary elements that make possible programming, the programmable machines. I will give a context to our programming paradigm,
that is, logic programming.
In chapter 2 I will explain the first-order logic, in full detail. I will review the basic and most characteristic predicate language concepts, interpretations in these languages and some logical equivalences. At the end we'll see the unification algorithm and the method of resolution specifics for languages with declarative paradigm, and more specifically, the logical one.
In chapter 3 we will see the programming language Prolog. We will see its relationship with the declarative and logic languages, its evolution throughout history, the way we use it, its basic elements, and how it makes it possible to unify terms. We'll see the way lists are dealt with, arithmetic expressions are used, cut is used, etc.
We will finish in chapter 4 with a few solved exercises to exemplify all the the information in this work, either related to predicate logic, or to fundamentals of Prolog.

# metadata.dc.rights[].value
memòria: cc-by-nc-sa (c) Jordi Cardona Taltavull

# metadata.dc.source[].value
Treballs Finals de Grau (TFG) - Enginyeria Informàtica