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

125

    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. Heikki Silvennoinen petti vaimoaan vuosien ajan

      Viiden lapsen isä Heikki kehuu kirjassaan kuinka paljon on pettänyt vaimoaan vuosien varrella.
      Kotimaiset julkkisjuorut
      156
      2722
    2. Taasko se show alkaa

      Koo osottaa taas mieltään
      Ikävä
      24
      2006
    3. Miksi ihmeessä nainen seurustelit kanssani joskus

      Olin ruma silloin ja nykyisin vielä rumempi En voi kuin miettiä että miksi Olitko vain rikki edellisestä suhteesta ja ha
      Ikävä
      22
      2001
    4. Persut nimittivät kummeli-hahmon valtiosihteeriksi!

      Persujen riveistä löytyi taas uusi törkyturpa valtiosihteeriksi! Jutun perusteella järjenjuoksu on kuin sketsihahmolla.
      Perussuomalaiset
      89
      1806
    5. Onko ministeri Juuso epäkelpo ministerin tehtäviensä hoitamiseen?

      Eikö hänellä ole kompetenttia hoitaa sosiaali- ja terveysministetin toimialalle kuuluvia ministerin tehtäviä?
      Perussuomalaiset
      67
      1550
    6. Sakarjan kirjan 6. luku

      Jolla korva on, se kuulkoon. Sain profetian 22.4.2023. Sen sisältö oli seuraava: Suomeen tulee nälänhätä niin, että se
      Profetiat
      19
      1313
    7. Avaa sydämesi mulle

      ❤ ❤❤ Tahdon pelkkää hyvää sulle Sillä ilmeisesti puhumalla Avoimesti välillämme Kaikki taas selviää Kerro kaikki, tahdo
      Ikävä
      37
      1212
    8. Söpö lutunen oot

      Kaipaan aina vaan, vaikkakin sitten yksipuolisesti.
      Ikävä
      10
      1201
    9. Elia tulee vielä

      Johannes Kastaja oli Elia, mutta Jeesus sanoi, että Elia tulee vielä. Malakian kirjan profetia Eliasta toteutuu kokonaan
      Helluntailaisuus
      36
      1188
    10. Nellietä Emmaa ja Amandaa stressaa

      Ukkii minnuu Emmaa ja Amandaa stressaa ihan sikana joten voidaanko me koko kolmikko hypätä ukin kainaloon ja syleilyyn k
      Isovanhempien jutut
      9
      1171
    Aihe