Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Samankaltaiset tiedostot
vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

Laskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

Pinoautomaatit. Pois kontekstittomuudesta

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

Turingin koneen laajennuksia

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

1. Universaaleja laskennan malleja

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

Täydentäviä muistiinpanoja laskennan rajoista

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

Rajoittamattomat kieliopit

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

Lisää pysähtymisaiheisia ongelmia

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Yhteydettömän kieliopin jäsennysongelma

Rekursiiviset palautukset [HMU 9.3.1]

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 2016

1. Universaaleja laskennan malleja

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013

5.3 Ratkeavia ongelmia

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016

M = (Q, Σ, Γ, δ, q 0, q acc, q rej )

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Chomskyn hierarkia ja yhteysherkät kieliopit

Algoritmin määritelmä [Sipser luku 3.3]

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w}

Säännöllisen kielen tunnistavat Turingin koneet

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Muita universaaleja laskennan malleja

Automaatit. Muodolliset kielet

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

uv n, v 1, ja uv i w A kaikilla

Entscheidungsproblem

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

Säännöllisten kielten sulkeumaominaisuudet

DFA:n käyttäytyminen ja säännölliset kielet

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

Säännöllisten operaattoreiden täydentäviä muistiinpanoja

Olkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio};

Entscheidungsproblem

Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien

2. Laskettavuusteoriaa

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Tietojenkäsittelyteorian alkeet, osa 2

Kertausta 1. kurssikokeeseen

3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Rajoittamattomat kieliopit (Unrestricted Grammars)

Attribuuttikieliopit

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

ICS-C2000 Tietojenkäsittelyteoria. Tähän mennessä: säännölliset kielet. Säännöllisten kielten pumppauslemma M :=

jäsentämisestä TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 27. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

ICS-C2000 Tietojenkäsittelyteoria

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 29. huhtikuuta 2011

ICS-C2000 Tietojenkäsittelyteoria

3. Laskennan vaativuusteoriaa

2. Laskettavuusteoriaa

Tietotekniikan valintakoe

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 16. helmikuuta 2012

Ratkeavuus ja efektiivinen numeroituvuus

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

ICS-C2000 Tietojenkäsittelyteoria

S BAB ABA A aas bba B bbs c

C C. x 2. x 3 x 3. Lause 3SAT p m VC Todistus. Olk. φ = C 1 C 2 C m 3-cnf-kaava, jossa esiintyvät muuttujat. φ toteutuva:

Transkriptio:

sekä muita TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. kesäkuuta 2013

Sisällys

Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti lueteltava automaatti äärellinen (ennustava jäsennin) deterministinen pino pino lineaarirajoitettu Turingin kone

Moniraitainen TM k-raitainen Turingin kone (k 1) on Turingin kone, jonka nauhan lokeroissa on k nauhamerkkiä (järjestettynä jonona) kussakin ja joka lukee tai kirjoittaa kaikki k merkkiä samanaikaisesti. Käynnistettäessä syöte on ensimmäisellä raidalla, muut raidat ovat tyhjiä. Erikoistapaus k = 1 on standardimuotoinen TM. Simulointi standardimuotoisella TM:llä on lähes triviaalia: jos Γ 1,..., Γ k on k-raitaisen TM:n raitakohtaiset nauhamerkistöt, simuloivan koneen nauhamerkistö on (Γ 1 Γ k ) Γ 1. Syöte pitää toki kopioida nauhalta ensimmäiseen raitaan ennen simuloinnin alkua. Moniraitainen TM on siis yhtä vahva kuin standardimuotoinen TM.

Moninauhainen TM k-nauhainen Turingin kone (k 1) on Turingin kone, jossa on k toisistaan riippumatonta nauhaa. Lukupäitä ei ole pakko liikuttaa siirtymässä. Erikoistapaus k = 1, jossa lukupäätä liikutetaan aina, on standardimuotoinen TM. Voidaan simuloida esimerkiksi 2k-raitaisella Turingin koneella, jossa raita 2i sisältää nauhan i sisällön ja jossa raita 2i + 1 sisältää merkin, joka kertoo, missä kohtaa nauhan i lukupää on. Moninauhainen TM on siis yhtä vahva kuin moniraitainen TM ja siis kuin standardimuotoinen TM.

