summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchris.sutcliffe <ctd.sutcliffe@gmail.com>2021-12-15 12:08:19 +0000
committerchris.sutcliffe <ctd.sutcliffe@gmail.com>2021-12-15 12:08:19 +0000
commite62f3cf6fa6d1bb3c25523f76ad7d3d876e840b8 (patch)
treedb0795cf0ea823adf231cfee47c2d928aaf012d4
parentaf71edc44dd2d51ffae90c0bd162dfde95706789 (diff)
downloadesotericFORTRAN-e62f3cf6fa6d1bb3c25523f76ad7d3d876e840b8.tar.gz
esotericFORTRAN-e62f3cf6fa6d1bb3c25523f76ad7d3d876e840b8.zip
added some references
-rw-r--r--report/References.bib10
-rw-r--r--report/esoteric_project_report.pdfbin360740 -> 566462 bytes
-rw-r--r--report/esoteric_project_report.tex7
3 files changed, 12 insertions, 5 deletions
diff --git a/report/References.bib b/report/References.bib
index e8ac243..32a6b31 100644
--- a/report/References.bib
+++ b/report/References.bib
@@ -13,6 +13,10 @@
url={https://gcc.gnu.org/wiki/New_C_Parser}
}
-
-
- \ No newline at end of file
+@article{mateas2008weird,
+ title={Weird languages},
+ author={Mateas, Michael},
+ journal={Software Studies$\backslash$A lexicon. London: MIT},
+ pages={267--276},
+ year={2008}
+} \ No newline at end of file
diff --git a/report/esoteric_project_report.pdf b/report/esoteric_project_report.pdf
index 004df23..721c8c6 100644
--- a/report/esoteric_project_report.pdf
+++ b/report/esoteric_project_report.pdf
Binary files differ
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.