Sync
This commit is contained in:
parent
130ff622c9
commit
e5ef4244e3
1 changed files with 10 additions and 7 deletions
|
@ -7,6 +7,7 @@
|
||||||
\usepackage[dutch]{babel} % Nederlands taal
|
\usepackage[dutch]{babel} % Nederlands taal
|
||||||
\usepackage{enumitem} % Aanpasbare lijsten
|
\usepackage{enumitem} % Aanpasbare lijsten
|
||||||
\usepackage[margin=1in]{geometry} % Sane marges
|
\usepackage[margin=1in]{geometry} % Sane marges
|
||||||
|
\usepackage{hyperref} % Hyperlinks
|
||||||
\usepackage{multicol} % Meerdere kolommen
|
\usepackage{multicol} % Meerdere kolommen
|
||||||
|
|
||||||
\title{Ghent Prolog}
|
\title{Ghent Prolog}
|
||||||
|
@ -44,6 +45,8 @@
|
||||||
\section{Implementatie}\label{sec:implementatie}
|
\section{Implementatie}\label{sec:implementatie}
|
||||||
|
|
||||||
% Kotlin, libraries
|
% Kotlin, libraries
|
||||||
|
Ghent Prolog werd geschreven in Kotlin, en gebruikt verder twee bibliotheken: \href{https://github.com/h0tk3y/better-parse}{\texttt{better-parse}}, een parser combinator library voor het parsen van een gedefinieerde grammatica, en \href{}{}, voor het gebruik van command-line argumenten.
|
||||||
|
% TODO Add link
|
||||||
|
|
||||||
% Data representatie: klassen, satisfiable, resolvent
|
% Data representatie: klassen, satisfiable, resolvent
|
||||||
|
|
||||||
|
@ -78,14 +81,16 @@
|
||||||
|
|
||||||
\section{Aanvullende opmerkingen}\label{sec:aanvullende-opmerkingen}
|
\section{Aanvullende opmerkingen}\label{sec:aanvullende-opmerkingen}
|
||||||
|
|
||||||
\subsection{Operator precedence en associativiteit}\label{subsec:operator-precedence}
|
\subsection{Operator precedentie en associativiteit}\label{subsec:operator-precedence}
|
||||||
|
|
||||||
Mijn implementatie heeft volledig ondersteuning voor operator precendentie en associativiteit.
|
Mijn implementatie ondersteunt operator precedentie en associativiteit.
|
||||||
% TODO Link naar prolog tabel
|
Deze functionaliteit bevindt zich in de parser, omdat de argumenten van een operator steeds rechtstreeks als parameters in de constructor van de klasse worden meegegeven.
|
||||||
|
|
||||||
|
Operator precedentie en associativiteit werd geïmplementeerd volgens de \href{https://www.swi-prolog.org/pldoc/man?section=operators}{SWI-Prolog documentatie}.
|
||||||
|
|
||||||
\subsection{Test driven development}\label{subsec:ttd}
|
\subsection{Test driven development}\label{subsec:ttd}
|
||||||
|
|
||||||
Doorheen de ontwikkeling van grote delen van mijn implementatie heb ik gebruik gemaakt van Test Driven Development door eerst een klasse te definiëren met Kotlin TODO() implementaties, vervolgens testen te schrijven die falen en pas daarna mijn functies te implementeren todat de testen slagen.
|
Doorheen de ontwikkeling van grote delen van mijn implementatie heb ik gebruik gemaakt van Test Driven Development, onder andere met behulp van \href{https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-t-o-d-o.html}{Kotlin \texttt{TODO}}.
|
||||||
|
|
||||||
\subsection{Onafgewerkte Lexer en Parser implementatie}\label{subsec:lexer-parser}
|
\subsection{Onafgewerkte Lexer en Parser implementatie}\label{subsec:lexer-parser}
|
||||||
|
|
||||||
|
@ -93,9 +98,7 @@
|
||||||
% TODO reference sectie over de parser
|
% TODO reference sectie over de parser
|
||||||
te gebruiken.
|
te gebruiken.
|
||||||
|
|
||||||
De implementatie was gebaseerd op
|
De implementatie was gebaseerd op \href{https://craftinginterpreters.com/contents.html}{Crafting Interpreters, Robert Nystrom} en \href{https://www.youtube.com/playlist?list=PLGNbPb3dQJ_5FTPfFIg28UxuMpu7k0eT4}{Building a Parser from scratch, Dmitry Soshnikov}.
|
||||||
% TODO Crafting interpreters
|
|
||||||
% TODO Dmitri Soshnikov
|
|
||||||
|
|
||||||
De voorlopige implementatie van de lexer en parser kunnen hier teruggevonden worden.
|
De voorlopige implementatie van de lexer en parser kunnen hier teruggevonden worden.
|
||||||
% TODO Link naar commit met voorlopige implementatie
|
% TODO Link naar commit met voorlopige implementatie
|
||||||
|
|
Reference in a new issue