Ohjelmointikielten lauserakenteen syntaksimalli?

Onko olemassa jotain yleispätevää esitystä ylipäätään minkä tahansa ohjelmointikielen osalta lauserakenteesta, josta näkee esim, missä järjestyksessä kääntäjä tai tulkki käsittelee kunkin avainsanan, tai varatun sanan.

Itse etsiskelin SQL:ään tämänkaltaista kaaviota, mutta en löytänyt äkkiseltään. Tiedän, että on varmasti olemassa jossain maailman kolkassa tai kirjassa moniin käyttötilanteisiin kattaviakin esityksiä, mutta nopealla Googletuksella ekoilta sivuilta ei löytynyt.
10464
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

Ei ole yleispätevää toteutustapaa. Jokaisen kielen kohdalla, riippuen siitä miten systeemi on päätetty rakentaa, syntaksissa eri avainsanat sitovat eri vahvuudella eli käsittelyjärjestys voi vaihdella. Ollaksesi varma oikeasta käsittelyjärjestyksestä etsi tietoa kielikohtaisesti.

SQL:ssäkin, joka ei varsinaisesti ole ohjelmointikieli, voi riippua ihan "SQL-murteesta" miten se on toteutettu. Kyllähän SQL:ää tietysti on jossain määrin standardisoitu eli tehty yhteisiä sopimuksia siitä miten asiat tehdään. Tässä esim. on esittely SQL:n ANSI-standardista: http://www.whoishostingthis.com/resources/ansi-sql-standards/ . SQLiten ymmärtämä SQL on esitelty täällä: https://www.sqlite.org/lang.html . MySQL:lle on omansa, jne.

Äänestä

Ei ole yleispätevää toteutustapaa. Jokaisen kielen kohdalla, riippuen siitä miten systeemi on päätetty rakentaa, syntaksissa eri avainsanat sitovat eri vahvuudella eli käsittelyjärjestys voi vaihdella. Ollaksesi varma oikeasta käsittelyjärjestyksestä etsi tietoa kielikohtaisesti.

SQL:ssäkin, joka ei varsinaisesti ole ohjelmointikieli, voi riippua ihan "SQL-murteesta" miten se on toteutettu. Kyllähän SQL:ää tietysti on jossain määrin standardisoitu eli tehty yhteisiä sopimuksia siitä miten asiat tehdään. Tässä esim. on esittely SQL:n ANSI-standardista: http://www.whoishostingthis.com/resources/ansi-sql-standards/ . SQLiten ymmärtämä SQL on esitelty täällä: https://www.sqlite.org/lang.html . MySQL:lle on omansa, jne.

Äänestä
Aloittaja

Joo, tutustuin ja tuohon BNF-malliin viestini kirjoittamisen jälkeen muistaakseni jostain oppilaitoksen opintomonisteesta nappasin termin. Jos ei ole saatavilla, vähän kieleen, esim Javaan perehtymällä tai vähän enemmänkin perehtymällä on mahdollista luoda itsekin kyseinen kaava.

Äänestä
  • Aloittaja

    Tuo BNF-kaavio on tärkeä ihmiselle, joka ohjelmoi omaa ohjelmointikielen kääntäjää. Koulukurssilla oli kurssilla käytettävän pseudo-kielen kielioppi esitettynä.

    Nopealla hakukoneen vilkaisulla ainakin Java ja BNF-on yhdistetty tällaisella kiinalaisella saitilla:
    http://cui.unige.ch/isi/bnf/JAVA/BNFindex.html

    Äänestä

ATK-Instituutissa opetettiin muinoin teoreettistakin ohjelmointikieltä, puoliohjelmointia. Suomen näköisellä kielellä tehtiin kynällä paperille koetehtävät. Etuna oli se, että nk. puoliohjelmointi ei ollut riippuvainen mistään muotikielestä eikä murteesta, vaan oli kuin metakieli muiden kielten yläpuolella. Niin että rakenteesta ja termeistä tuli esille, mitä toimintoja tarkoitettiin, ja asia tai toiminta voitiin periaatteessa koodata mille kielelle hyvänsä.

1Äänestä
  • Tuo on oikein. Oikeaa ohjelmointia.

    Äänestä

Aloittaja

ATK-instituuttihan on datanomien ja merkonomien toisen asteen oppilaitos käsittääkseni. Yliopistossa on pseudo-kieli jo ensimmäisestä lukukaudesta lähtien mukana tietojenkäsittelyssä.

Äänestä

Jos oot nyt kattonut BNF:ää, niin vilaisehan tätä:

https://fi.wikipedia.org/wiki/Yhteydetön_kielioppi

Tunnetaan myös nimellä kontekstivapaa kielioppi, CFL, Context-Free Language.

BNF muistuttaa näitä, joskaan ei ole sama asia.

Äänestä

Kommentoi aloitusta


jerzunposti kirjoitti:

Onko olemassa jotain yleispätevää esitystä ylipäätään minkä tahansa ohjelmointikielen osalta lauserakenteesta, josta näkee esim, missä järjestyksessä kääntäjä tai tulkki käsittelee kunkin avainsanan, tai varatun sanan.

Itse etsiskelin SQL:ään tämänkaltaista kaaviota, mutta en löytänyt äkkiseltään. Tiedän, että on varmasti olemassa jossain maailman kolkassa tai kirjassa moniin käyttötilanteisiin kattaviakin esityksiä, mutta nopealla Googletuksella ekoilta sivuilta ei löytynyt.

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