Epädeterministinen TM Epädeterministinen Turingin kone on yksinauhainen ja yksiraitainen Turingin kone, jossa sallitaan useampi kuin yksi siirtymä samasta tilasta samalla nauhamerkillä. Jos on mahdollista valita siirtymät siten, että laskenta päättyy hyväksyvään tilaan, epädeterministinen Turingin kone hyväksyy syötteen. Standardimuotoinen TM on epädeterministisen TM:n erikoistapaus. Mitä luulet? Voidaanko epädeterminististä TM:ää simuloida standardimuotoisella TM:llä?

Epädeterministisen TM:n rakenne Määritelmä Kahdeksikko M = (Q, Σ, Γ,, δ, q 0, q yes, q no ) on epädeterministinen Turingin kone (TM) (engl. nondeterministic Turing machine), jos siirtymäfunktiolle pätee δ : Q Γ P(Q Γ {L, R}), jossa Q = Q \ {q yes, q no }, ja jos M täyttää muilta osin standardimuotoisen TM:n määritelmän.

Epädeterministisen TM:n käyttäytyminen Tilanteet määritellään kuten standardimuotoiselle TM:lle. Määritellään tilanteiden välinen relaatio seuraavasti: wqcv wc q v jos δ(q, c) (q, c, R) wdqcv wq dc v jos δ(q, c) (q, c, L) qcw q c w jos δ(q, c) (q, c, L) wq wcq jos δ(q, ) (q, c, R) wdq wq dc jos δ(q, ) (q, c, L) q q c jos δ(q, ) (q, c, L) Määritellään lisäksi normaaliin tapaan.

Epädeterministisen TM:n kielet 1 M hyväksyy merkkijonon w Σ, jos on olemassa γ, γ Γ, joille q 0 w γq yes γ pätee. M hylkää merkkijonon w Σ, jos on olemassa γ, γ Γ, joille q 0 w γq no γ pätee. M:n tilanne γ 1 qγ 2 on hyväksyvästi (hylkäävästi) ratkeava, jos joko q = q yes (q = q no ) pätee tai kaikki tilanteet γ 1 q γ 2, joille pätee γ 1qγ 2 γ 1 q γ 2, ovat hyväksyvästi (hylkäävästi) ratkeavia. M ratkaisee merkkijonon w Σ, jos tilanne q 0 w on hyväksyvästi tai hylkäävästi ratkeava. M tunnistaa kielen, joka koosttuu sen hyväksymistä merkkijonoista. M on ratkaisija eli ratkaisee tunnistamansa kielen, jos se ratkaisee kaikki merkkijonot. 1 Korjattu luennon jälkeen.

Epädeterminismin simulointi Olkoon Q simuloitavan koneen tilojen joukko, Γ sen nauhamerkistö ja δ sen siirtymäfunktio. Olkoon n = max δ(q, c). q Q,c Γ Laaditaan kaikille i = 0,..., n 1 funktiot δ i siten, että kaikilla q Q, c Γ pätee δ(q, c) = n 1 i=0 δ i (q, c) ja kaikilla i = 0,..., n 1 pätee δ i (q, c) 1. Simuloiva TM on kolminauhainen. Ensimmäisellä pidetään syötettä. Toisella simuloidaan simuloitavan koneen nauhaa, alussa tyhjä. Kolmannella pidetään kirjaa tehtävistä valinnoista, alussa tyhjä.

Simuloivan koneen tilat Jokaista simuloitavan koneen tilaa vastaa jokin tietty simuloivan koneen tila. Lisäksi simuloivassa koneessa on aputiloja seuraavalla kalvolla esitettävän käyttäytymisen toteuttamiseksi. Simuloitavan koneen alku- ja lopputilat eivät ole simuloivan koneen alku- ja lopputiloja.

Simuloivan koneen toiminta 1. Kopioi ensimmäinen nauha toiselle nauhalle. 2. Siirrä kaikkien nauhojen lukupää nauhan alkuun. 3. Siirry simuloitavan automaatin alkutilaan. 4. Olkoon q automaatin nykyinen tila, c toisen nauhan lukupään kohdalla oleva merkki ja i kolmannen nauhan lukupään kohdalla oleva merkki. Jos i =, niin tee tilasiirtymä δ i (q, c) ja siirrä kolmannen nauhan lukupäätä yksi askel oikealle; jos siirtymä onnistui, suorita tämä askel uudestaan. 5. Jos ollaan simuloitavan koneen hyväksyvässä tilassa, siirry simuloivan koneen hyväksyvään tilaan. 6. Olkoon w kolmannen nauhan sisältö blankomerkit pois lukien. Kirjoita kolmannelle nauhalle sanakirjajärjestyksessä w:tä seuraava merkistön {0,..., n 1} merkkijono. 7. Tyhjennä toinen nauha ja hyppää askeleeseen 1.

