Haddock
Jump to navigation
Jump to search
Haddock is a odd programming language, based on the famous concept of the Deadfish programming language. The only major differences are:
- Expansion of the negative limit from -1 to -2.
- Expansion of the maximum limit from 256 to 1024(from 2^8 to 2^10).
- Addition of cube command.
- Addition of eplus function, which squares the cells value, adds 2 and doubles it. (Of course the full value will not be displayed!
The "Haddock Standard Organization" published a standard for all Haddock interpreters:
- All the compilers/interpreters for Haddock must have the set of instructions portrayed above,plus the standard Deadfish ones.
- All the compilers/interpreters for Haddock must have the word Haddock somewhere in their name. (E.g CaptainHaddock&Tintin, AtlanticHaddock, PythoneatsHaddock)
- All the compilers/interpreters shall not have file I/O. All code will be written in the REPL
- All the compilers/interpreters shall have a REPL.
Also, the HSO reminds you that rules are made to broken!(except of rule 1)
Implementing Haddock
Several attempts have been a made by HSO to make a Haddock interpreter. Here is AtlanticHaddock v 0.1: (Thanks to Jonathan Tod Skinner for creating the original Python Deadfish interpreter!)
# Based on Jonathan Tod Skinners Python Deadfish interpreter. # Changed by Singingbanana & Dan_zh. # This code is hereby in public domain. # Initialization accumulator = 0 # Main program loop while True: # Get user input cmd = raw_input('>> ') if accumulator == 1024 or accumulator == -2: # Overflow, reset accumulator accumulator = 0 # Process input if cmd == 'i': accumulator += 1 # Increment elif cmd == 'c': accumulator * accumulator * accumulator elif cmd == 'e': accumulator*accumulator+2*2 elif cmd == 'd': accumulator += -1 # Decrement elif cmd == 'o': print accumulator # Output elif cmd == 's': accumulator *= accumulator # Square else: print 'Unrecognized command.'