summaryrefslogtreecommitdiff
path: root/project/templates/grasp.html
diff options
context:
space:
mode:
authorJedidiah Barber <contact@jedbarber.id.au>2021-11-26 20:17:43 +1300
committerJedidiah Barber <contact@jedbarber.id.au>2021-11-26 20:17:43 +1300
commit14025d22ce3d66c9d235e57221ec4653e00f972c (patch)
treedac7c0f2cd22007aa1c396b460a1f2d90445a4d3 /project/templates/grasp.html
parent03ea6ba48bfbb25dc74a0a369b5aa15bf10e91b9 (diff)
Switched to .xhtml extension, fixed some minor bugs
Diffstat (limited to 'project/templates/grasp.html')
-rw-r--r--project/templates/grasp.html76
1 files changed, 0 insertions, 76 deletions
diff --git a/project/templates/grasp.html b/project/templates/grasp.html
deleted file mode 100644
index a213c02..0000000
--- a/project/templates/grasp.html
+++ /dev/null
@@ -1,76 +0,0 @@
-
-{%- extends "base.html" -%}
-
-
-
-{%- block title -%}Grasp Interpreter{%- endblock -%}
-
-
-
-{%- block content %}
-<h4>Grasp Interpreter</h4>
-
-<p>Git repository: <a href="/cgi-bin/cgit.cgi/esoteric">Link</a></p>
-
-<h5>1/1/2017</h5>
-
-<p>Like Lisp, the esoteric programming language <a href="http://esolangs.org/wiki/Grasp"
-class="external">Grasp</a> is a homoiconic language that exclusively uses a single datatype. Except
-instead of lists, it uses directed graphs.</p>
-
-<p>A Grasp program is initialised with instruction pointers to those nodes in the graph that have
-a "name" edge to a node with the value "grasp:main". The nodes at each instruction pointer are
-evaluated and the pointer then updated by following an available "next" edge. This continues until
-all instruction pointers have no more "next" edges to follow.</p>
-
-<div class="figure">
- <img src="/img/grasp_helloworld.png"
- alt="Hello World in Grasp"
- height="176"
- width="268" />
- <div class="figcaption">Hello World in Grasp</div>
-</div>
-
-<p>In the <a href="https://github.com/fis/grajsp/wiki/Grasp-specification" class="external">current
-specification</a>, the actions that can be performed are:</p>
-
-<ul>
- <li>Add or delete an edge</li>
- <li>Change the value of a node</li>
- <li>Add, subtract, multiply, divide, or modulo node values</li>
- <li>Call and return from functions, which take the form of subgraphs with named entry points
- </li>
- <li>Read and write from arbitrary file handles</li>
- <li>Push, pop and pick a section of nodes arranged to act as a stack</li>
-</ul>
-
-<p>The execution of a node may be skipped by having "cond" edges pointing to either zero values or
-non-numeric values. Also, due to the way instruction pointers update and the way several
-instructions are defined, there is a measure of non-determinism that can be introduced depending on
-what edges are available.</p>
-
-<p>The language seemed like an interesting enough idea, but unfortunately nobody had done anything
-with it, and there was only a specification. This has now been fixed. The interpreter currently
-uses a subset of the <a href="http://www.graphviz.org/doc/info/lang.html" class="external">DOT graph
-description language</a> for the file format, to enable a text format as well as relatively easy
-conversion to a graph image.</p>
-
-<p>The above example is recorded as follows:</p>
-<div class="precontain">
-<code>
-digraph {
- 1 [label="puts"]
- 2 [label="grasp:main"]
- 3 [label="Hello world!"]
-
- 1 -> 2 [label="name"]
- 1 -> 3 [label="in"]
-}
-</code>
-</div>
-
-<p>If a format that more readily converts to a comprehensible graph image is found, a parser for it
-may be added.</p>
-{% endblock -%}
-
-