Tiuringinė metarekursija praktikoje

Panašu, kad nuo teorijos apie metateorijas reiktų truputį šoktelt link praktikos. Nes kaip bebūtų, man kažkodėl nesinori eiti link sudėtingesnės semiotikos dalies, nepraknaisiojus bazinės dalies, bent jau tos, kuri yra pagrindžiama formaliais metodais, t.y., per matematinį aparatą.

Kaip jau matėme iš tos teorijos apie metateorijas ir poros klausimų apie metateorijų tarpusavio santykius, pilnumą ir santykį tarp metakalbos ir natūralių kalbų, natūralioji kalba mažų mažiausiai gali būti panaudota, kaip metakalba visų matematinių teorijų aprašymui ir, sprendžiant iš Derida darbų, gali turėti net ir didesnį gilumą, t.y., ją naudojant, galima aprašyti Universalią Tiuringo Mašiną (UTM), tačiau naudojant UTM, nebūtinai galima, o gal būt ir negalima pilnai aprašyti natūralios kalbos. Pakankamai griežto pagrindimo, kuris būtų priimtinas matematikams, gal ir nėra, tačiau visgi daugybinė interpretacija kelia problemas.

Taigi, panagrinėkim nedidelį praktinį pavyzdį – tiesiog kompiuterį. Kaip žinia, kiekvienas mums įprastas kompiuteris yra pilnavertė UTM, kaip ir kiekviena programavimo kalba. Ir štai pavyzdys: koks nors Pentium grupės procesorius išties turi RISC branduolį, kuris emuliuoja i386 tipo CISC architektūrą, naudojant mikrokodą ir kai kurias aparatines priemones. T.y., viena Tiuringo mašina sukasi ant kitos. Jau ant tos emuliuojamos architektūros gali suktis kokia nors virtualių mašinų sistema. Ant šios – gali suktis kokia nors Java, ant kurios – vėl koks nors i386 emuliatorius, ant kurio – vėl kokia nors OS, virtualios mašinos, kita Java, ant kurios dar kas nors ir t.t., ir t.t. – kitaip tariant, turime krūvą kalbinių sluoksnių – kiekvienas su tam tikromis sintaksinės, semantinės ir pragmatinės analizės priemonėmis..

Iš matematinės pusės – viskas tvarkoje. Bet tiktai tol, kol visa ta daugiasluoksnė interpretatorių sistema nepradedama optimizuoti. Įsivaizduokime, kad, pvz., tiesiog turime Java mašiną, kuri sukasi ant kitos Java mašinos ir norime pagreitinti visą reikalą. Žinoma, paprasčiausias būdas – tai perkelti visas antrosios Java mašinos funkcijas į pirmąją ir antrosios programą vykdyti pirmojoje atskirai, tik pažymėtą, kaip emuliuojamą. Viskas labai gražu, kol neužduodi klausimo: o kaip nustatyti, ar emuliacija yra pilna, ar tik virtuali?

Kitaip tariant, klausimas gali būti suformuluotas ir kitaip: ar teksto/programos interpretatorius gali nustatyti, kad jo interpretacija yra pirminė, t.y., neįtakojama fundamentalesnių interpretacijų nustatomų apribojimų ar dėsnių? Galime įtarti, kad ne, nes įmanoma emuliacija, kuri neleidžia to nustatyti. Bet ar tai galioja praktiniams atvejams, t.y., ar pvz., gyvoji kalba gali būti emuliuojama taip, kad negalėtų nustatyti savo emuliavimo?

Dabar neprisimenu nei autoriaus, nei pavadinimo… Kadaise, prieš daugybę metų, buvo pakliuvusi į nagus nuostabi fantastinė knyga apie tai, kaip kažkokiame ateities pasaulyje iš kažkur atsirado virusinė kalba, ėmusi valdyti žmones. Autorius, kiek atsimenu, labai neblogai buvo susipažinęs su teoriniais semiotikos pagrindais. Ir nagrinėjo būtent panašų atvejį žmogaus galvoje. Žinoma, interpretacija buvo fantastinė, hipotetinė ir t.t., tačiau įdomi: o kas, jei tiesiog pasąmonė masto kita kalba, turi kitą prasmių, reikšmių ir ženklų sistemą?

