Quadrilingual Crazy Programming
mtve writes: "Have you ever seen source code that is valid on four languages: Perl, C,
Befunge,
and BrainF*ck?
During last Perlgolf
season famous Perl hacker Jérôme
Quelin submit such inconceivable masterpiece and now he published expanded explanation
of his solution. Caution: that text can hurt your mental health. Play
Perlgolf!"
He uses the fact that # is a comment in Perl VERY frequently to use #defines etc that will allow C to act like Perl. Interesting solution, although I question whether the use of such preprocessor directives REALLY counts as making cross-compatible code. Then again, I nitpick the difference between preprocessor and compiler, so...
...on th web, anyhow. All the time we deal with several languages, burying one inside another so they'll make sense as they go through successive levels of parsing.
.');"> For those of you who are counting, that's SIX 'enders' in three syntax languages just to form a simple alert box.
. - English syntax
; - Javascript instruction syntax
For example, every day I write SQL that is buried in PHP libraries which extracts more PHP that in turn has HTML and Javascript in them.
For another example of the crazyness, check this simple example. Now if you look at the source, you'll notice the end part of that A-tag was:
' - Javascript string syntax
) - Javascript function syntax
" - HTML attribute syntax
> - XML (err, HTML, whichever) tag syntax
And that's not even a particularly hairy example. That's just client-side and wetware-side parsing.
Kevin Fox
Why not just do this instead:
Also, another minor quip: the C program is not valid C in either C89 or C99. It's not valid C89 because it uses '//' for a comment, and it's not valid C99 since it introduces main() without declaring the return type. C89 defaults to int if you don't declare the type (both for functions and variables, which can be fun), whereas this behaviour is undefined in C99. Normally, I don't follow the anal-retentive lingual purists, but I think this situation calls for this.
But yeah, this is pretty cool.