Thread: Oddball Programming, Scripting, and other Computer Languages

1. Oddball Programming, Scripting, and other Computer Languages

It has occured to me that programming languages--in particular, those that have a rather limited scope, can have most peculiar syntax. Below is an entire file of DragonSpeak, a scripting language for the online game Furcadia.

Code:

0:0
5:212 {@}
5:399

0:9
5:15 8 9
5:200 {This is the Puzzle Palace. The puzzles can be logic memory or plain old riddles and puns. This is a growing dream wherein sections will be added with new puzzles. These puzzles are based on puzzles I remember. So please enjoy. If you need help stand on the entrance tile The fancy-looking floor tile at the entrance of each puzzle and say "@Hint" for some advice. If you cannot solve a puzzle say "@Pass" on the entrance tile to bypass the puzzle. Each puzzle is worth two points; one point if you use a hint and nothing if you pass on the puzzle. You have infinite Hints but you can only say Pass a total of 10 times.}

0:31 {@1}
1:10
5:14 34 45

0:7 16 16
5:200 {To enter the Puzzle Palace answer me this: A door is not a door when it is @---- four letters.}

0:31 {@Hint}
1:19 16 16
5:200 {One glass container one word.}

0:31 {@Ajar}
1:19 16 16
5:65 8 5 17 16
5:200 {Enter freely and of your own will!}

0:7 18 15
1:60 8
5:65 10 5 at 17 16
5:15 12 44
5:200 {Welcome to the Puzzle Palace! Each door has four puzzles each puzzle unlocks one of four locks on the door. Solve each one to go through to the next section. Only one furre may be in a section at any time so if a section is not vacant please be patient.}
5:200 {To reset a puzzle stand on its entrance square and say @Reset. To go back to the main room say @Back.}

0:31 {@Pass}
1:19 16 16
5:200 {A door is not a door when it is *ajar*.}
5:15 12 44
5:200 {Welcome to the Puzzle Palace! Each door has four puzzles each puzzle unlocks one of four locks on the door. Solve each one to go through to the next section. Only one furre may be in a section at any time so if a section is not vacant please be patient. To reset a puzzle stand on its entrance square and say @Reset. To go back to the main room say @Back.}

0:7 20 40
1:60 8
1:200 &#37;Puzz1Occ 0
5:14 34 45

0:7 34 44
5:300 %Puzz1Occ 1
5:65 10 5 21 41
5:200 {Welcome To Puzzle Set One.}

0:7 20 40
1:200 %Puzz1Occ 1
5:200 {Puzzle Set One is Occupied}

0:7 44 43
1:1013 44 44 383
5:200 {Knight Puzzle: In Chess a knight moves two squares vertically then one horizontally; or two squares horizontally then one vertically. Therefore eight knights can be arranged on this quarter-sized chess board so no knight cannot land on any other knight in one move. Arrange the knights so this can happen.}

0:31 {@Hint}
1:19 44 43
5:200 {Think of the knights as moving in an "L" shape.}

0:17 312
1:1013 44 44 384
5:76 0
3:5
5:4 312

0:18 312
1:17 159
1:81 44 30 42 46
1:1013 40 37 312
1:1013 42 35 312
1:1013 40 39 312
1:1013 42 37 312
1:1013 42 39 312
1:1013 44 37 312
1:1013 42 41 312
1:1013 44 39 312
1:1013 44 44 383
5:8 62
5:200 {Congratulations! You completed the Knight Puzzle!}
3:3 44 30 42 46
5:5 383 384

0:18 312
1:1013 44 44 383
1:17 169
1:81 44 30 42 46
1:1013 38 38 312
1:1013 40 36 312
1:1013 40 38 312
1:1013 42 36 312
1:1013 40 40 312
1:1013 42 38 312
1:1013 42 40 312
1:1013 44 38 312
5:8 62
5:200 {Congratulations! You completed the Knight Puzzle!}
3:3 44 30 42 46
5:5 383 384

0:31 {@Pass}
1:19 44 43
5:200 {You pass on the Knight Puzzle}
3:3 44 30 42 46
5:5 383 384

0:31 {@Reset}
1:1013 44 44 383
1:19 44 43
5:200 {Resetting Knight Puzzle}
5:8 30
3:3 44 30 42 46
5:5 312 0
3:3 44 32 46 36
5:4 312

