voisko joku kertoo mitä on ohjelmoinnissa lauseoppi eli syntaksi
voisko
4
333
Vastaukset
- ,,,,,,
Ihan sama asia kuin esim suomenkielessäkin, tai niin ainakin luulen. Siis kirjoitetaan
SELECT * FROM taulu eikä FROM taulu SELECT * - ymmärtää ainoastaan
1 tai 0, "sähkö tai ei" (kutsutaan binäärikoodiksi". Jos ohjelmoisimme tällä tavalla, näppäimistö olisi kyllä yksinkertainen ja pieni, ainoastaan kaksi näppäintä, mutta mellä voisi olla vaikeuksia muistaa mitä 010100001010010101001010010 oikein takoittaa.
Toisalta jos kirjoittaisimme "kuules kaveri, voisitko laskea kaikki numerot nollasta sataan yhteen", vaihtoehtoisesti "peevelin kottaraisenpönttö, sadan ensimmäsen numeron summa ja sassiin", niin tietokoneella voisi olla vähän vaikeaa ymmärtää meitä.
Siksi on kehitetty kieliä jotka toimivat välikappaleena meidän ja tietokoneen välillä. Nämä kielet ovat hyvin paljon yksinkertaistettuja (esim C-kielessä on oikeastaan ainoastaan 23 sanaa, kun Englantilaisen satamatyöläisen, Cockneyn, sanavarasto on 300 sanaa. Oma sanavarastosi on 5000-10000 sanaa).
Tämä "välikieli" meidän ja tietokoneen välillä kirjoitetaan erittäin tarkasti kieliopillisesti. Jokainen sana on oltava oikein kirjoitettu, kaikki pisteet ja pilkut ovat oikeissa paikoissa, "kielirakenne" on oltava oikea! Tämän välikielen sanavarasto ja kielioppi kutsutaan SYNTAKSI.
Tällaisia "välikieliä" on lukematon määrä. Jos ohjelma muuttaa niitä tietokoneelle ymmärrettävään muotoon ennen kuin tietokone suorittaa niitä, puhutaan "kääntäjästä" (esim. C/C , Fortran, Pascal ym.). Jos muunnos tapahtuu vasta suoritusvaiheessa puhutaan "tulkista" (SQL, Basic, Java, HTML/JavaScript ym.).
Jokaisella välikielellä on kuitenkin oma kielioppi, syntaksi.- q345
"Jos muunnos tapahtuu vasta suoritusvaiheessa puhutaan "tulkista" (SQL, Basic, Java, HTML/JavaScript ym.)."
Noista SQL ja Javan kohdalla voi olla hieman toista mieltä, nimittäin joissain tietokannoissa SQL voidaan valmiiksi kääntää joten aina ei ole tulkattava. Sekä Javan kohdalla riippuu mitä tuohon käsittää, nimittäin palvelinpuolella Javan voi valmiiksi kääntää.
Ja sitten HTML ei varsinaisesti ole ohjelmointikieli vaan kuvaus/merkkaus kieli joten periaatteessa se ei kuuluisi tuohon listaan. - paikkaansa
q345 kirjoitti:
"Jos muunnos tapahtuu vasta suoritusvaiheessa puhutaan "tulkista" (SQL, Basic, Java, HTML/JavaScript ym.)."
Noista SQL ja Javan kohdalla voi olla hieman toista mieltä, nimittäin joissain tietokannoissa SQL voidaan valmiiksi kääntää joten aina ei ole tulkattava. Sekä Javan kohdalla riippuu mitä tuohon käsittää, nimittäin palvelinpuolella Javan voi valmiiksi kääntää.
Ja sitten HTML ei varsinaisesti ole ohjelmointikieli vaan kuvaus/merkkaus kieli joten periaatteessa se ei kuuluisi tuohon listaan.lisäksi voidaan sanua että on myös olemassa tulkkaavia versioita "C-kielestä" (esim. jossain automaatiojärjestelmissä ja muistaakseni sellaisessa simulointiohjelmassa kuin Extend).
Basicille löytyy myös "kääntäjä".
Raja tulkin ja kääntäjän välillä on monesti veteen piirretty viiva, esim Python (joka on kääntävä kieli käyttää hyvin laajasti käännettyjä kirjastoohjelmia mikä myös selittää sen nopeutta tietyissä sovelluksissa.
Ottaen huomion alkuperäisen kysyjän arvioitu tietämystasoa, yritin kirjoittaa "kansanomaisen" helposti ymmärrettävän vastauksen (enkä osoittaa miten paljon itse tiedän näistä asioista).
Jos syventyy kysymyksen kannalta epäoleellisin seikkoihin, periaatteet ja kokonaisuus vain hämärtyy. Esim. HTML (joka monet tuntevat) ei ole varsinainen ohjelmakieli (vaikka silläkin on oma syntaksi), selain tulkaa sen kerran ja luo sen perusteella graafisen käyttöliittymän.Jos haluasin saivarrella voisin sanoa että javascript, php, asp ovat kaikki integroitu osa html, ja ne ovat ohjelmointikieliä (sisältävät kaikki ohjelmointikielen elementit (muuttujat, hypyt, toistot, ehdot jne)
Jos sanot että SQL-voidaan kääntää, minulla ei ole mitään syytä olla uskomatta sinua. Pystyn hyvin kuvittelemaan miten tällainen esikääntäjä toimii (muuttaa muuttujaarvot tekstistringeistä heidän oikeaan binärimuotoon esim. kokonais- tai liukuluvuksi, muutetaan avainsanat yhden tavun koodeiksi jne). Käsitykseni tällä voidaan saavuttaa tiettyjä etuja jos ohjataan tietokantaa hitaan verkon yli tai jos suoritetaan hyvin aikakriittisiä tehtäviä.
Normaalitilanteessa tästä kuitenkin on ainoastaan marginaalista hyötyä. SQL-lauseen (ovat tavallisesti melko lyhyitä) tulkaamiseen menee häviävän vähän aikaa verrattuna käskyn suorittamiseen (esim. hakuun tai tulosten lajitteluun)
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Ensi kesänä
Näin kesän viimeisenä minuutteina ajattelen sinua. Olisiko seuraava kesä "meidän" kesä? Tänä vuonna ei onnistuttu, mutta703550Anne Kukkohovin karmeat velat ovat Suomessa.
Lähtikö se siksi pois Suomesta ? Et on noin kar? mean suuret velat naisella olemassa1483503Tukalaa kuumuutta
Tietäisitpä vaan kuinka kuumana olen käynyt viime päivät. Eikä johdu helteestä, vaan sinusta. Mitäköhän taikoja olet teh463322- 532769
- 322036
Okei, myönnetään,
Oisit sä saanut ottaa ne housutkin pois, mutta ehkä joskus jossain toisaalla. 😘301962Et siis vieläkään
Et ilmeisesti ole vieläkään päässyt loppuun asti mun kirjoituksissa täällä. Kerro ihmeessä sit, kun valmista 😁 tuskin k401695- 481676
Mihin hävisi
Mihin hävisi asiallinen keskustelu tositapahtumista, vai pitikö jonkin Hannulle kateellisen näyttää typeryytensä961625- 391390