Rajapinnat ohjelmointikieli/konekieli/elektroniikka?

Tietokonejutut, pelit ja muu nörtismi; autot, kaasupullot ja muut lelut
Avatar
Gattaca
Kitisijä
Viestit: 4424
Liittynyt: 16.08.2005 16:12

Rajapinnat ohjelmointikieli/konekieli/elektroniikka?

Viesti Kirjoittaja Gattaca »

Laitan Kitinän ohjelmointigurujen mieliksi kysymyksen. Pahoittelen jos en osaa oikeita ammattitermejä.

Nettisivuja tehdessäni tuli mieleen, että minulla ei ole hevon helvetin käsitystä miten selain oikeasti toimii, minä vain yritän saada sitä tottelemaan. Siitä jatko-ajatuksena olen pitkään miettinyt, että kun kerran oikeassa ohjelmoinnissa C, C++, Java ym. ihmiskielen sanoja käyttävät kielet ovat korkeamman tason ohjelmointikieliä, niin onko tai tarvitseeko niitä koodaavalla olla käsitystä takana toimivasta konekielestä tai käyttämänsä kielen rajapinnasta siihen ihan sinne binääritasolle asti?

Entäs onko ohjelmoijilla käsitystä ohjelmointikielen tai konekielen rajapinnasta elektroniikan fyysiseen konkretiaan?

Kerran treffasin Yliopistossa koulutettua, duunissa olevaa C++ -ohjelmoijamisua, jolta tulin kysyneeksi ymmärtääkö hän elektroniikkaa ja tietääkö hän mikä on "kiikku". Olin lukenut sanan jostain ja luullakseni se tarkoittaa suorittimen loogista veräjää, jossa binäärivaihtoehdot fyysisesti tapahtuvat. Misu sanoi ettei tiedä eikä tunne elektroniikkaa paljon yhtään.

Jos niiden rajapintojen (ohjelmointikieli/konekieli/nollat ja ykköset/fyysinen elektroniikka kun suoritin duunailee tehtyä sovelusta) tuntemus on harvinaista, ne tuntevat nörtit taitavat sitten olla sitä kaikkein korvaamattominta eliittiä? Vai ovatko ne tekniikat jo niin vakiintuneita, että kenenkään ei oikeastaan tarvitse tietää?
Yli nelikybänen landeäijä mutaisissa saappaissa ja flanellipaidassa kuolaa ja tumputtaa teinitytöille salaa mustassa jeepissään.
-Quarter
Avatar
Mylwin
Kitisijä
Viestit: 4593
Liittynyt: 16.08.2005 15:25
Paikkakunta: Kouvostoliitto

Re: Rajapinnat ohjelmointikieli/konekieli/elektroniikka?

Viesti Kirjoittaja Mylwin »

Gattaca kirjoitti: Jos niiden rajapintojen (ohjelmointikieli/konekieli/nollat ja ykköset/fyysinen elektroniikka kun suoritin duunailee tehtyä sovelusta) tuntemus on harvinaista, ne tuntevat nörtit taitavat sitten olla sitä kaikkein korvaamattominta eliittiä? Vai ovatko ne tekniikat jo niin vakiintuneita, että kenenkään ei oikeastaan tarvitse tietää?
Kyllä ne läpikäytiin tietojenkäsittelytieteen perusteissa heti kärkeen. Eri asia sitten että kuinka syvällisesti ne pystyi 5ov:ssa sisäistämään kun muutakin asiaa oli.
Kävin katsomassa Mylwinin kuvaa, ja näyttää kyllä just siltä ettei sillä ole yhtään ystävää.
- Ann 2005
Avatar
Gattaca
Kitisijä
Viestit: 4424
Liittynyt: 16.08.2005 16:12

Re: Rajapinnat ohjelmointikieli/konekieli/elektroniikka?

Viesti Kirjoittaja Gattaca »

Mylwin kirjoitti:
Gattaca kirjoitti: Jos niiden rajapintojen (ohjelmointikieli/konekieli/nollat ja ykköset/fyysinen elektroniikka kun suoritin duunailee tehtyä sovelusta) tuntemus on harvinaista, ne tuntevat nörtit taitavat sitten olla sitä kaikkein korvaamattominta eliittiä? Vai ovatko ne tekniikat jo niin vakiintuneita, että kenenkään ei oikeastaan tarvitse tietää?
Kyllä ne läpikäytiin tietojenkäsittelytieteen perusteissa heti kärkeen. Eri asia sitten että kuinka syvällisesti ne pystyi 5ov:ssa sisäistämään kun muutakin asiaa oli.
Ai kapiaisilla on tuollaistakin?
En tarkoittanut niinkään tietoa vaikka prosessoritekniikasta vaan RAJAPINNASTA ohjelmointikielen ja konekielen ja konekielen ja fyysisen elektroniikan välillä. Ja onko siihen vielä erikoisnörttejä jossain koodaajien ja prosessorin suunnittelijoiden välillä.

Niinkuin että kuka on duunaillut yhteyden korkean tason kielen ja konekielen välille vai onko se ihan standardi ja vastaavasti kuka on duunannut yhteyden konekielen ja fyysisen elektroniikan välille ja tunteeko kukaan yksilö koko ketjua läpi nippelintarkasti?

Tarvitseeko tavallisen koodarin niitä työssään ajatellakaan, vaikka perusta olisi hänelle teoriassa selvä?
Yli nelikybänen landeäijä mutaisissa saappaissa ja flanellipaidassa kuolaa ja tumputtaa teinitytöille salaa mustassa jeepissään.
-Quarter
Avatar
Mylwin
Kitisijä
Viestit: 4593
Liittynyt: 16.08.2005 15:25
Paikkakunta: Kouvostoliitto

Re: Rajapinnat ohjelmointikieli/konekieli/elektroniikka?

Viesti Kirjoittaja Mylwin »

Gattaca kirjoitti: Ai kapiaisilla on tuollaistakin?
Joensuun yliopistossa, mie olin joskus pitkätukkainen tietokonenörtti.
Kyllä luulisin, että yliopiston puolella käydään ainakin yleisellä tkt:n osastolla nuokin lävitse. Maailma on nykyään täynnä vain itseoppineita haxxoreita, tradenomeja ja amiksen atk-puolen käyneitä, jotka keskittyvät enemmän käsittääkseni softapuolen hommiin.

Ja ei, ei kai peruskoodaaja niitä nykyaikana tarvitse - luulisin.
Kävin katsomassa Mylwinin kuvaa, ja näyttää kyllä just siltä ettei sillä ole yhtään ystävää.
- Ann 2005
Avatar
Gattaca
Kitisijä
Viestit: 4424
Liittynyt: 16.08.2005 16:12

Re: Rajapinnat ohjelmointikieli/konekieli/elektroniikka?

Viesti Kirjoittaja Gattaca »

Niin se mun treffaama yliopiston Atk-maisterimisu väitti ei-ymmärtävänsä elektroniikkaa paljoa yhtään. Ja ei kai C++ -ohjelmoijan tarvitse tietää rajapinnasta konekieleenkään paljon mitään, muuta kuin että sellainen on ja kenties periaatetieto miten se toimii.. mutta ei liittyne käytännön ohjelmointityöhön mitenkään? Vähän kuin formulakuskin ei tarvitse osata rakentaa autoa raakamalmista.
Yli nelikybänen landeäijä mutaisissa saappaissa ja flanellipaidassa kuolaa ja tumputtaa teinitytöille salaa mustassa jeepissään.
-Quarter
eps

Re: Rajapinnat ohjelmointikieli/konekieli/elektroniikka?

Viesti Kirjoittaja eps »