Huomioita Epädeterministinen TM on siten yhtä vahva kuin standardimuotoinen TM. Koska TM:n variantit ovat yleensä yhtä vahvoja kuin standardimuotoinen TM, ei ole väliä, mitä TM:n varianttia käytetään.

Rekursiivisesti lueteltavat kielet Määritelmä Kieli on rekursiivisesti lueteltava, jos on olemassa yleinen kielioppi, joka tuottaa sen. Lause Olkoon L jokin kieli. L on rekursiivisesti lueteltava, jos ja vain jos on olemassa Turingin kone, joka tunnistaa L:n. Huomautus Väite ei päde, jos vaadittaisiin, että kyseinen kone ratkaisisi tuon kielen.

TM:n simulointi yleisellä kieliopilla Kieliopin päätemerkkeinä toimivat TM:n syötemerkit. Kieliopin välikemerkkejä ovat aloitusmerkki S T, B, E, X ja Y TM:n tilat ja ne nauhamerkit, jotka eivät ole syötemerkkejä A c jokaiselle TM:n syötemerkille c Ideana on esittää koneen tilanne wqv merkkijonona BwqvE, jonka edessä on koneelle annettu syöte (johon ei kosketa), ja jos kone hyväksyy syötteen, B:n ja E:n välinen osa (ne mukaan lukien) katoaa.

Kontekstiset kielet Määritelmä Kieli on kontekstinen, jos on olemassa kontekstinen kielioppi, joka tuottaa sen. Määritelmä Turingin kone on lineaarirajoitettu, jos se ei koskaan kirjoita blankomerkin päälle muuta kuin blankomerkin. Lause Olkoon L jokin kieli. L on kontekstinen, jos ja vain jos on olemassa epädeterministinen lineaarirajoitettu Turingin kone, joka tunnistaa L:n.

While-kieli Määritelmä While-kielen ohjelmat noudattavat seuraavaa kontekstitonta kielioppia: S ε S S S x := E; x := read; write E; S if B {S} while B {S} B E = E E E E < E B B B B B (B) E E + E E E c x (E) missä x on mielivaltaista muuttujannimeä ja c mielivaltaista kokonaislukuvakiota edustava päätemerkki.

Semanttisia huomioita Sivuutetaan tässä tarkka merkitysopin määrittely. Muuttujat sisältävät kokonaislukuja; lukualue ei ole rajattu. read lukee syötteestä yhden merkin, ja tallettaa sen koodin muuttujaan. Nolla tarkoittaa syötteen loppua write kirjoittaa tulosteeseen yhden merkin sen, jonka koodi on lausekkeen arvo. Jos lausekkeen arvo ei ole minkään merkin koodi, lause ei tee mitään. Ohjelma pysähtyy, kun ohjelman viimeinen lause on tullut loppuun suoritettua. Ohjelma tunnistimena: tulostetaan Y tai N ja pysähdytään. 2 2 Y ja N voisivat olla mikä tahansa muukin merkkipari. Olennaista on, että sovitaan, mitkä merkit tarkoittavat mitäkin.

While-ohjelmat ja Turingin koneet Huomaa Mikä tahansa tietokoneohjelma, joka laskee matemaattisen funktion, on periaatteessa esitettävissä myös while-kielellä. Lause Jokaiselle Turingin koneelle on olemassa while-kielinen ohjelma, joka tunnistaa saman kielen ja pysähtyy samoilla syötteillä. Vastaavasti jokaiselle while-kieliselle ohjelmalle on olemassa Turingin kone, joka tunnistaa saman kielen ja pysähtyy samoilla syötteillä. Todistus Tarkastellaan ideatasolla taululla, tarkka todistus sivuutetaan.

For-kieli Jos while-kielestä poistetaan while-lause ja sen tilalle laitetaan rajoitettu for-silmukka S for E {S} jonka toistokertojen määrä luetaan (silmukan suorituksen alkaessa) lausekkeen arvosta, saadaan for-kieli. Jokainen for-kielinen ohjelma voidaan muuntaa while-kieliseksi ohjelmaksi. On olemassa while-kielisiä ohjelmia, joita ei voi esittää for-kielellä!

3 engl. random-access machines, RAM yksinkertaistettu nykyaikaisen (ei-rinnakkaisen) tietokoneen teoreettinen malli kuten Turingin koneessa, myös RAM:ssa ohjelma on kovakoodattu itse koneeseen Hajasaantikone koostuu syötenauhasta, jota se ei kykene muuttamaan tulostenauhasta, jota se ei kykene lukemaan muistipaikoista, joilla kullakin on osoite muistipaikka tallentaa mielivaltaisen kokonaisluvun kiinteästä ohjelmasta, joka on jono käskyjä Kullakin käskyllä on järjestysnumero, ensimmäinen on 0. Käskyt koostuvat neljästä kentästä, joista ensimmäinen on operaattori ja kolme muuta ovat operandeja. Operandien tulkinta vaihtelee operaattoreittain; kaikkia operandeja ei aina käytetä. 3 Hajasaantikoneita ei keretty käsitellä, joten ne jäävät opiskelijoiden oman kiinnostuksen varaan ja koealueen ulkopuolelle.

Hajasaantikoneen käskyt READ r lukee syötteestä seuraavan merkin ja tallettaa sen muistipaikkaan r WRITE r kirjoittaa tulosteen loppuun merkin, joka löytyy muistipaikasta r JGT l r hyppää käskyyn numero l, jos muistipaikan r sisältö on suurempi kuin nolla CONST r 1 c kirjoittaa muistipaikkaan r 1 kokonaislukuvakion c LOAD r 1 r 2 kirjoittaa muistipaikkaan r 1 sen muistipaikan sisällön, jonka osoite löytyy muistipaikasta r 2 STORE r 1 r 2 kirjoittaa muistipaikan r 1 sisällön siihen muistipaikkaan, jonka osoite löytyy muistipaikasta r 2 ADD r 1 r 2 r 3 laskee muistipaikkojen r 2 ja r 3 sisältöjen summan ja tallettaa tuloksen muistipaikkaan r 1 SUB r 1 r 2 r 3 laskee muistipaikkojen r 2 ja r 3 sisältöjen erotuksen ja tallettaa tuloksen muistipaikkaan r 1

Hajasaantikoneen toiminta Lähtötilanteessa syötenauhan lukupää on nauhan alussa tulostenauhan kirjoituspää on nauhan alussa kaikki muistipaikat on alustettu nolliksi suoritettavaksi tulee käsky numero 0 Kone siirtyy käskyn suorituksen jälkeen järjestysnumeroltaan seuraavaan käskyyn, jos käsky ei aiheuta hyppyä. Kone pysähtyy jos käskyjonon viimeinen käsky ei aiheuta hyppyä JGT yrittää hypätä käskyyn, jota ei ole LOAD tai STORE löytää muistipaikaista osoitteen, joka ei vastaa mitään muistipaikkaa

Esimerkkiohjelma 4 0 CONST r 1 1 1 CONST r 2 2 2 READ r 10 3 SUB r 5 r 1 r 10 4 JGT 13 r 5 5 SUB r 5 r 10 r 1 6 JGT 9 r 5 7 ADD r 11 r 11 r 1 8 JGT 2 r 1 9 SUB r 5 r 10 r 2 10 JGT 13 r 5 11 SUB r 11 r 11 r 1 12 JGT 2 r 1 13 JGT 18 r 11 14 SUB r 5 r 0 r 11 15 JGT 18 r 5 16 WRITE r 1 17 JGT 19 r 1 18 WRITE r 2 4 Oikeastaan r i :n sijalla pitäisi lukea i, mutta näin se on ehkä selkeämpi luettava. Vaakaviivat osoittavat ns. peruslohkojen (engl. basic block) rajat.

RAM tunnistimena RAM hyväksyy syötemerkkijonon, jos se tulostaa Y ja pysähtyy. RAM hylkää syötemerkkijonon, jos se tulostaa N ja pysähtyy. RAM M tunnistaa kielen L(M) = { v Σ M hyväksyy v:n } Jos RAM M tunnistaa kielen A ja jokaiselle syötemerkkijonolle joko hyväksyy tai hylkää sen, niin M ratkaisee kielen A.

RAM:n ilmaisuvoima Lause 1. Jokaiselle Turingin koneelle on olemassa RAM, joka tunnistaa saman kielen ja pysähtyy samoilla syötteillä. 2. Jokaiselle RAM:lle on olemassa Turingin kone, joka tunnistaa saman kielen ja pysähtyy samoilla syötteillä. Todistus Sivuutetaan.