CTFE and DI: The Crossroads of D

deadalnix deadalnix at gmail.com
Thu May 10 14:22:30 PDT 2012


Le 10/05/2012 22:52, H. S. Teoh a écrit :
> On Thu, May 10, 2012 at 03:39:47PM -0400, Nick Sabalausky wrote:
> [...]
>>> The only thing that can come close to being uncrackable is something
>>> that's so hard to use that most people wouldn't bother with it.
>>> Which gave me a funny thought: one way of writing code that nobody
>>> can steal is to write it in MALBOLGE
>>> (http://www.lscheffer.com/malbolge.shtml).
>>
>> Geez that's insane! And I thought brainfuck was nuts.
> [...]
>
> Welcome to the weird and wonderful world of esolangs. :-) BF was just
> the beginning of the madness. INTERCAL is an amusing esolang in which
> you have to insert adequate amounts of the PLEASE command, otherwise you
> risk instant program termination. Then there's Java2K, which is a
> probabilistic language, in the sense that all operations only have a 90%
> chance of actually returning the correct result -- so the challenge is
> how to write code in such a way that the probability of your program
> producing the desired output is as close to 100% as you can get (it's
> not possible to guarantee 100% correctness... but then, what programming
> language can guarantee that? :-P).
>
> There's also Befunge and its spawn, in which the program counter is a
> vector rather than a counter, and program code is written on an
> n-dimensional grid. The neat thing about Befunge is that there's no
> special syntax for comments: you just write comments in-place and route
> your PC around the comment text. :-) (Clever programmers could, in
> theory, route certain program paths through comments to ensure that
> comments are always up-to-date with the code. :-P)
>
> In fact, I myself wrote a Befunge-like esolang once (when I was really,
> really, REALLY bored). My esolang is even weirder than Befunge in that
> it doesn't even have a program counter. Instead, the code consists of
> symbols written in a 4-dimensional array, and every iteration, every
> element of the array is "executed". Some symbols are passive (they don't
> do anything when "executed") and other symbols are active: they erase
> themselves from the current location and write themselves into a
> neighbouring location in the array. Based on the symbol in the target
> array cell, different things happen.
>
> The result is a bizarre physics-like simulation where active symbols
> (aka particles, representing binary 1 and 0) fly around in a 4D array,
> get reflected/duplicated by reflectors, and trigger output by
> simultaneously striking the output symbol in groups of 8, representing 8
> bits of the output character (now you know what I chose a 4D array: in
> 4D, there are exactly 8 neighbours surrounding each cell). The hello
> world program, for example, looks like this:
>
>      ..%..     ..}..     ..%..     .....     .....
>     ..'..     .v...     .. at v.     .....     ..,..
>    ..-..     .....     %)%..     .v at ..     ..,..
>   .....     ..v..     '....     ...V.     ..,..
> .....     @....     %(<..     @....     ..%..
>      .. at ..     .+...     ..V,.     .....     ....@
>     .}...     )!<].     .{)!<      .+.{.     .....
>    .....     .'+..     @]v-.     )!<+.     .{...
>   ..]..     .)!<.     ..{].     .-)!<      ...{.
> .....     ..-..     .....     ...-.     ..v..
>      ..%..     .. at ..     ..%..     .....     .>))%
>     ..+..     .^.v.     .V+A.     .....     ....+
>    %@%..     }.]..     %)!(%     .^{V[     ..%@%
>   '....     .V^..     ..-..     ...A.     ..'..
> %((..     @....     ..%..     .. at ..     ..%..
>      ..A..     ...,.     .,...     .....     ....@
>     ...].     .])!(     )!<{.     .[.+.     .....
>    @....     .,.'.     @-^].     ..)!<      @.^{.
>   .]...     )!<..     .[...     ...-.     .....
> .....     .'...     ..A..     .....     .. at ..
>      ..%..     ..[..     ..{..     .....     .....
>     .....     ...^.     .A...     .....     .....
>    %<(..     }....     %)%..     @..A.     .....
>   .. at ..     .^...     .. at ..     .....     .....
> ))%..     ..]..     ..%..     .....     .....
>
>
> This program is written on a 5x5x5x5 array, which is represented in
> ASCII as a 5x5 grid of slanted 5x5 grids (thus covering all 4
> dimensions). Why slanted? 'cos the perspective makes it clearer
> (*ahem*cough*) that they're slanting into the 3rd dimension.
>
> Granted, though, MALBOLGE takes the cake in terms of difficulty of
> implementation. My esolang is just a matter of routing and synchronizing
> the movement of particles so that they strike the output operator at the
> right times to produce the desired sequence of ASCII characters.
> MALBOLGE, OTOH, is so insanely twisted that no amount of rationalization
> will ever give you a working model of mapping desired semantics to code.
>
>
> T
>

Almost perfect. One of my favorite is french : goto++ http://www.gotopp.org/

Everything is made of goto. INTERCAL have the funiest comment system 
ever : all incorrect statements are comments.


More information about the Digitalmars-d mailing list