voisko joku kertoo mitä on ohjelmoinnissa lauseoppi eli syntaksi
voisko
4
337
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
Riikka Purra haluaa muuttaa
maahanmuuttopolitiikkaa. Me suomalaiset halutaan, että Riikka Purra muuttaa pois suomesta eikä tuu ikinä takas....558709Maataloustuet pois
Jokainen maksakoon harrastuksensa itse. Eihän golfin peluutakaan maksa yhteiskunta.3026560Australia, Britannia ja Kanada tunnustivat Palestiinan
Aikooko Petteri Lapanen pysytellä persujen ja uskovaisten panttivankina ja jättää Suomen historian väärälle puolelle?995897- 1523790
Joulukinkku NYT
Sian kankuista tulee vielä pula. Nyt on oikea aika hankkia joulukinkku.283193Maahanmuuton vastustajat ovat vajakkeja
Jokainen täysijärkinen suomalainen tietää, että Suomi ei pärjää ilman ulkomaalaisvahvistuksia.613089- 1511823
On asioita joita kadun
Yksi niistä on eräs J mies. Olen vasta hiljattain tajunnut. Kuinka väärin tein. Tulit sydän tarjottimella.. mutta tässä171746- 321438
Mitä sä pelkäät?
Että paljastan sut ja touhusi? Elät jotain ihan omaa fantasiaasi ja ainoa virhees oli sekoittaa mut näihin sairaisiin le191186