Gerai, dar truputis iš formaliosios pusės: tie, kas giliau domėjosi senosios kartos virusais (tais, kurie plito dar DOS sistemoje), atsimena tokią virusų klasę, kaip polimorfikai. Tai buvo absoliučiai genialios programėlės, kurios generuodavo pačios save. Per kiekvieną tokio viruso pasidauginimą gaudavosi vis kitas kodas, kurio negalėdavo identifikuoti joks antivirusas pagal jokį šabloną – programa keisdavosi tiesiog neatpažįstamai, keisdama netgi ne tik pačią save, bet ir savo pačios generatorių. Ar tik neprimena tai natūraliųjų kalbų, kurios irgi nuolat keičiasi, mutuoja ir pasižymi išskirtiniu polimorfizmu visais požiūriais – ir semantiniu, ir pragmatiniu, ir sintaksiniu? Klausimas vėl: kaip atrasti tam tikrą pirminę struktūrą, jei ji išvis yra?

Rokiškis Rabinovičius rašo jūsų džiaugsmui

Aš esu jūsų numylėtas ir garbinamas žiurkėnas. Mano pagrindinis blogas - Rokiškis Rabinovičius. Galite mane susirasti ir ant kokio Google Plus, kur aš irgi esu Rokiškis Rabinovičius+.

