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

186

    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. Aivosyöpää sairastava Olga Temonen TV:ssä - Viimeinen Perjantai-keskusteluohjelma ulos

      Näyttelijä-yrittäjä Olga Temonen sairastaa neljännen asteen glioomaa eli aivosyöpää, jota ei ole mahdollista leikata. Hä
      Maailman menoa
      80
      2799
    2. Pelotelkaa niin paljon kuin sielu sietää.

      Mutta ei mene perille asti. Miksi Venäjä hyökkäisi Suomeen? No, tottahan se tietenkin on jos Suomi joka ei ole edes soda
      Maailman menoa
      293
      1610
    3. Mikä saa ihmisen tekemään tällaista?

      Onko se huomatuksi tulemisen tarve tosiaan niin iso tarve, että nuoruuttaan ja tietämättömyyttään pilataan loppuelämä?
      Sinkut
      246
      1517
    4. Minkä merkkisellä

      Autolla kaivattusi ajaa? Mies jota kaipaan ajaa Mersulla.
      Ikävä
      87
      1361
    5. IL - VARUSMIEHIÄ lähetetään jatkossa NATO-tehtäviin ulkomaille!

      Suomen puolustuksen uudet linjaukset: Varusmiehiä suunnitellaan Nato-tehtäviin Puolustusministeri Antti Häkkänen esittel
      Maailman menoa
      401
      1339
    6. Nyt kun Pride on ohi 3.0

      Edelliset kaksi ketjua tuli täyteen. Pidetään siis edelleen tämä asia esillä. Raamattu opettaa johdonmukaisesti, että
      Luterilaisuus
      396
      1273
    7. Esko Eerikäinen tatuoi kasvoihinsa rakkaan nimen - Kärkäs kommentti "Ritvasta" lävähti somessa

      Ohhoh! Esko Eerikäinen on ottanut uuden tatuoinnin. Kyseessä ei ole mikä tahansa kuva minne tahansa, vaan Eerikäisen tat
      Suomalaiset julkkikset
      38
      1017
    8. Kiitos nainen

      Kuitenkin. Olet sitten ajanmerkkinä. Tuskin enää sinua näen ja huomasitko, että olit siinä viimeisen kerran samassa paik
      Tunteet
      2
      979
    9. Hyväksytkö sinä sen että päättäjämme ei rakenna rauhaa Venäjän kanssa?

      Vielä kun sota ehkäpä voitaisiin välttää rauhanponnisteluilla niin millä verukkeella voidaan sanoa että on hyvä asia kun
      Maailman menoa
      329
      854
    10. Miksi Purra-graffiti ei nyt olekkaan naisvihaa?

      "Pohtikaapa reaktiota, jos vastaava graffiti olisi tehty Sanna Marinista", kysyy Tere Sammallahti. Helsingin Suvilahden
      Maailman menoa
      254
      832
    Aihe