0:7 44 44
1:1013 44 44 384
3:2 44 43
5:5 555 559

0:7 52 33
1:1013 52 34 383
5:200 {Switch Puzzle: When you bump into a switch it and the two adjacent switches will switch between on green and off red. Turn all switches on.}

0:31 {@Hint}
1:19 52 33
5:200 {Think symmetrically}

0:7 48 28
1:1013 52 34 383
3:14 48 29 2
5:6 161 162

0:7 50 28
1:1013 52 34 383
3:17 52 29 2
5:6 161 162

0:7 50 30
1:1013 52 34 383
3:14 50 31 2
5:6 161 162

0:7 48 30
1:1013 52 34 383
3:17 50 31 2
5:6 161 162

0:7 50 27
1:1013 52 34 383
3:2 48 28
5:6 161 162
3:15 50 27 1
5:6 161 162

0:7 52 29
1:1013 52 34 383
3:2 50 30
5:6 161 162
3:17 52 29 1
5:6 161 162

0:7 50 31
1:1013 52 34 383
3:2 50 30
5:6 161 162
3:17 50 31 1
5:6 161 162

0:7 48 29
1:1013 52 34 383
3:2 48 28
5:6 161 162
3:15 48 29
5:6 161 162

0:3 162
1:81 50 25 50 36
1:1013 50 27 161
1:1013 50 28 161
1:1013 52 29 161
1:1013 50 30 161
1:1013 50 31 161
1:1013 48 30 161
1:1013 48 29 161
1:1013 48 28 161
1:1013 52 34 383
5:8 62
5:200 {Congratulations! You completed the switch puzzle!}
3:3 50 25 50 36
5:5 383 384

0:31 {@Pass}
1:19 52 33
5:200 {You pass on the switch puzzle}
3:3 50 25 50 36
5:5 383 384

0:31 {@Reset}
1:19 52 33
1:1013 52 34 383
5:200 {Resetting Switch Puzzle}
5:8 30
3:3 50 25 50 36
5:5 161 162

0:7 52 34
1:1013 52 34 384
3:2 52 33
5:5 555 559

0:7 44 48
1:1013 46 49 383
5:200 {Horses of a Color: When you bump into the pedestal with the black ball the knights will move in the same direction you are bumped the pedestal from. Their path of course is blocked by the pedestals around them and by each other. Put all horses on their matching floor color.}

0:31 {@Hint}
1:19 44 48
5:200 {The center pedestal is your friend.}

0:7 48 51
1:1013 46 49 383
5:8 44

0:7 48 51
1:19 48 50
1:1013 46 49 383
1:1013 50 56 0
3:2 52 55
5:21 50 56

0:7 48 51
1:19 48 50
1:1013 46 49 383
1:1013 52 58 0
3:2 54 57
5:21 52 58

0:7 48 51
1:19 48 50
1:1013 46 49 383
1:1013 52 55 0
3:2 52 54
5:21 52 55

0:7 48 51
1:19 48 50
1:1013 46 49 383
1:1013 54 57 0
3:2 54 56
5:21 54 57

0:7 48 51
1:19 48 50
1:1013 46 49 383
1:1013 52 54 0
3:2 54 53
5:21 52 54

0:7 48 51
1:19 48 50
1:1013 46 49 383
1:1013 54 55 0
3:2 54 54
5:21 54 55

0:7 48 51
1:19 48 50
1:1013 46 49 383
1:1013 54 56 0
3:2 56 55
5:21 54 56

0:7 48 51
1:19 48 52
1:1013 46 49 383
1:1013 54 53 0
3:2 54 54
5:21 54 53

0:7 48 51
1:19 48 52
1:1013 46 49 383
1:1013 52 54 0
3:2 54 55
5:21 52 54

0:7 48 51
1:19 48 52
1:1013 46 49 383
1:1013 50 56 0
3:2 52 57
5:21 50 56

0:7 48 51
1:19 48 52
1:1013 46 49 383
1:1013 54 54 0
3:2 56 55
5:21 54 54

0:7 48 51
1:19 48 52
1:1013 46 49 383
1:1013 54 55 0
3:2 54 56
5:21 54 55

0:7 48 51
1:19 48 52
1:1013 46 49 383
1:1013 52 57 0
3:2 52 58
5:21 52 57

