From Esolang
Jump to navigation Jump to search

A PDA to Splinter compiler

Very interesting work ais523 -- haven't yet had chance to run the program, but I'll try that once I get Perl installed and will also update the specs with this new info. I probably can upload your compiler, too? Funny to see the language gaining more computational power while my back was turned! :) The language was purposefully kept Turing-incomplete since it appeared to be so with its instruction set -- to keep the harmony nothing more was added to gain TCness, but it wasn't especially made to be finite-state automaton -- I only thought it was! It seems a program to increase memory ('stack') infinitely is possible afterall; I thought it wasn't, thus the finite-state machine classification (and also the fact I'm not an expert!). Great work! --Keymaker 19:32, 16 March 2008 (UTC)

My PDA to Splinter compiler is public-domain, although I forgot to state that explicitly, so uploading it is fine. I'm pretty sure it isn't TC, though, because the only place you can store an infinite amount of data is in the program, and that can only be accessed in a LIFO manner, which restricts languages to being push-down automata (Befunge-93 is non-TC for this reason; its only infinite data store is LIFO). I do like the language, though. (Incidentally, I've been wondering how many splinters are needed for PDAness; you can combine any number of splinters that you never change the value of into three (like I do with Z, A and B in the compiler), but I'm not yet sure if it's possible to do the same with splinters that you do assign to.) --ais523 09:59, 17 March 2008 (UTC)
I think the Z splinter is unnecessary (if what it does is to assign the first state. I never ran the compiler.) in your compiler. The same assign can be performed in the B splinter. --(this comment by at 15:01, 20 April 2009 UTC; please sign your comments with ~~~~)
IIRC, the Z splinter held the information that couldn't be clobbered from one iteration to another. It holds /all/ the states; A and B are used as temporaries to extract an individual state from Z. So you can't store that information in B, or you'll clobber it the first time you run an instruction.

A quine in Splinter

Awesome! I didn't even notice this until now!! Now this is a pleasant surprise, I thought (seemingly not too brightly) that a quine couldn't be made in it. Now why didn't I think of this? Great work, nice to see someone taking enough interest in this language to make a clever program like this. I'll have to make a new interpreter to run it, the current one can't run this without crashing, due a bug I didn't notice before but see now. --Keymaker 16:36, 20 April 2009 (UTC)
I've updated the interpreter, it shouldn't crash on any program anymore. I also wrote a new version of my '99 bottles of beer' program because it had a weird bug I hadn't noticed in all this time -- until tonight. --Keymaker 21:15, 20 April 2009 (UTC)

A problem in the site

In the site, when I click on the links, the window is being blank. Why that happens? How I can see the programs? --(this comment by at 14:57, 20 April 2009 UTC; please sign your comments with ~~~~)

The problem is probably related to your browser settings (the files are there and they're readable) -- .spl also happens to be the file extension of something Flash stuff. Try if you can save directly what the program links link ("Save linked content as..." in Opera, for example). --(this comment by Keymaker at 16:20, 20 April 2009 UTC; please sign your comments with ~~~~)

The shortest non-FSA program


This is an infinite loop, that in every evaulating of A, the program is extending with one more A, so it cannot be with finite number of states. -- 13:40, 24 April 2009 (UTC)

Yes, it's known the language is a push-down automaton in which the program is capable of infinite increase in stack-like fashion. --Keymaker 09:58, 25 April 2009 (UTC)