voisko

voisko joku kertoo mitä on ohjelmoinnissa lauseoppi eli syntaksi
4384
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Ihan sama asia kuin esim suomenkielessäkin, tai niin ainakin luulen. Siis kirjoitetaan
SELECT * FROM taulu eikä FROM taulu SELECT *

Äänestä

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.

Äänestä
  • "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.

    Äänestä

  • 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)

    Äänestä

Kommentoi aloitusta


??8 kirjoitti:

voisko joku kertoo mitä on ohjelmoinnissa lauseoppi eli syntaksi

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu