summaryrefslogtreecommitdiffstats
path: root/report/esoteric_project_report.tex
diff options
context:
space:
mode:
Diffstat (limited to 'report/esoteric_project_report.tex')
-rw-r--r--report/esoteric_project_report.tex7
1 files changed, 5 insertions, 2 deletions
diff --git a/report/esoteric_project_report.tex b/report/esoteric_project_report.tex
index 92b99b8..f0d4183 100644
--- a/report/esoteric_project_report.tex
+++ b/report/esoteric_project_report.tex
@@ -12,6 +12,7 @@
\usepackage{algorithmic}
\usepackage{amsmath}
\usepackage{mathtools}
+\usepackage{natbib}
\usepackage{graphicx}
\graphicspath{ {./images/} }
@@ -94,7 +95,9 @@ This report will first cover our research into esoteric languages in Chapter 2.
\chapter{Research of Esoteric Languages}
\section{Esoteric Languages (Esolangs)}
-Esolangs are programming languages designed to be jokes or proof of concept languages, rather than those to be used in actual programming tasks. Typically, the reason they are created is for fun rather than any serious desire to solve a particular programming problem, and so most languages aim to be funny, to be as difficult to use as possible or to have few features while still being Turing complete. Some esoteric languages are also designed to adapt existing languages into simpler or more usable forms.
+Esolangs are programming languages designed to be jokes or proof of concept languages, rather than those to be used in actual programming tasks. Typically, the reason they are created is for fun rather than any serious desire to solve a particular programming problem, and so most languages aim to be funny, to be as difficult to use as possible or to have few features while still being Turing complete.
+In other words, it could be said that they are created see explore the possibilities or boundaries of programming language design \citep{mateas2008weird}.
+Some esoteric languages are also designed to adapt existing languages into simpler or more usable forms.
\section{Examples of Esoteric Languages}
There are many different examples of esoteric languages.
@@ -123,7 +126,7 @@ Of course, we have decided to make some changes from Fortran. Most importantly,
\section{Language Grammar}
Before we can begin implementation, we need to design the grammar of our language. The grammar not only gives us and understanding of how our language will work and allow us to spot and issues, but also our chosen parser, a recursive descent parser, heavily relies on the language grammar for its implementation.
-To define the language we are using formal grammars. Formal grammars are a way represent the language as a set of rules. In order to fully represent the language we are implementing we have a context-free grammar, a type 2 grammar on the Chomsky hierarchy. Context-free grammars are a type of formal grammar in the form
+To define the language we are using formal grammars. Formal grammars are a way represent the language as a set of rules \citep{davie1982recursive}. In order to fully represent the language we are implementing we have a context-free grammar, a type 2 grammar on the Chomsky hierarchy. Context-free grammars are a type of formal grammar in the form
T $\rightarrow$ t
where A is a nonterminal, and t a series of terminals and nonterminals. Nonterminals are references to other rules in the language, and a terminal is an end point in the language. They are context-free as they do not look at the context of the nonterminal.