Hsamsniarb
Hsamsniarb is a joke programming language you can't even create a "Hello, World!" program in. (Hsamsniarb is Brainsmash backwards.)
Overview
The language combines elements from Deadfish and brainfuck, in particular the former.
Following its interpreter's invocation, an initial program may be introduced by some advenient avenue, for instance the command line or an argument to the evaluating routine.
Proceeding from this first stage, a perpetual iteration is instigated, the same repeatedly queries the standard input for a single character, preceded by the prompt message >>
, which is subsequently evaluated.
Architecture
Hsamsniarb's architecture is developed, siclike to the syntactical and operational aspects, as an amalgam of Deadfish and brainfuck.
The entire memory comprehends a single entity, a register whose capacity amounts to an unsigned byte scalar, occupying the integer interval [0, 255], and assuming the value zero (0) at the program's inchoation. Upon any of its two bourne's transgressions, the state returns to its default of zero.
The register constitutes an appropriation from Deadfish, while its octet size most likely originates in brainfuck.
Commands
An aperçu shall educate about the language's quadruple command set, the same encompasses basic arithmetics and an output facility. Non-command content is simply ignored, and does not, as is the wont of Deadfish, produce a newline display.
Hsamsniarb | Effect |
---|---|
+
|
Increments the register by one. If the new value exceeds 255, the register is reset to 0. |
-
|
Decrements the register by one. If the new value descends below 0, the register is reset to 0. |
s
|
Squares the register's value. If the new value exceeds 255, the register is reset to 0. |
w
|
Prints the register value in its verbatim numeric form to the standard output on a line of its own. |
Hsamsniarb and Deadfish
Hsamsniarb's descendance from Deadfish permits an equiparation of their operational facilities:
Hsamsniarb | Deadfish |
---|---|
+
|
i
|
-
|
d
|
s
|
s
|
w
|
o
|
Interpreters
The only current interpreter is made in Visual Basic.
Option Explicit On Option Strict On Module Module1 Dim val As Integer = 0 Sub Main() Dim code As String = "" Try : code = My.Computer.FileSystem.ReadAllText(Command().Trim(""""c)) Catch : End Try For Each C As Char In code Interpret(C) Next While True Console.Write(">> ") : Interpret(Console.ReadKey.KeyChar) End While End Sub Sub Interpret(ByVal C As Char) Select Case C Case "+"c : val += 1 : Console.WriteLine() Case "-"c : val -= 1 : Console.WriteLine() Case "w"c : Console.WriteLine() : Console.WriteLine(val.ToString()) Case "s"c : val = CInt(val ^ 2) : Console.WriteLine() End Select If (val < 0) Or (val > 256) Then val = 0 End Sub End Module
- Common Lisp implementation of the Hsamsniarb programming language.