The final lab for programming languages was implementing the Robinson's Unification algorithm in some language, we choose java for doing so. The algorithm works by implementing the unification method and it's auxiliar methods like remove unnecessary parentheses, find the principal "->" of our constraint, finding if there are unnecessary parentheses, and finding the free variables from a line, taking apart reading from a file the constraints. The algorithm says if the set of constraints unify or if it doesn't, and returns the set of substitutions the algorithm did for unifying the expression.
Operating System: Linux 5.3.11-1-MANJARO
Programming language: Java Complied with openjdk 11.0.5
The proyect has a file called Makefile, which is in charge of compiling the program, it runs the set of test cointained in the "test" directory
We thank Santiago Hidalgo for providing the logical implementation of the "unnecessaryParentheses" method.