Anonymous avatar Anonymous committed e3a7b60

Convert documentation to Markdown. (Should probably rewrite it.)

Comments (0)

Files changed (2)

+noit o' mnain worb
+==================
+
+Language version 1.1. Distribution version 2010.0721.  
+Copyright ©2000-2010, Cat's Eye Technologies. All rights reserved.
+
+What is noit o' mnain worb?
+---------------------------
+
+The noit o' mnain worb language is a probabilistic particle automaton
+based on brownian motion (or entropy).
+
+A noit o' mnain worb runtime has an orthogonal gridwork playfield (of
+any reasonable size or number of dimensions) which is populated by any
+number of bobules. Bobules are solid elements in this grid — that is, no
+two bobules may occupy the same location. Bobules are also capable of
+motion — in fact they can hardly avoid it — and it is important to note
+that they are stateless. As such, they have no idea which direction they
+are going, nor what they are going to do when they get there.
+
+Each time quantum, or tick, each bobule chooses an adjacent square to
+move to, at random (in two dimensions, that's 8 possibilities plus the
+possibility of not moving = 9 possibilities.) If, during some tick, this
+randomly-chosen new location does not allow entry — that is, if it is
+already occupied by a solid element (a bobule or a wall) — the bobule
+does not move during that tick.
+
+[Implementation note: each tick that a bobule is blocked from moving,
+its "pressure" increases, although this is merely for visual effect.]
+
+The playfield is made more interesting by the addition of:
+
+-   `#` *walls* which are merely static solid elements that take up space
+    and do not move;
+-   `^v><` *diodes* which disallow bobules from passing through them
+    backwards;
+-   `+-` *sources & sinks* which represent large repositories or vacancies
+    of bobules; and
+-   `!` *loads* which represent something that the bobules can 'do'.
+
+Notes
+-----
+
+[Historical note: In version 1.0 (Jul 5 2000) of the language, which was
+released only on the Cat's Eye Technologies Mailing List, `+-` had much
+different (and much more myopic) semantics than they do in v1.1.]
+
+The sources and sinks are simply convenient 'macros', so that you can
+build something like:
+
+      ###
+    ###+###
+
+instead of saying something like:
+
+    #######
+    #.....#
+    #.....#
+    #.....#
+    ###.###
+      #.#
+    ###v###
+
+Using the `+` sources and `-` sinks simply saves you from specifying
+large chambers of bobules or emptiness explicitly.
+
+[Implementation note: It is not the intention of the `+` element to
+violate entropy, but the fact that, in the reference implementation, `+`
+keeps producing bobules indefinately at a uniform rate of 10% chance per
+tick does bend the rules a bit. In a more "entropically correct"
+implementation, the chance per tick should decrease over time. Note that
+the language proper does not specify any particular rate of bobule
+creation, but encourages implementations to be flexible on this point.]
+
+The `!` loads simply cause the implementation to react in some noticable
+way when a bobule enters into their location, so that the noit o' mnain
+worb programmer can pretend to themselves that their bobules are 'doing
+something' during program runs.
+
+[Implementation note: The reference interpreter simply outputs an ASCII
+BEL character when this happens. On most terminals, this affects a
+beeping sound.]
+
+The idea is that the bobules, spaces, walls, and diodes alone constitute
+a (nearly) Turing-Complete system.
+
+I say "nearly" because it's actually missing a dimension in this form.
+The noit o' mnain worb language isn't dimensionally-independent.
+Notably, it doesn't work in one dimension at all.
+
+It *almost* works in two dimensions, but the fact is that if you do not
+address the 'wire-crossing problem' (see
+[Befunge-93](http://catseye.tc/projects/befunge93/)'s `#` instruction),
+you cannot guarantee being able to connect two arbitrarily-chosen paths
+in two dimensions. You need to have a way for coincident paths to cross,
+which is not strictly just two dimensions anymore.
+
+[Theoretical note: we suspect, but would surely have a hard time
+proving, that this limitation is somehow related to the four-colour map
+theorem.]
+
+So, it really only works in three dimensions and above. For that reason,
+adding 'wormholes' to the noit o' mnain worb playfield is a possible
+future extension, to simulate three dimensions a la 'wire crossing'.

doc/worb.html

-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<!-- encoding: UTF-8 -->
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-  <title>The "noit o' mnain worb" Language</title>
-  <style type="text/css">
-  .language {
-    font-style: italic;
-    font-weight: bold;
-  }
- </style>
-  <!-- begin html doc dynamic markup -->
-  <script type="text/javascript" src="/contrib/jquery-1.6.4.min.js"></script>
-  <script type="text/javascript" src="/scripts/documentation.js"></script>
-  <!-- end html doc dynamic markup -->
-</head>
-<body>
-<h1>noit o' mnain worb</h1>
-
-<p>Language version 1.1.  Distribution version 2010.0721.<br/>
-Copyright ©2000-2010, Cat's Eye Technologies.  All rights reserved.</p>
-
-<h2>What is <span class="language">noit o' mnain worb</span>?</h2>
-
-<p>The <span class="language">noit o' mnain worb</span> language is a
-probabilistic particle automaton based on brownian motion (or entropy).</p>
-
-<p>A <span class="language">noit o' mnain worb</span> runtime has an orthogonal gridwork
-playfield (of any reasonable size or number of dimensions)
-which is populated by any number of <dfn>bobules</dfn>.  Bobules are <dfn>solid</dfn>
-elements in this grid — that is, no two bobules may occupy the same location.
-Bobules are also capable of motion — in fact they can hardly avoid it — and it is
-important to note that they are stateless.  As such, they have no idea which
-direction they are going, nor what they are going to do when they get there.</p>
-
-<p>Each time quantum, or <dfn>tick</dfn>, each bobule chooses an adjacent square
-to move to, at random (in two dimensions, that's 8 possibilities
-plus the possibility of not moving = 9 possibilities.)
-If, during some tick, this randomly-chosen new location does not allow entry —
-that is, if it is already occupied by a solid element (a bobule or a wall) — the
-bobule does not move during that tick.</p>
-
-<p>[Implementation note: each tick that a bobule is blocked from moving,
-its "pressure" increases, although this is merely for visual effect.]</p>
-
-<p>The playfield is made more interesting by the addition of:</p>
-
-<ul>
-<li> <tt>#</tt> <dfn>walls</dfn> which are merely static solid elements that take up space and do not move;</li>
-<li> <tt>^v&gt;&lt;</tt> <dfn>diodes</dfn> which disallow bobules from passing through them backwards;</li>
-<li> <tt>+-</tt> <dfn>sources &amp; sinks</dfn> which represent large repositories or vacancies of bobules; and</li>
-<li> <tt>!</tt> <dfn>loads</dfn> which represent something that the bobules can 'do'.</li>
-</ul>
-
-<h2>Notes</h2>
-
-<p>[Historical note: In version 1.0 (Jul 5 2000) of the language, which was released only
-on the Cat's Eye Technologies Mailing List,
-<tt>+-</tt> had much different (and much more myopic)
-semantics than they do in v1.1.]</p>
-
-<p>The sources and sinks are simply convenient 'macros', so that you can
-build something like:</p>
-
-<pre>
-  ###
-###+###
-</pre>
-
-<p>instead of saying something like:</p>
-
-<pre>
-#######
-#.....#
-#.....#
-#.....#
-###.###
-  #.#
-###v###
-</pre>
-
-<p>Using the <tt>+</tt> sources and <tt>-</tt> sinks simply saves you
-from specifying large chambers of bobules or emptiness explicitly.</p>
-
-<p>[Implementation note: It is not the intention of the <tt>+</tt> element
-to violate entropy, but the fact that, in the reference implementation, <tt>+</tt>
-keeps producing bobules indefinately at a uniform rate of 10% chance per tick
-does bend the rules a bit.  In a more "entropically correct" implementation, the
-chance per tick should decrease over time.  Note that the language proper
-does not specify any particular rate of bobule creation, but encourages
-implementations to be flexible on this point.]</p>
-
-<p>The <tt>!</tt> loads simply cause the implementation to react in some
-noticable way when a bobule enters into their location, so that the
-<span class="language">noit o' mnain worb</span> programmer can pretend to themselves that their
-bobules are 'doing something' during program runs.</p>
-
-<p>[Implementation note: The reference interpreter simply outputs an ASCII
-BEL character when this happens.  On most terminals, this affects a beeping
-sound.]</p>
-
-<p>The idea is that the bobules, spaces, walls, and diodes alone constitute a (nearly)
-Turing-Complete system.</p>
-
-<p>I say "nearly" because it's actually missing a dimension in this form.  The
-<span class="language">noit o' mnain worb</span> language isn't dimensionally-independent.
-Notably, it doesn't work in one dimension at all.</p>
-
-<p>It <i>almost</i> works in two dimensions, but the fact is that if you do not address
-the 'wire-crossing problem' (see <a href="http://catseye.tc/projects/befunge93/">Befunge-93</a>'s
-<tt>#</tt> instruction), you cannot
-guarantee being able to connect two arbitrarily-chosen paths in two dimensions.
-You need to have a way for coincident paths to cross, which is not strictly
-just two dimensions anymore.</p>
-
-<p>[Theoretical note: we suspect, but would surely have a hard time proving,
-that this limitation is somehow related to the four-colour map theorem.]</p>
-
-<p>So, it really only works in three dimensions and above.  For that reason,
-adding 'wormholes' to the <span class="language">noit o' mnain worb</span> playfield is a possible
-future extension, to simulate three dimensions a la 'wire crossing'.</p>
-
-</body></html>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.