0:7 48 51
1:19 46 50
1:1013 46 49 383
1:1013 56 55 0
3:2 54 54
5:21 56 55

0:7 48 51
1:19 46 50
1:1013 46 49 383
1:1013 54 56 0
3:2 54 55
5:21 54 56

0:7 48 51
1:19 46 50
1:1013 46 49 383
1:1013 52 58 0
3:2 52 57
5:21 52 58

0:7 48 51
1:19 46 50
1:1013 46 49 383
1:1013 54 54 0
3:2 54 53
5:21 54 54

0:7 48 51
1:19 46 50
1:1013 46 49 383
1:1013 54 55 0
3:2 52 54
5:21 54 55

0:7 48 51
1:19 46 50
1:1013 46 49 383
1:1013 52 57 0
3:2 50 56
5:21 52 57

0:7 48 51
1:19 46 52
1:1013 46 49 383
1:1013 54 53 0
3:2 52 54
5:21 54 53

0:7 48 51
1:19 46 52
1:1013 46 49 383
1:1013 54 54 0
3:2 54 55
5:21 54 54

0:7 48 51
1:19 46 52
1:1013 46 49 383
1:1013 56 55 0
3:2 54 56
5:21 56 55

0:7 48 51
1:19 46 52
1:1013 46 49 383
1:1013 52 54 0
3:2 52 55
5:21 52 54

0:7 48 51
1:19 46 52
1:1013 46 49 383
1:1013 54 56 0
3:2 54 57
5:21 54 56

0:7 48 51
1:19 46 52
1:1013 46 49 383
1:1013 52 55 0
3:2 50 56
5:21 52 55

0:7 48 51
1:19 46 52
1:1013 46 49 383
1:1013 54 57 0
3:2 52 58
5:21 54 57

0:7 48 51
1:1013 54 53 173
1:1013 54 54 169
1:1013 56 55 165
5:8 62
5:200 {Congratulations! You completed Horses of a Color!}
3:3 46 49 44 50
5:5 383 384

0:31 {@Pass}
1:19 44 48
5:200 {You pass on Horses of a Color}
3:3 46 49 44 50
5:5 383 384

0:31 {@Reset}
1:19 44 48
1:1013 46 49 383
5:8 30
5:200 {Resetting Horses of a Color}
3:3 52 54 52 58
4:4 40
5:4 0
3:2 54 53
5:4 165
3:2 54 54
5:4 173
3:2 56 55
5:4 169

0:7 44 47
1:1013 46 49 384
3:2 44 48
5:5 553 557

0:31 {@Back}
1:81 50 25 52 65
5:300 %Puzz1Occ 0
5:65 8 5 at 21 41
5:41 164 at 58 33
5:65 10 5 at 57 31

3:3 50 25 54 61
5:5 161 162
5:5 384 383
5:5 559 555
5:5 557 553

3:3 42 35 42 41
5:4 0
3:3 44 32 46 36
5:4 312

3:3 52 54 52 58
4:4 40
5:4 0
3:2 54 53
5:4 165
3:2 54 54
5:4 173
3:2 56 55
5:4 169

0:71 600
1:81 50 25 52 65
5:300 %Puzz1Occ 0
5:65 8 5 at 21 41
5:41 164 at 58 33
5:65 10 5 at 57 31
3:3 50 25 54 61
5:5 161 162
5:5 384 383
5:5 559 555
3:3 44 30 42 46
5:5 312 0
3:3 44 32 46 36
5:4 312

0:10
1:81 50 25 52 65
5:300 %Puzz1Occ 0
5:65 8 5 at 21 41
5:41 164 at 58 33
5:65 10 5 at 57 31
3:3 50 25 54 61
5:5 161 162
5:5 384 383
5:5 559 555
3:3 44 30 42 46
5:5 312 0
3:3 44 32 46 36
5:4 312

0:7 58 33
1:1013 44 44 383
5:200 {You must still complete the Knight Puzzle Puzzle A}
0:7 58 33
1:1013 52 34 383
5:200 {You must still complete the Switch Puzzle Puzzle B}
0:7 58 33
1:1013 46 49 383
5:200 {You must still complete Horses of a Color Puzzle C}
0:7 58 33
1:1013 52 34 384
1:1013 44 44 384
1:1013 46 49 384
1:1013 58 33 164
5:8 79
5:41 163 at 58 33
5:65 8 5 at 57 31
5:200 {You have completed Puzzle Set One.}