Gattaca kirjoitti: En tarkoittanut niinkään tietoa vaikka prosessoritekniikasta vaan RAJAPINNASTA ohjelmointikielen ja konekielen ja konekielen ja fyysisen elektroniikan välillä. Ja onko siihen vielä erikoisnörttejä jossain koodaajien ja prosessorin suunnittelijoiden välillä.
Rajapinta ohjelmointikielen ja konekielen välillä on kääntäjä. Kääntäjätekniikkaa opetetaan yliopistoissa ja korkeakouluissa, mutta se ei ole kovin suosittua. Omalle kääntäjälle on käyttöä sellaisissa tilanteissa, kun tarvitaan omaa korkean tason kuvaustapaa jollekin sellaiselle toistuvalle ratkaisulle, jonka kuvaaminen perinteisellä tavalla ei ole helppoa.

Kääntäjiäkään ei kirjoitetaa enää alusta asti, vaan käytetään metakääntäjää: kääntäjää, joka tekee kääntäjiä.

Rajapinta konekielen ja fyysisen elektroniikan välillä on mikrokoodi ja muisti. Mikrokoodi on rajapinta prosessoriin ja muisti on rajapinta fyysisiin laitteisiin. Mikrokoodi on prosessorien sunnittelijoiden apuväline, vaikka teoriassa olisi kai mahdollista kehittää oma konekieli mikrokoodin päälle. Laiterajapintaa tarvitaan käytännössä vain alkeellisissa järjestelmissä, sillä nykyaikaisessa järjestelmässä käyttöjärjestelmä piilottaa laitteistorajapinnan tarjoamalla sen päälle käyttörajapinnan.

Käytännössä normaaleihin sovelluksiin riittää kääntäjärajapinta ja kirjastot: siis ohjelmointikielen ja APIen tunteminen. Tosiaikasovelluksissa molemmat rajapinnat joudutaan joskus ohittamaan, mutta hyvää tosiaikajärjestelmää ei tehdäkään mihin tahansa käyttikseen, vaan siihen on omat mikrokernel-käyttöjärjestelmät.

e.
Avatar
Mylwin
Kitisijä
Viestit: 4593
Liittynyt: 16.08.2005 15:25
Paikkakunta: Kouvostoliitto

Re: Rajapinnat ohjelmointikieli/konekieli/elektroniikka?

Viesti Kirjoittaja Mylwin »

eps kirjoitti: e.
Runkkumatskua!
Kävin katsomassa Mylwinin kuvaa, ja näyttää kyllä just siltä ettei sillä ole yhtään ystävää.
- Ann 2005
huima

Re: Rajapinnat ohjelmointikieli/konekieli/elektroniikka?

Viesti Kirjoittaja huima »

Riippuu aika paljon siitä mitä ja millaiseen ympäristöön ollaan rakentamassa.

Ohjelmoinnissa puhutaan yleensä abstraktiotasoista - ja trendi ja hype on ollut aina kohti korkeamman abstraktiotason kieliä. Periaatteena siis se, että ratkaistaan ongelmaa tietokoneella, eikä kerrota tietokoneelle kuinka tietokoneen pitäisi ratkaista ongelma. ( Esimerkiksi Erlang, Scheme )

Samalla tavalla erilaisissa frameworkeissa tietyt asiat abtsraktoituvat - niin ettei ohjelmojien tarvitse tietää, kuinka jokin asia loppupeleissä tapahtuu loppuun saakka. Hyvänä esimerkkinä tästä esimerkiksi J2EE.

Ohjelmoijien ei aina tarvitse tietää kuinka asiat menevät ihan elektroniikan tasolla - mutta abstraktotasoista huolimatta monet ohjelmoijat haluavat ja joutuvat tietämään miten asiat toimivat esimerkiksi prosessorin tasolla. Oleelliseksi tämä muuttuu esimerkiksi moniprosessori-ympäristöissä, verkottuneissa järjestelmissä ja korkean voluumin ympäristöissä.

Esimerkki tästä Java-maailmasta, monisäikeiset ohjelmat ja lukitukset Javan virtuaalikoneessa: http://blogs.sun.com/roller/page/dave?e ... in_hotspot
Vastaa Viestiin