summaryrefslogtreecommitdiff
path: root/project/templates/grasp.html
diff options
context:
space:
mode:
Diffstat (limited to 'project/templates/grasp.html')
-rw-r--r--project/templates/grasp.html29
1 files changed, 15 insertions, 14 deletions
diff --git a/project/templates/grasp.html b/project/templates/grasp.html
index f5543ea..7eddc3c 100644
--- a/project/templates/grasp.html
+++ b/project/templates/grasp.html
@@ -15,44 +15,45 @@
<h5>1/1/2017</h5>
-<p>Like Lisp, the esoteric programming language <a href="http://esolangs.org/wiki/Grasp" target="_blank">
-Grasp</a> is a homoiconic language that exclusively uses a single datatype. Except instead of lists, it
-uses directed graphs.</p>
+<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>
-<figure>
+<div class="figure">
<img src="/img/grasp_helloworld.png"
alt="Hello World in Grasp"
height="176"
- width="268">
- <figcaption>Hello World in Grasp</figcaption>
-</figure>
+ width="268" />
+ <div class="figcaption">Hello World in Grasp</div>
+</div>
-<p>In the <a href="https://github.com/fis/grajsp/wiki/Grasp-specification" target="_blank">current
+<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>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>
+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" target="_blank">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>
+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">