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.
Ilmianna
Jaa

10 Vastausta



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.
Ilmianna
Jaa
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.
Ilmianna
Jaa
tutustupa tähän:

https://en.wikipedia.org/wiki/Backus–Naur_Form

https://en.wikipedia.org/wiki/Extended_Backus–Naur_Form

http://www.garshol.priv.no/download/text/bnf.html

ainakin PASCALille on olemassa Backus-Naur eli BNF -kaavio.

Mahdollisesti sellaisen voi löytää monelle muullekin ohjelmointikielelle.
Ilmianna
Jaa
tutustupa tähän:

https://en.wikipedia.org/wiki/Backus–Naur_Form

https://en.wikipedia.org/wiki/Extended_Backus–Naur_Form

http://www.garshol.priv.no/download/text/bnf.html

ainakin PASCALille on olemassa Backus-Naur eli BNF -kaavio.

Mahdollisesti sellaisen voi löytää monelle muullekin ohjelmointikielelle.
Ilmianna
Jaa
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.
Kommentoi
Ilmianna
Jaa
1 VASTAUS:
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
Kommentoi
Ilmianna
Jaa
+Lisää kommentti
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ä.
Kommentoi
1
Ilmianna
Jaa
1 VASTAUS:
Tuo on oikein. Oikeaa ohjelmointia.
Kommentoi
Ilmianna
Jaa
+Lisää kommentti
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ä.
Ilmianna
Jaa
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.
Ilmianna
Jaa

Vastaa alkuperäiseen viestiin

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.

5000 merkkiä jäljellä

Peruuta