C :sta puuttuu esim kätevä foreach functio. Toki tämä on mahdollista käyttäen esim vectoreita. Muutenkin itsestä C puuttuu monia hyödyllisiä asioita mitä on kehittyneemmissä kielissä.
Sitten varsinainen kysymys, miten esin tuo foreach functio on toteutettu muissa kielissä?
Vai onko asia niin, että tuo foreach jne... functiot on vain kääntäjän/kielen luomaa "harhaa" todellisuudessa kääntäjä tekee saman minkä sinä tekisit C laajennosten jne... kanssa?
Siis assebly koodi on kutakuin samanlaista.
Sitten varsinainen kysymys, miten esin tuo foreach functio on toteutettu muissa kielissä?
Vai onko asia niin, että tuo foreach jne... functiot on vain kääntäjän/kielen luomaa "harhaa" todellisuudessa kääntäjä tekee saman minkä sinä tekisit C laajennosten jne... kanssa?
Siis assebly koodi on kutakuin samanlaista.
Vastaukset 3
Vanhimmat
Vähän turhan laaja ja monimutkainen kysymys...
vastaan siis:
1) Semanttisesti sama asia kaikissa
2) Riippuu kääntäjän taidoista, joku voi olla äärimmäisen tehokas, toinen taas ei
3) Metodologisesti tapoja lienee monia joista muutamia käytetään oikeassa elämässä, tämän vuoksi "sielunelämä" foreachissa voi olla kielien välillä erilainen. Esim vahvan tyypityksen tarpeellisuus on kielikohtaista ja se minkä yli/aliluokan foreach valitsee toteutuksessaan voi olla kieliriippuvainen.
Kielten kehitys on jo kauan sitten vienyt pois tuollaisten kivojen pikkuominaisuuksien lisäämisestä kuin "foreach". Niitä voi olla, mutta ne eivät ole keskeisiä. Kielten kehitys pyrkii nykyisin tukemaan tehokkaiden, korkean abstraktiotason luokkakirjastojen luomista. Kirjastot ovat tärkeämpiä kuin kielen syntaksi sinänsä.
Mutta mikä on seuraava taso? Minusta jonkinlainen "behavioral compiler", joka osaisi suoraan vaatimuksista (requirements) luoda koodia (vaikka perinteisen C -koodin kautta). Vaatimukset annettaisiin esim case-kuvauksina ja niiden reunaehtoina lähes luonnollisen kielen omaisina tekstiedostoina tai vaikkapa graafisina sekvenssikuvina.
Ohjelmistoammattilaisen tehtävä muuttuisi asiakkaan epämääräisten ja ristiriitaisten vaatimusten hiomiseksi koneen hyväksymään muotoon ja testaamiseksi.
Kiitoksia tuo selventi vähäsen.