2011/9/1 Adrian Scoica <[email protected]>: > 2011/9/1 Tiberiu C. Turbureanu <[email protected]>: > [...] 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 ;) _______________________________________________ http://lists.rosedu.org/cgi-bin/mailman/listinfo/rosedu-general
