Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Paradigmat

vinsentti [02.07.2016 06:43:49]

#

Moniparadigmaisuus, esim: perustyypit, oliot, geneerinen, funktionaalinen jne lasketaan ohjelmointikielten ansioksi. Esimerkiksi nämä neljä yhdessä kielessä tekevät kuitenkin ainakin kuusitoista kertaa monimutkaisemman kielen kuin esim puhdas oliokieli. "Ainakin" tulee paradigmojen yhteensovituksen vaikeudesta. "Kuusitoista" tulee siitä, että samankin paradigman ominaisuuksien yhteensovitus on vaikeaa puhtaissakin kielissä.

groovyb [02.07.2016 15:12:12]

#

Höpö höpö. Nuo on käsitteitä, jotka toimii ohjelmointikielestä toiseen. Kun ymmärtää käsitteet, kyse on vain syntaksin opettelusta. Esimerkiksi, olisi hyvin vaikeaa kuvitella koodausta ilman geneerisyyttä, se mahdollistaa niin paljon nykyohjelmoinnissa.

vinsentti [03.07.2016 12:19:39]

#

groovyb kirjoitti:

kyse on vain syntaksin opettelusta.

Voiko olla enemmän väärässä?

groovyb kirjoitti:

Esimerkiksi, olisi hyvin vaikeaa kuvitella koodausta ilman geneerisyyttä, se mahdollistaa niin paljon nykyohjelmoinnissa.

Totta, esimerkiksi oliokieleen kuuluu oleellisena osana käännösaikainen luokkien parametrointi tyypeillä. "Moniparadigmanakielet" ovat yrittäneet ensin ilman tätä piirrettä, kunnes se on ollut pakko pultata kylkeen. Geneeriseen paradigmaan kuuluu paljon muutakin kuin luokkien parametrointi eikä aina luokkien parametrointi ollenkaan.

fergusq [03.07.2016 18:53:46]

#

Minä en laskisi tyyppiparametreja tai edes olioita miksikään "paradigmaksi". Olen tähän mennessä nähnyt vain kahdenlaisia oikeasti erilaisia kieliä: sellaisia, jotka ovat kuin C, ja sellaisia, jotka ovat kuin Haskell. Imperatiivisuus ja funktionaalisuus ovat ainoat tuntemani kaksi epäyhteensopivaa paradigmaa.

Tyyppiparametrit ja -argumentit ovat vain yksi ominaisuus muiden joukossa. Eivät ne mielestäni mitenkään erityisesti määritä ohjelmointikieltä tai -tyyliä. Niillä voi tehdä joitakin asioita helpommin kuin ilman niitä, mutta ei sen kummempaa. Olisi mielivaltaista sanoa, että jokin ominaisuus ansaitsee "paradigman" aseman ja jokin toinen ominaisuus ei.

vinsentti kirjoitti:

esim puhdas oliokieli

Mikä on "puhdas oliokieli"? Ei sellaisia ole. Kaikissa kielissä on muitakin ominaisuuksia ja kuuluukin olla, sillä olioilla itsellään ei voi tehdä juuri mitään.

vinsentti [05.07.2016 15:57:51]

#

fergusq kirjoitti:

Minä en laskisi tyyppiparametreja miksikään "paradigmaksi".

Geneerinen (algebrallinen?) paradigma näkyy parhaiten C++n kehityksessä. STLn kehittäjä Stepanov hylkii olioita. Uuden paradigman noustessa esiin C++ yhteisö näkyy hautovan jotakin, jossa paljon vanhasta kielestä pudotetaan pois. Muiden paradigmojen vaikeasti sovitettavat piirteet ovat aiheuttaneet sekä massiivisuutta että vaillinaisia ratkaisuja.

fergusq kirjoitti:

Tyyppiparametrit ja -argumentit ovat vain yksi ominaisuus muiden joukossa.

Näin onkin, kun esimerkiksi rajoitutaan luokkien parametrointiin. Ei tarvitse kuin katsoa STLää nähdäkseen, että paljon muutakin tyyppiparametreilla voidaan tehdä.

fergusq kirjoitti:

Mikä on "puhdas oliokieli"? Ei sellaisia ole. Kaikissa kielissä on muitakin ominaisuuksia ja kuuluukin olla, sillä olioilla itsellään ei voi tehdä juuri mitään.

Kieli, jossa perustyypitkin ovat luokkia, tyypeillä voidaan parametroida vain luokkia ja myös takaisinkutsut tehdään oliopohjaisesti. Eli geneerisyys ja funktionaalisuus rajoitetaan yksittäisiksi piirteiksi. Kuten sanot, muitakin ominaisuuksia on, mutta ei villisti.

vinsentti [06.07.2016 10:55:54]

#

Vielä yksi yleisesti harjoitettu paradigma: PLC ohjelmoinnissa rajapinnoissa on vain sitä, mitä yleensä kutsutaan nimellä "properties". Rajapinnassa on kentille get-funktiot ja set-proseduurit, ei mielivaltaisia aliohjelmia. Tämä yksinkertaistus mahdollistanee mm useita graafisia- ja tekstimuotoisia ohjelman kirjoitus- piirtotapoja sekaisinkin samalle ohjelmalle ja useita vaihtoehtoisia ohjelman esitysmuotoja. PLC-väki ei piittaa paradigmoista eikä propertieseistä, mutta nimeän siitä huolimatta heidän tyylinsä properties-paradigmaksi. Heidän paradigmansa on muiden kielten yksi piirre monista.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta