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

204

    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. Ja taas ammuttu kokkolassa

      Kokkolaisilta pitäisi kerätä pois kaikki ampumaset, keittiöveitset ja kaikki mikä vähänkään paukku ja on terävä.
      Kokkola
      30
      3471
    2. Kukka ampu taas Kokkolassa?

      T. olisi hetkeä aiemmin lähtenyt johonkin. Naapuri kai tekijä J.K., ei paljasjalkainen Kokkolalainen, vaan n. 100km pääs
      Kokkola
      9
      1538
    3. Kuinka kauan

      Olet ollut kaivattuusi ihastunut/rakastunut? Tajusitko tunteesi heti, vai syventyivätkö ne hitaasti?
      Ikävä
      113
      1463
    4. Milli-helenalla ongelmia

      Suomen virkavallan kanssa. Eipä ole ihme kun on etsintäkuullutettu jenkkilässäkin. Vähiin käy oleskelupaikat virottarell
      Kotimaiset julkkisjuorut
      224
      1255
    5. Kun näen sinut

      tulen iloiseksi. Tuskin uskallan katsoa sinua, herätät minussa niin paljon tunteita. En tunne sinua hyvin, mutta jotain
      Ikävä
      34
      893
    6. Purra saksii taas. Hän on mielipuuhassaan.

      Nyt hän leikkaa hyvinvointialueiltamme kymmeniä miljoonia. Sotea romutetaan tylysti. Terveydenhoitoamme kurjistetaan. ht
      Maailman menoa
      242
      883
    7. Yhdelle miehelle

      Mä kaipaan sua niin paljon. Miksi sä oot tommonen pösilö?
      Ikävä
      60
      869
    8. Helena Koivu on äiti

      Mitä hyötyä on Mikko Koivulla kohdella LASTENSA äitiä huonosti . Vie lapset tutuista ympyröistä pois . Lasten kodista.
      Kotimaiset julkkisjuorut
      130
      848
    9. Ja taas kerran hallinto-oikeus että pieleen meni

      Hallinto-oikeus kumosi kunnanhallituksen päätöksen vuokratalojen pääomituksesta. https://sysmad10.oncloudos.com/cgi/DREQ
      Sysmä
      66
      844
    10. Löydänköhän koskaan

      Sunlaista herkkää tunteellista joka jumaloi mua. Tuskin. Siksi harmittaa että asiat meni näin 🥲
      Ikävä
      97
      808
    Aihe