15 thoughts on “Tiuringinė metarekursija praktikoje

  1. skirtumas

    DNR Tiuringas
    Aš vis bandau suprasti tą UTM koncepciją. Gali būti, kad beveik supratau… Sakyk ar DNR ir jos veikimą galima laikyti Tiuringo mašina?
    Dėl pirminės nat. kalbos struktūros: čia nepilnas klausimas. Reikia nusistatyti ribas, t.y. jeigu seka yra begalinė, tai viską galima suvesti į „Big Bang“. Jeigu sustoti ties gyvybės atsiradimu Žemėje, tai tas pats DNR arba kitų organinių junginių ženklų seka gali būti pirmine kalba/struktūra.
    Pats porą kartų minėjai, kad galima nuprotėti ardant ir gilinantis, manau, jog turiu neblogą saugiklį pasiūlymui: pragmatinį požiūrį. T.y. pristabdyti ten, kur tikrinant teoriją gali gauti didelės naudos, kad ir apatinėje Maslovo piramidės dalyje 🙂
    Fainas dalykas yra tas, kad nors metakalbų gali būti be galo ilga aibe, man regis, užtektų vienos papildomos metakalbos, kad galėtų „išversti“ vieną metakalbą į kitą nesvarbu kurioje vietoje eibės sekoje tos dvi esančios.
    P.S. O kur tie polimorfikai prapuolė?
    P.P.S. jau antras straipsnis be foto… Gi žadėjai… Su mergom berods?

    Reply
    1. rokiskis Post author

      Re: DNR Tiuringas
      Apie DNR kodavimą ir perstatymą nežinau tiek, kad galėčiau taip teigti. Tačiau mintis labai įdomi. Prieštaravimas: nėra požymių, kad yra mechanizmas, kuris keičia DNR tikslingai pagal programą, koduojamą DNR. Kita vertus, netikslingo ar evoliucinio keitimo variantai nagrinėtini.
      O kur prapuolė polimorfikai -- nežinau. Gali būti, kad kai Microsoft suteikė galimybęs virusų kūrėjams daryti savo organizmus ant visokių beisikų ir vbskriptų, rimtiems programuotojams tiesiog ėmė darytis gėda 🙂 Arba kažkas perėjo į rimtesnius darbus ir niekur niekas neprapuolė, tiesiog nerandama 🙂
      O dėl fotkių -- jo, apsileidau.

      Reply
      1. Anonymous

        Re: DNR Tiuringas
        Labai gera mintis apie DNR. Protiniai gebėjimai iš ten ir kyla. Gimstame su operacine sistema, kuri padeda mums viską suvokti ir tapti asmenybėmis.
        Romas

        Reply
        1. rokiskis Post author

          Re: DNR Tiuringas
          Operacinė sistema vykdo skaičiavimus, DNR -- nevykdo. Tačiau atvirkščias variantas gal ir galimas. Tiesa, sieti to su protiniais gebėjimais -- negalime. Jei žmogų nagrinėjame, kaip UTM, negalime jo konstrukcijos bent kiek tiesiogiai susieti su protingumo lygiu.

          Reply
          1. Anonymous

            Re: DNR Tiuringas
            Iš kur atsiranda tada visa reikalinga programinė įranga? Jokių instrukcijų rinkinio sukišti nereikia, kad naujagimis pradėtų veikti.
            Romas

            Reply
            1. rokiskis Post author

              Re: DNR Tiuringas
              Kaip metakalbos pasekmė. Jei egzistuoja ši, reiškia, egzistuoja ir jos rezultatas, o jei egzistuoja šis, reiškia, jis gali vystytis ir pagal savo dėsnius, jei tokie yra.

              Reply
          2. linuxr

            Re: DNR Tiuringas
            Nedidelė pataisa -- skaičiavimus vykdo procesorius (-iai) pagal op. sist. nustatytas taisykles

            Reply
            1. rokiskis Post author

              Re: DNR Tiuringas
              O čia labai įdomus klausimas. Ir pakankamai nevienareikšmiškas, kad būtų galima ilgai ir tikrai nenuobodžiai kapstytis, nes galim daryti labai įvairius pjūvius 🙂
              Taigi, žiūrint, kokiame lygyje ir žiūrint iš kokio taško žiūrėsime. Bet kuris interpretatorius išties atlieka operacinės sistemos funkcijas, tuo tarpu daiktas, kurį paprastai vadiname operacine sistema -- tai, sakykim, nepilna interpretatoriaus realizacija, kur procesoriaus funkcijos yra išplečiamos vienur ir apribojamos kitur. Galime tai tiesiog palyginti su skylėta, daline interpretatoriaus realizacija, kur matematiniai veiksmai yra perduodami žemesniam lygmeniui, kartu pasiliekant bendrą vykdymo kontrolę.
              Bendrai kabinant, jei OS atlieka ne tik horizontalų aparatūros išplėtimą, bet ir tam tikras vertikalias funkcijas, jau galim tarti, kad OS vykdo taikomąsias programas, nes perima šių valdymą, palikdama aparatūrą pasiekiama tik neesminėms operacijoms, kurios gali būti ir emuliuojamos, ir vykdomos aparatiškai. Čia, ko gero, labai tiktų palyginimas su USCD Pascal ir jos suksesoriais arba kad ir prisiminti prieš kelioliką metų kurtus Java čipus.
              Arba kad ir prisiminti virtualizuojančias OS, pradedant senutėle OS/360 ir baigiant kad ir kokiu šiuolaikiniu Solaris. Arba, kas dar įdomiau -- antivirusų emuliatorius, naudojamus, gaudant polimorfikus: kodas yra vykdomas, tačiau visiškai kitoje aplinkoje, o ir vykdymas yra emuliuotoje VM, turinčioje kiek kitų savybių, nei įprastas procesorius, tačiau paties gaudomo polimorfiko požiūriu -- neatskiriamoje nuo įprastos aplinkos.
              Arba dar kitaip: jei programa daro pertraukimą OS funkcijų iškvietimui, šių funkcijų vykdoma logika priklauso nuo OS, o ne nuo procesoriaus, nors iškvietimas yra vykdomas, kaip įprastas kodas.
              Kita vertus, galime tarti, kad Java VM vykdoma Java programa yra galutiniame rezultate vykdoma realaus procesoriaus, tačiau visgi galime atskirti tam tikrus loginius lygmenis -- procesoriaus, Java mašinos ir Java programos.
              Taigi, viskas ganėtinai keblu.

              Reply
  2. zeppelinus

    Re..sprendžiant iš Derida darbų, gali turėti net ir didesnį gilumą
    Pastaroji postų serija kažkaip labai jau negiliai, bet plačiai kapsto.
    Bene būsi pasigavęs mentalinį postmodernizmo virusą -- ar šiaip pajūryje saulės voniose persimaudei?:)

    Reply
  3. Anonymous

    i386
    o kodel reikia emuliuoti ta architektura, juk daug paprasciau butu pilnai aparatiskai padaryti, o ir veiktu greiciau?

    Reply
    1. rokiskis Post author

      Re: i386
      Dabar nesurandu vieno archyvinio straipsnio, kurį duočiau apie tas architektūras. Grubiai imant, i386 turi tokį didelį nesąmoningų paveldėjimų šleifą, kad netgi emuliuojant be specifinių aparatinių priemonių ant gero RISC, turinčio panašų sudėtingumą, našumas gautųsi didesnis. Jau nekalbant apie tai, kad emuliuoti šitą daiktą daug paprasčiau, nei sukurti jo aparatinį analogą.
      O šiaip, esminis dalykas -- ko gero, tiesiog superskaliarinė architektūra, kurios be metalygmens, t.y., komandų vykdymo predikcijos, realizuoti neįmanoma. Tad jau paprasčiau tiesiog padaryti du vykdymo lygmenis, o jei jau taip daroma, tai ir paoptimizuoti juos specifiškai 🙂

      Reply
  4. unless_spring

    > Kadaise, prieš daugybę metų, buvo pakliuvusi į nagus nuostabi fantastinė
    > knyga apie tai, kaip kažkokiame ateities pasaulyje iš kažkur atsirado
    > virusinė kalba, ėmusi valdyti žmones.
    Kartais ne Neal Stephenson „Snow Crash“? Jeigu ne, tai būtų įdomu sužinoti, kokia knyga ir kas autorius.

    Reply
    1. rokiskis Post author

      Ne, ne šitas… Labai seniai ten buvo. Man pačiam norėtųsi tai sužinoti, kas ten tas autorius ir kaip ten ta knyga vadinasi.
      Siužetas buvo maždaug toks, kad kažkokia ten kosminė imperija ir joje prasideda žiaurios diversijos netikėčiausiose, net geriausiai apsaugotose vietose. Prieš diversijas fiksuojami šifruoti ryšio seansai, dešifravus paaiškėja, kad tai pranešimai kažkokia visiškai nežinoma kalba. Spec. tarnybos suranda kiečiausią lingvistikos specialistę, kuri ima tirti tą kalbą, bandydama išsiaiškinti ir surasti vertimus. Po kiek laiko ima atrasti kalbos struktūrą, žodžių prasmes ir staiga paaiškėja, kad vos tik jos smegenys persijungia į tą kalbą, ji pati tampa žiauria diversante, nes kalba savo baziniais konceptais orientuota būtent tam reikalui ir jos nešėjas automatiškai persijungia į grynai diversantišką mastymą, tapdamas žudiku.
      Maždaug toks vat siužetas, jei tiksliai prisimenu. Ta diversinė kalba toje knygoje berods buvo vadinama Babilon-5 ar tai kažkaip panašiai.

      Reply
    2. rokiskis Post author

      Praknisau krūvas dar internetų, radau galų gale. Samuel Ray Delany, „Babel-17“.
      Kai skaičiau, mane tiesiog šokiravo, kad galima taip įdomiai rašyti apie tokius lingvistinius ir filosofinius konceptus. Rekomenduoju 🙂 Pats eisiu po internetus ieškot 🙂

      Reply

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *