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{enumitem} % Aanpasbare lijsten
|
||||
\usepackage[margin=1in]{geometry} % Sane marges
|
||||
\usepackage{hyperref} % Hyperlinks
|
||||
\usepackage{multicol} % Meerdere kolommen
|
||||
|
||||
\title{Ghent Prolog}
|
||||
|
@ -44,6 +45,8 @@
|
|||
\section{Implementatie}\label{sec:implementatie}
|
||||
|
||||
% 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
|
||||
|
||||
|
@ -78,14 +81,16 @@
|
|||
|
||||
\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.
|
||||
% TODO Link naar prolog tabel
|
||||
Mijn implementatie ondersteunt operator precedentie en associativiteit.
|
||||
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}
|
||||
|
||||
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}
|
||||
|
||||
|
@ -93,9 +98,7 @@
|
|||
% TODO reference sectie over de parser
|
||||
te gebruiken.
|
||||
|
||||
De implementatie was gebaseerd op
|
||||
% TODO Crafting interpreters
|
||||
% TODO Dmitri Soshnikov
|
||||
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}.
|
||||
|
||||
De voorlopige implementatie van de lexer en parser kunnen hier teruggevonden worden.
|
||||
% TODO Link naar commit met voorlopige implementatie
|
||||
|
|
Reference in a new issue