[rosedu-general] [offtopic] Programming Language Detection

Mihai Maruseac mihai.maruseac at gmail.com
Thu Sep 1 11:30:06 EEST 2011


2011/9/1 Adrian Scoica <adrian.scoica at gmail.com>:
> 2011/9/1 Tiberiu C. Turbureanu <tct at ceata.org>:
> [...]  Conținutul lor
>>>>> era format exclusiv din paranteze închise.
>
> Paranteze _inchise_? Daca singurul caracter pe care il aveau la
> dispozitie este paranteza inchisa, atunci este imposibil sa definesti
> un limbaj de programare cu el. O masina turing are nevoie de cel putin
> doua simboluri.
>
>> După parantezele care închid blocuri sigur *nu*
>> poți să îți dai seama despre ce limbaj din Războiul Rece este vorba, fie ele
>> rotunde, acolade sau pătrate [1].
>
> Nu cred ca foile erau acoperite de paranteze care inchid blocuri,
> pentru ca altfel ar fi fost si respectivele blocuri. Tot ce aveau
> oamenii aia la dispozitie erau paranteze. Daca ai _cel putin_ doua
> paranteze, atunci poti scrie cu ele o infinitate de limbaje. De
> exemplu:
>
> ( == 1 si ) == 0
>
> Cu astea poti sa scrii direct in cod masina, sau sa "spell out" ASCII
> pe biti, si asa mai departe (deci n-ai cum sa stii ce limbaj este,
> daca este unul).
>
> Sau, daca vrei sa se si inchida corect, poti face tot felul de
> izomorfisme (mai exact, o infinitate)
>
> Daca ai la dispozitie cel putin doua simboluri, poti defini cu ele
> limbaje oricat de complicate (pentru ca limbajele de programare au
> surse plain text, deci reductibile la un sir de biti).
>
> De exemplu, Whitespace[0] este un limbaj de programare care foloseste
> doar trei caractere: space, tab si newline.
>
> Astfel de limbaje extreme se numesc "Turing tarpits": limbaje
> turing-complete dpdv teoretic, dar in care trebuie sa iti parafrazezi
> viata ca sa exprimi ceva, si deci care nu au nici un sens practic. Un
> exemplu excelent este Brainfuck (look it up, it's fun) :).
>

Acum lucrez la un interpretor de BF in Haskell, e aproape gata,
trebuie să-l public. Și apoi vreau să mai fac o chestie cu el, va fi
fun ;)


More information about the rosedu-general mailing list