Mitkä seikat johtivat siihen että imperatiivista ohjelmointiparadigmaa käytetään enemmän kuin funktionaalista. Ihmettelen asiaa siksi, että usein kuulee sanottavan, jotta funktionaalinen lähestymistapa olisi parempi. Sitä pidetään selkeämpänä, ja se on käsittääkseni menetelmä jolla ohjelmat olisi aina pitänyt tehdä.
Olisiko syynä se että tietokoneet eivät ratkaise ongelmia niin rationaalisesti kuin luullaan. Ohjelmat ovat jonkinmoisia taiteellisia virityksiä - enemmän kuin yleensä pidetään. Ne käsittelevät tietoa soluautomaattina, eli mössönä.
Imperatiivisen paradigman suosion syy
19
705
Vastaukset
- ,..
>>Olisiko syynä se että tietokoneet eivät ratkaise ongelmia niin rationaalisesti kuin luullaan.
- Järkee-Vai-Ei
"Olisi järjettömyyden huippu hoitaa esimerkiksi järjestelmäohjelmointi käyttäen funktionaalista ohjelmointiparadigmaa."
"The operating systems were written in Lisp Machine Lisp, InterLisp (Xerox) and later partly in Common Lisp."
http://en.wikipedia.org/wiki/Lisp_machine
No, Lisp ei puhdas fuktionaalinen kieli, vaan multiparadigmaa, mutta kyllä noissa Lisp-koneissa varmaankin käytettiin paljon funktionaalista tapaa. - ,..
Järkee-Vai-Ei kirjoitti:
"Olisi järjettömyyden huippu hoitaa esimerkiksi järjestelmäohjelmointi käyttäen funktionaalista ohjelmointiparadigmaa."
"The operating systems were written in Lisp Machine Lisp, InterLisp (Xerox) and later partly in Common Lisp."
http://en.wikipedia.org/wiki/Lisp_machine
No, Lisp ei puhdas fuktionaalinen kieli, vaan multiparadigmaa, mutta kyllä noissa Lisp-koneissa varmaankin käytettiin paljon funktionaalista tapaa.Niin aivan. Vain "käyttöjärjestelmä" olikin koodattu Lispillä. Sen voisi tehdä nykyäänkin sillä edellytyksellä, että ohjelmointikieli luo odotetut opcodet mutta prosessi voi hyvin nopeasti kompastua omiin nilkkoihinsa koska Lispin ideologia on kaukana järjestelmäohjelmoinnista ja vie usein ohjelmoijaa perässään. Lisp machine on tällainen mainio esimerkki huonosta esimerkistä.
Ja jos luit itse tarkaan tuolta sivulta, niin tietokoneen prosessori toimi joka tapauksessa imperatiivisen mallin mukaan mikä on itsestään selvää. 0 bitti = sähkö ei kulje, 1 bitti = sähkö kulkee. Mikäli et ymmärtänyt niin ota selvää. - KN$
,.. kirjoitti:
Niin aivan. Vain "käyttöjärjestelmä" olikin koodattu Lispillä. Sen voisi tehdä nykyäänkin sillä edellytyksellä, että ohjelmointikieli luo odotetut opcodet mutta prosessi voi hyvin nopeasti kompastua omiin nilkkoihinsa koska Lispin ideologia on kaukana järjestelmäohjelmoinnista ja vie usein ohjelmoijaa perässään. Lisp machine on tällainen mainio esimerkki huonosta esimerkistä.
Ja jos luit itse tarkaan tuolta sivulta, niin tietokoneen prosessori toimi joka tapauksessa imperatiivisen mallin mukaan mikä on itsestään selvää. 0 bitti = sähkö ei kulje, 1 bitti = sähkö kulkee. Mikäli et ymmärtänyt niin ota selvää."Ja jos luit itse tarkaan tuolta sivulta, niin tietokoneen prosessori toimi joka tapauksessa imperatiivisen mallin mukaan mikä on itsestään selvää."
Ei siellä lue mitään tuollaista. Mutta kun tiedetään että syöttö ja tulostuskin ovat vaikeaa toteuttaa funktionaalisesti, niin miksi edes rakentaa täysin funktionaalista konetta...? - ,..
KN$ kirjoitti:
"Ja jos luit itse tarkaan tuolta sivulta, niin tietokoneen prosessori toimi joka tapauksessa imperatiivisen mallin mukaan mikä on itsestään selvää."
Ei siellä lue mitään tuollaista. Mutta kun tiedetään että syöttö ja tulostuskin ovat vaikeaa toteuttaa funktionaalisesti, niin miksi edes rakentaa täysin funktionaalista konetta...?>>Ei siellä lue mitään tuollaista.>Mutta kun tiedetään että syöttö ja tulostuskin ovat vaikeaa toteuttaa funktionaalisesti, niin miksi edes rakentaa täysin funktionaalista konetta...?
- KN$
,.. kirjoitti:
>>Ei siellä lue mitään tuollaista.>Mutta kun tiedetään että syöttö ja tulostuskin ovat vaikeaa toteuttaa funktionaalisesti, niin miksi edes rakentaa täysin funktionaalista konetta...?
"Laitetaso ei tunne kuin imperatiivisen ohjelmointiparadigma"
http://en.wikipedia.org/wiki/Lisp_machine
The processor did not run Lisp directly, but was a stack machine with instructions optimized for compiled Lisp. The early Lisp Machines used microcode to provide the instruction set. For several operations type checking and dispatching was done in hardware at runtime. There was for example only a single addition operation that could be used with various numeric types (integer, float, rational and complex numbers). The result was a very compact compiled representation of Lisp code.
Et voi sanoa ettei laitteistotaso tunne funktionaalista paradigmaa. Sillä ettei se aja lispiä "suoraan", ei ole mitään merkitystä. Ei tämä ole niin mustavalkoista.
1980-luvulla, jolloin Lisp Machine rakennettiin, oltiin mielestäni jo orientoiduttu imperatiivisten suorittimien valmistamiseen. Kysymys paradigman suosiosta ei ole niin helppo kuin luulet. - Järkee-Vai-Ei
,.. kirjoitti:
>>Ei siellä lue mitään tuollaista.>Mutta kun tiedetään että syöttö ja tulostuskin ovat vaikeaa toteuttaa funktionaalisesti, niin miksi edes rakentaa täysin funktionaalista konetta...?
"Laitetaso ei tunne kuin imperatiivisen ohjelmointiparadigman"
"The hardware implementation of **almost** all computers is imperative"
http://en.wikipedia.org/wiki/Imperative_programming
"joten on sama käytätkö imperatiivista ohjelmointiparadigmaa vai funktionaalista;"
Jos koodaan (puhtaalla) funktionaalisella kielellä, niin eipä paskaakaan kiinnosta muuttuuko se imperatiiviseksi prosessoritasolla. Koodarille koko roska näkyy täysin funktionaalisena.
"Joko tuli selväksi miksi imperatiivinen ohjelmointiparadigma on suositumpi? "
Onhan se selvää koska prossut ovat lähes aina imperatiivisia ja sitä kautta myös kieliin on valunut imperatiivinen tapa, mutta mitään pakottavaa syytä siihen ei ollut. (Paitsi kai suorituskyky) Eli ei tämä aivan itsestään selvää ole.
Mutta mitäpä noilla syillä on väliä - tulevaisuus voi olla funktionaalisten voittokulkua tai ainakin lisääntyvää käyttöä, kun jopa radikaalin innovatiivinen Microsoft on kehittänyt erään funktionaalisen kielen (F#).
- ölkjasdöf
funktionaalisessa ohjelmoinnissa ei käytetä muuttujia. Ei ole for- tai while-looppeja tai if-lauseita ilman elseä. Jos haluat vaikka laskea listassa olevien numeroiden summan, sanot että: summa on listan ensimmäinen alkio loppulistan alkioiden summa, ja jos lista on tyhjä, summa on 0. Funktiot ottavat argumentteja ja palauttavat jotain, ja ohjelmassa data virtaa funktiosta seuraavaan. Imperatiivisessa ohjelmoinnissa rakennetaan konetta jolla on jokin tila, ja sitä tilaa sitten ropataan tilanteeseen sopivaksi (näinhän tietokone toimii). Funktioiden paluuarvot eivät välttämättä enää riipu niiden argumenteista, vaan myös ohjelman tilasta. En osaa sanoa miksi, mutta ehkä tällainen lähestyminen sopii joihinkin asioihin paremmin :)
- KN$
"Funktioiden paluuarvot eivät välttämättä enää riipu niiden argumenteista, vaan myös ohjelman tilasta."
Tuo on aika oleellinen ero, koska se tarkoittaa sitä, ettei funktio voi koskaan 'oppia' mitään. Tarkastellaan vaikka häviötöntä pakkausohjelmaa, jonka on teoriassa opittava sääntöjä pakkaamastaan datasta. Ohjelman sisäiseen tilaan kertyy tietoja siitä, millaista pakattava data on. Yksittäinen olio voi pakata tietoa merkki kerrallaan, tallentaen esim. toistuvia merkkisarjoja jäsenmuuttujiinsa. Funktiolle on vähintäänkin syötettävä koko pakattava materiaali kerralla. Siispä funktiolla ei ole 'aikaa'.
http://akvama-ajattelua.blogspot.com/2010/02/lisaa-aixista.html- dx
Ei ole totta. Funktionaalinen ohjelmointi (vrt. myy-rekursiiviset funktiot) on täysin yhtä ilmaisuvoimaista kuin proseduraalinen (vrt. Turingin kone). Ajattelet nyt vaan naivin proseduraalisesti.
- dx
dx kirjoitti:
Ei ole totta. Funktionaalinen ohjelmointi (vrt. myy-rekursiiviset funktiot) on täysin yhtä ilmaisuvoimaista kuin proseduraalinen (vrt. Turingin kone). Ajattelet nyt vaan naivin proseduraalisesti.
En huomannut tuota linkkiä kuin vasta nyt - mutta siis jotenkin nyt tuntuu, että KN$:lla on perus tietojenkäsittelyteoria hakusessa, jos ei ihan äkkiä hahmota kuinka AIXI:kin on toteutettavissa ihan yhtä hyvin funktionaalisenakin kuin tilallisena toteutuksena. Taisi mennä malli ja implementaatio sekaisin.
- KN$
dx kirjoitti:
En huomannut tuota linkkiä kuin vasta nyt - mutta siis jotenkin nyt tuntuu, että KN$:lla on perus tietojenkäsittelyteoria hakusessa, jos ei ihan äkkiä hahmota kuinka AIXI:kin on toteutettavissa ihan yhtä hyvin funktionaalisenakin kuin tilallisena toteutuksena. Taisi mennä malli ja implementaatio sekaisin.
"AIXI:kin on toteutettavissa ihan yhtä hyvin funktionaalisenakin kuin tilallisena toteutuksena"
Agentilla on sisäinen tila, joten tilallinen paradigma sopii kuvaamaan sitä heti paremmin. Tietenkin saat mennä perse edellä puuhun ja pyrkiä välttämään tilallista paradigmaa, vaikka älykkyyden ensimmäinen lähtökohta on tilakone.
Mutta kaikki on suhteellista ja älykkyys varmasti tarvitsee tilakoneen lisäksi hieman funktionaalista rakennetta, jotta liialliselta sivuvaikutukselta (psykooseilta) vältytään.
- Virke Pitkä
Mielestäni tärkein syy Imperatiivisen ohjelmointiparadigman suosioon on se yksinkertainen tosiseikka että lähestulkoon kaikki maailman tietokoneet ymmärtävät vain tuolla ohjelmointiparadigmalla tuotettua koodia, ts. konekielellä pystyy ohjelmoimaan kaikkien ohjelmointiparadigmojen mukaisesti ja muut korkeamman tason kielet ovat vain keinotekoisesti rajoitettu sallimaan vain tietynlainen ohjelmointi ihmisen rajoittuneiden mentaalisten kykyjen vuoksi.
- KN$
"lähestulkoon kaikki maailman tietokoneet ymmärtävät vain tuolla ohjelmointiparadigmalla tuotettua koodia"
Kyllä, mutta miksi laitteisto olisi määräävässä asemassa? Jos haluttaisiin koodata funktionaalisilla kiellä, niitä varten voitaisiin tehdä tietokone, jossa on vaikka useita suorittimia, joka sopii funktionaalisille kielille paremmin. - PePe,
KN$ kirjoitti:
"lähestulkoon kaikki maailman tietokoneet ymmärtävät vain tuolla ohjelmointiparadigmalla tuotettua koodia"
Kyllä, mutta miksi laitteisto olisi määräävässä asemassa? Jos haluttaisiin koodata funktionaalisilla kiellä, niitä varten voitaisiin tehdä tietokone, jossa on vaikka useita suorittimia, joka sopii funktionaalisille kielille paremmin.>>Jos haluttaisiin koodata funktionaalisilla kiellä, niitä varten voitaisiin tehdä tietokone, jossa on vaikka useita suorittimia, joka sopii funktionaalisille kielille paremmin.
- KN$
PePe, kirjoitti:
>>Jos haluttaisiin koodata funktionaalisilla kiellä, niitä varten voitaisiin tehdä tietokone, jossa on vaikka useita suorittimia, joka sopii funktionaalisille kielille paremmin.
"pitää olla Lisp masiinoitakin"
Onhan niitä ollut...
http://fi.wikipedia.org/wiki/Lisp-kone - ,..
KN$ kirjoitti:
"pitää olla Lisp masiinoitakin"
Onhan niitä ollut...
http://fi.wikipedia.org/wiki/Lisp-koneHyvä, hienoa! Hanki sellainen ja jatka trollausta sen välityksellä.
- ölkjasdöf
"lähestulkoon kaikki maailman tietokoneet ymmärtävät vain tuolla ohjelmointiparadigmalla tuotettua koodia"
Käännettynä: Suurimmalle osalle eri prosessoreita ei ole saatavissa yhtäkään funktionaalisen kielen kääntäjää.
"korkeamman tason kielet ovat vain keinotekoisesti rajoitettu sallimaan vain tietynlainen ohjelmointi ihmisen rajoittuneiden mentaalisten kykyjen vuoksi. "
Käännettynä: Kaikki muu kuin hexaeditorilla ohjelmointi on keksitty helpottamaan ohjelmoijan elämää.
Senhän takia ohjelmointikieliä on, ettei ihminen ajattele kuten tietokone. Eikä tarvitsekaan. Mites se hokema meni... "Oikea työkalu oikeaan tarkoitukseen."
Tämä taas on täyttä puppua: "ts. konekielellä pystyy ohjelmoimaan kaikkien ohjelmointiparadigmojen mukaisesti" .. Luultavasti et ole edes koskenut yhteenkään funktionaaliseen kieleen. Ei sillä, että itsekään olisin aiheessa kokenut ;) Mutta tarpeeksi kuitenkin, että puppugeneraattoritunnistin toimii. - Virke Pitkä
ölkjasdöf kirjoitti:
"lähestulkoon kaikki maailman tietokoneet ymmärtävät vain tuolla ohjelmointiparadigmalla tuotettua koodia"
Käännettynä: Suurimmalle osalle eri prosessoreita ei ole saatavissa yhtäkään funktionaalisen kielen kääntäjää.
"korkeamman tason kielet ovat vain keinotekoisesti rajoitettu sallimaan vain tietynlainen ohjelmointi ihmisen rajoittuneiden mentaalisten kykyjen vuoksi. "
Käännettynä: Kaikki muu kuin hexaeditorilla ohjelmointi on keksitty helpottamaan ohjelmoijan elämää.
Senhän takia ohjelmointikieliä on, ettei ihminen ajattele kuten tietokone. Eikä tarvitsekaan. Mites se hokema meni... "Oikea työkalu oikeaan tarkoitukseen."
Tämä taas on täyttä puppua: "ts. konekielellä pystyy ohjelmoimaan kaikkien ohjelmointiparadigmojen mukaisesti" .. Luultavasti et ole edes koskenut yhteenkään funktionaaliseen kieleen. Ei sillä, että itsekään olisin aiheessa kokenut ;) Mutta tarpeeksi kuitenkin, että puppugeneraattoritunnistin toimii."Tämä taas on täyttä puppua: "ts. konekielellä pystyy ohjelmoimaan kaikkien ohjelmointiparadigmojen mukaisesti" .. Luultavasti et ole edes koskenut yhteenkään funktionaaliseen kieleen. Ei sillä, että itsekään olisin aiheessa kokenut ;) Mutta tarpeeksi kuitenkin, että puppugeneraattoritunnistin toimii."
Arvelit oikein, minulla ei ole lainkaan kokemusta funktionaalisista kielistä. Sotkin ohjelmointiparadigmat prosessorin fyysiseen toimintaan josta syntyi tuo ajatusvirhe että konekielellä voisi ohjelmoida funktionaalisen paradigman mukaan. Näinhän ei toki ole.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Lindtman I vasemmistohallitus aloittaa viimein Suomen kuntoon laittamisen
Tässä nyt on 3 vuotta seurattu irvokasta kärsimysnäytelmää nimeltään "valtion budjetin tasapainotus by äärioikeisto", ja1982747Missä viipyy persujen lupaama euron bensa?
En edes muista milloin bensapumpussa olisi ollut ykkösellä alkava litrahinta. Missä siis viipyy persujen lupaama euron b1582465Kirje, PellePelottomalle.
Tärkeää olisi luoda ystävyys, että se, jota rakastaa, on samalla paras ystävä ja luotettavin, jolle voi ja uskaltaa luot1061152- 64941
Martinan hevoset.
Tämä todella kaunis ja ketterä harmaa hevonen jolla monet kilpailut voitetaan ei ole Martinan.Tytär ratsastaa sillä tait246860Mistä löytyy naisseuraa sinkkumiehelle?
Kertokaapas kokeneemmat mistä löytyis naisseuraa sinkulle. Ihan ois eukko nyt tosissaan hakusessa. Tanssipaikat kun on a21853Voi teitä naisia
Suudeltiin ja nukuttiin toisissamme kiinni mutta pillua ei tullu, ei edes aamulla. t.38vmies93820Persut jakavat tekoälyllä tehtyjä kuvia maahanmuuttajista somessa
Eivät mainitse, että ovat tekoälyllä tehtyjä. Eivät näe asiassa mitään ongelmaa. Valehtelijapuolue taas vauhdissa. Unka290811Hyvä meininki
TTP:ssa väkeä tosi runsaasti paikalla. Hyvää ruokaa jälleen ja munkit ja sima erinomaista. Kiitos yrittäjälle! Hieno Vap22738Onneksi tapasin sut
Ilman sua olisin jatkanut pään lyömistä seinään eli samanlaisten miesten etsimistä. Tajusin, mikä menee pieleen vasta ku93719