C ja Turing-täydellisyys

iteopiskellutnoviisi

En oikein ole hahmottanut ilmeisesti jotain Turing-täydellisyydestä tai C:stä. Käsitykseni mukaan

1. Turing-täydellinen ohjelmointikieli on sellainen, että sillä pystyy tekemään kaiken mitä tietokoneella voi ylipäätään tehdä.

2. C on Turing-täydellinen.

3. C:ssä ei ole grafiikanpiirto-ominaisuuksia.

Selvästi noihin sisältyy joku ymmärrysvirhe, kun tietokoneella voi tehdä grafiikkaa. Minkä kohdan olen ymmärtänyt väärin?

6

127

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • "C:ssä ei ole grafiikanpiirto-ominaisuuksia."

      Kieli ei tarvitse mitään "grafiikanpiirto-ominaisuuksia". Sitä varten käytetään alustan tarjoamaa rajapintaa. C:n tapauksessa se olisi yleensä GTK 2, tai vaikka SDL.

      • iteopiskellutnoviisi

        Yritätkö juksata? Wikipedian mukaan sekä GTK ja SDL on kirjoitettu C:llä. Tarkennanpa kysymystä. Onko se pikselinpiirtofunktio, jota GTK tai SDL käyttää C-koodin syntaksin mukainen vai kutsuuko kirjastot jollain muulla kielellä, esim. assemblyllä, kirjoitettua pikselinpiirtorutiinia, ja muu osa yllä olevista kirjastoista on kirjoitettu C:llä.


      • iteopiskellutnoviisi kirjoitti:

        Yritätkö juksata? Wikipedian mukaan sekä GTK ja SDL on kirjoitettu C:llä. Tarkennanpa kysymystä. Onko se pikselinpiirtofunktio, jota GTK tai SDL käyttää C-koodin syntaksin mukainen vai kutsuuko kirjastot jollain muulla kielellä, esim. assemblyllä, kirjoitettua pikselinpiirtorutiinia, ja muu osa yllä olevista kirjastoista on kirjoitettu C:llä.

        Epäoleellista alkuperäisen kysymyksen kannalta.

        Ei se grafiikka ole kuin numeroita muistipaikoissa ja se mitä näkyy ruudulla pikseleinä on jotkut tietyt muistipaikat järjestelmässä jotka siinä muutellaan.

        C-kielellä voi tehdä ihan minkälaista grafiikkaa haluat sinne muistipaikkoihin. Se että jossain välissä ohjataan itse hardwarea säätämällä joku muistialue vastaamaan ruudulla näkyviä pikseleitä ei liity millään tavalla Turing täydellisyyteen.

        GTK sekä SDL kutsuvat tavallisesti Xlib kirjastoa, ihan sillä C-kielellä mutta voivat kutsua myös muitakin rajapintoja. Turing täydellisyys tarkoittaa sitä että kielellä voi simuloida turingin konetta, ja voi siis näin ollen laskea mielivaltaisia laskuja kunhan muistikapasiteetti ja aika riittää. Toisin sanoen mielivaltaista grafiikkaa voidaan laskea Turing täydellisellä kielellä piirtämättä yhtään pikseliä ruudulle sillä kaikki voidaan tehdä jossain muistiavaruudessa. Turing täydellisyyteen ei kuulu syöte ja tulostusjärjestelmät vaan se laskenta.


    • Ja tarkennetaanpa:

      Se grafiikka siellä ruudulla on käytännössä pätkä tietokoneen muistia visualisoituna, jossa jokainen pikseli on muistipaikassa oleva numero.

      Näin ollen tekstitilassakin voi tehdä grafiikkaa pyörittelemällä pikseleitä jossain taulukossa ja taulukon voi tulostaa ruudulle.

      Graafisessa tilassa temppuun käytetään grafiikkakirjastoja joka tarjoaa rajapinnan siihen, että se mitä johonkin muistialueeseen kirjoitetaan näkyy ruudulla (eli näyttömuistissa). Lisäksi tarjoaa myös rajapintakutsut perustemppujen tekemiseen ettei tarvitse pikseli kerrallaan piirrellä.

      SDL:n kaverina voi käyttää vaikka OpenGL:ää niin grafiikan piirrot tehdään GPU:lla ja osaa sitten aika paljonkin temppuja.

      Kannattaa sitten muistaa se, että C kieli on pääsääntöisesti systeemitason kieli mutta sillä tehdään myös LSB:lle natiivisovellusta juttuja GTK kirjaston kautta. GTK 2 on tarkoitettu siihen että toimii siirrettävästi mutta GTK 3 sitten on lähinnä CentOS/Red Hat Enterprisen julkaisukohtainen ja Debianin rajapinta. GTK 3:lla ei siis luvata CentOS/Red Hat Enterprisellä, että sama koodi toimisi seuraavassa julkaisussa. C:tä käytetään myös Motif rajapinnalle.

      Pääsääntöisesti C:tä käytetään sulautetuissa vekottimissa, ja ohjelmat toimivat komentorivillä stdin/stdout. Graafisiakin tehdään.

    • pcmuseo
    • Olet ymmärtänyt hieman väärin mitä Turing-täydellinen tarkoittaa. Helpoin esimerkki lienee sään ennustaminen: Nopeampi tietokone voi laskea tunnissa vuorokauden sääennusteen. Hitaampi tietokone voi emuloida nopeampaa ja täten ennustaa säätä, mutta käyttää vuorokauden laskeakseen tunnin sääennusteen. Voi toisaalta sanoa, että hitaampi kone pystyy kaikkeen mihin nopeampikin, ja toisaalta ettei sillä kuitenkaan voi ennustaa säätä.

      Lähempänä totuutta oleva määritelmä on, kuten edellä todettiin, se, että Turing-täydellinen kone osaa käännellä bittijonoja siten kuin tietokone ylipäänsä voi. Näiden esittäminen on sitten eri asia: ei voi tulostaa värejä, jos ei ole tulostinta, mutta voi laskea ja piirtää ruudulle kuvan joka tulostettaisiin.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tollokin tajuaa että Timo Vornanen

      oli joutunut äärimmäiseen tilanteeseen ampuessaa yhden laukauksen katuun. Ei poliisi tee tuollaista hetken mielijohteest
      Maailman menoa
      697
      6429
    2. Istuva kansanedustaja epäiltynä pahoinpitelystä ja ampuma-aserikoksesta

      Seiskan tietojen mukaan Timo Vornanen on epäiltynä pahoinpitelystä ja ampuma-aserikoksesta eikä kenellekään taatusti tul
      Maailman menoa
      527
      3749
    3. Timo Vornanen kilahti

      Mikähän sille kansanedustajalle polisiisi miehelle on noin pahasti mennyt hermot , että tulevaisuudensa pilasi totaalise
      Kotka
      189
      3629
    4. Pullonpalautusjärjestelmä muuttuu - paluu menneisyyteen

      EU suuressa viisaudessaan on päättänyt, että pulloja pitää kierrättää. Jos oikein ymmärsin, nykyisen järjestelmänmme ti
      Maailman menoa
      172
      2824
    5. Sininen farmari - Ford Focus- YFB-842 on poliisilta kadoksissa Kauhajärvellä

      https://alibi.fi/uutiset/poliisilta-poikkeuksellinen-vihjepyynto-autossa-oleva-henkilo-on-avuntarpeessa/?shared=29255-2d
      Lapua
      10
      2529
    6. 290
      2278
    7. Onko oikeudenmukaista? Yhdellä taholla yllättävä valta-asema Tähdet, tähdet -voittajan valinnassa!

      Näinpä, onko sinusta tämä oikein? Viime jaksossakin voittaja selvisi vain yhden äänen erolla ja tänä sunnuntaina ensimm
      Tv-sarjat
      24
      1613
    8. Persukansanedustaja Timo Vornanen ammuskellut Helsingissä

      Poliisi siviiliammatiltaan, luvallinen ase mukana baarissa tällä hemmetin valopääpersulla. Meni eduskunnasta suoraan baa
      Haapavesi
      110
      1502
    9. No kerros nyt nainen

      Kumpi mielestäsi oli se joka väärinkäsitti kaiken? Nyt voi olla jo rehellinen kun koko tilanne on jo lähes haihtunut.
      Ikävä
      100
      1449
    10. Nainen, mietit miten minä jaksan

      En voi hyvin. Nykyään elämäni on lähinnä selviytymistä tunnista ja päivästä toiseen. Usein tulee epävarma olo, että mite
      Ikävä
      89
      1230
    Aihe