0:71 300
1:17 42
5:200 {You've been idle for 5 minutes. Because you've been blocking this puzzle you'll be moved back to the start in 5 minutes}
0:71 600
1:17 42
5:200 {You've been idle for 10 minutes. Because you've been blocking this puzzle you're going back to the start and your score has been set to 0!}
5:15 12 44
0:70 3600
1:110
5:200 {You've done SQUAT for an hour. Goodbye.}
5:78

0:31 {@Pass}
5:8 31
0:31 {@Back}
5:8 29
5:15 16 39
5:200 {You go back to the waiting room. Your score has been reset to 0}

*Endtriggers* 8888 *Endtriggers*
Last edited by Mr Initial Man; 11-20-2008 at 11:41 AM.

2. [Continued from Above]
BTW, it's a script for an in-progress series of puzzles and riddles.

I'm not kidding; it is virtually all numbers. The editor automatically adds commentary to let you know what you're doing, but what you see above is what it all boils down to.

If you consider XSLT to be a programming language (and it certainly acts like one), then it's a real oddball, too.

So, does anyone else know of a weird programming language they've used?
Last edited by Mr Initial Man; 11-20-2008 at 11:40 AM.

3. brainf*ck, the thing is really easy to learn, near impossible to master. http://tinyurl.com/4f6mt

And no-one likes whitespace, that's a language where only whitespace characters are valid characters, it's near impossible to understand.

4. If you want to include XSLT as a programming language it's not so bad,, certainly better than say VB. But then I have a C family preference and once thought that Modula would take off. XSLT-FO still makes me feel like I've fallen down the rabbit hole but I've not worked with anything worse than Z80 assembly.

5. Back in Ye Olde Days, I used a language called JaM on the Xerox Star, to do some graphics programming. It was sort of an assembly-level language, and the only storage you had was the execution stack. It was quite challenging, making sure that you had places to push and pop return addresses, as well as stuff all your data out there somewhere, and never overwrite anything. If you did, you'd be writing right on top of instruction pointers and all sorts of other kind of important things...

Here's some interesting info on how JaM fits in to Design System and Postscript... lots of big names involved at that point. http://www.cwanswers.com/8921/postscript

Dave

6. The sample in the original post reminds me just a bit of Forth -- maybe it's the leading colons?
Code:
( LED control )
HEX 40 CONSTANT LIGHTS DECIMAL
: LIGHT ( n -- ) LIGHTS OUTPUT ;

VARIABLE DELAY
: SLOW 500 DELAY ! ;
: FAST 100 DELAY ! ;
: COUNTS 256 0 DO I LIGHT DELAY @ MS LOOP ;

: LAMP ( n -- ) CREATE , DOES> ( a -- n ) @ ;
1 LAMP POWER      2 LAMP HV       4 LAMP TORCH
8 LAMP SAMPLING  16 LAMP IDLING

VARIABLE LAMPS    0 LAMPS !
: LAMP-ON  ( n -- )        LAMPS @  OR DUP LAMPS ! LIGHT ;
: LAMP-OFF ( n -- ) INVERT LAMPS @ AND DUP LAMPS ! LIGHT ;

Then there's RPG II, which I took a class in but never used it practically. It was weird in that it essentially emulated punch cards (and was derived for and from punch cards) in that the horizontal position of each token in a line was significant:
Code:
H
FSCREEN  O   F  80  80            CRT
C                     EXCPT
OSCREEN  E  1
O                                   12 'HELLO WORLD!'

7. Originally Posted by NogDog
Then there's RPG II, which I took a class in but never used it practically. It was weird in that it essentially emulated punch cards (and was derived for and from punch cards) in that the horizontal position of each token in a line was significant:
Code:
H
FSCREEN  O   F  80  80            CRT
C                     EXCPT
OSCREEN  E  1
O                                   12 'HELLO WORLD!'
Same with the early versions of Fortran, where you could spend hours fighting a bug, to find that you'd shifted the statement over one space and completely changed the meaning.

Dave

8. Originally Posted by tracknut
Same with the early versions of Fortran, where you could spend hours fighting a bug, to find that you'd shifted the statement over one space and completely changed the meaning.

Dave
Huh, I wasn't aware of that.

I remember working on my RPG homework assignments in the lab, taping a piece of a clear overlay I made at work with grid lines on it in order to help me line up columns of text.

9. Originally Posted by Charles
If you want to include XSLT as a programming language it's not so bad,, certainly better than say VB. But then I have a C family preference and once thought that Modula would take off. XSLT-FO still makes me feel like I've fallen down the rabbit hole but I've not worked with anything worse than Z80 assembly.
I would include XSLT as a programming language. It has input, it has output, it has a clear order of operations, it has loops, and it can make decisions.

I forgot about VB; that one's weird, too. Never heard of Modula, though. What's Z80 assembly?

COBOL is another weird one; I've yet to see its syntax anywheres else.

And three very common oddball languages:

1. CSS. I'm not kidding, while it's not exactly a programming language, it is a computer language. As far as I can tell, its syntax (and purpose for that matter) are unique.
2. SQL.
3. the stuff we use to for italics and lists and bold and what-have-you on this very bulleten board.

I would suggest that, just because a language is an oddball, doesn't make it rare.

EDIT: Oh, and how about a 2-dimensional language? Conway's Game of Life has been proven to be Turing-complete.
Last edited by Mr Initial Man; 11-21-2008 at 04:53 PM.

10. Atheism - #1 religion 4me
Join Date
Aug 2007
Location
Leeds, Yorkshire, England
Posts
387
What's Z80 assembly
My goodness, Sinclair Spectrum - my long term memory still functions. Many hours spent assembly programming - first z80 prog was to copy the z80 programs from an audio cassette into memory, then write them out to another cassette - some may call it pirating (only ever used for my own hi quality backups though)

11. Atheism - #1 religion 4me
Join Date
Aug 2007
Location
Leeds, Yorkshire, England
Posts
387
Any one come across Digital Research Concurrent dos or cdos386 operating systems - had a few days of fun with these.

12. Originally Posted by Yelgnidroc
My goodness, Sinclair Spectrum - my long term memory still functions. Many hours spent assembly programming - first z80 prog was to copy the z80 programs from an audio cassette into memory, then write them out to another cassette - some may call it pirating (only ever used for my own hi quality backups though)
I used to work for a local government (hence my concern for accessibility standards) and one day stumbling around the boiler room of an old school building I happened upon the County's computer graveyard. I pulled the memory from one of the 486 boxes and still use it for a key fob. But there were several things that I had never seen before. They looked like an old 486 PC but twice or so high with a rotating cylinder in the face. The cylinder had a whole bunch of slots radiating from the center. Apparently each slot took a cassette tape that would be rotated around to the tape heads as needed. They were an early attempt at a hard drive.

And I'm remembering my first program, written in Fortran and on punch cards.

I don't know if I would call SQL all that odd. It's small and seems to do the trick easily, unless you happen to be trying to add or update data.

I once described programming to my goode wyffe thusly: there are programming languages that get really close to the problem and there are programming languages that get really close to the machine. I tend to think of oddball those languages that get close to the machine at the expense of the way a human being would think about the problem. C comes to mind. What was the old joke? It has all of the efficiency of assembly language with all of the ease of assembly language.

13. I guess using PHP, Perl, Java, and Javascript have sort of skewed what I consider "Oddball." Certainly, those languages with specific purposes (SQL works with databases, CSS styles HTML and XML documents, DragonSpeak helps with Furcadia) have unusual syntax that are geared towards their purposes.

The reason I call SQL "odd" is because I've never seen another language like it.

14. i don't see anything possibly weird about CSS as a language. it's simply

Code:
((search operator)(search term))* {
(property : value)*
}
i think you guys only find DragonSpeak weird because you're stuck on c styled languages.

15. Originally Posted by chazzy
i don't see anything possibly weird about CSS as a language. it's simply

Code:
((search operator)(search term))* {
(property : value)*
}
i think you guys only find DragonSpeak weird because you're stuck on c styled languages.
When I started this thread about oddball languages, I meant languages that have unique syntax and grammar. CSS certainly has that, as does Dragonspeak. Didn't say there was anything wrong, just meant it was unusual.

Have you ever used DragonSpeak?