Merkitys (tietokonetiede)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 24. helmikuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Arvo ohjelmoinnissa on  tietoelementti , joka on yksi tietotyypin [1] mahdollisista jäsenistä , joka voi vastata jotakin vastaavan tyyppisen muuttujan tai vakion tilaa. Esimerkiksi on kokonaislukutyyppinen  arvo . 2

Kieleissä, joissa on kyky määrittää muuttujille arvoja, on välttämätöntä erottaa muuttujan r-arvot (r-arvo - sisältö) ja l-arvot (l-arvo - sijainti) [ 2] .

Deklaratiivisilla kielillä arvojen on oltava viitteellisesti läpinäkyviä . Tämä tarkoittaa, että tulosarvo on riippumaton arvon arvioimiseen vaadittavan lausekkeen (tai osalausekkeen) sijainnista.

L-arvot ja r-arvot

Ajatus arvoista ja r-arvoista tulee ohjelmointikielistä, joissa on määritysoperaattoreita, joissa operaattorin vasemmalla (vasemmalla) ja oikealla (oikealla) olevat arvot käyttävät erilainen arviointitila. L-arvo osoittaa objektiin, joka säilyy yhden lausekkeen ulkopuolella. R-arvo on väliaikainen arvo, joka ei säily sitä käyttävän lausekkeen ulkopuolella. [3]

Käsitteet l-arvo ja r-arvo otettiin käyttöön CPL -kielellä . R-arvojen, l-arvojen ja r/l-arvojen ilmaisujen käsitteet vastaavat seuraavia parametritiloja : tuloparametri (sillä on arvo), lähtöparametri (voidaan määrittää) ja tulo-/lähtöparametri ( on arvoa ja se voidaan määrittää) , mutta kielten välillä on teknisiä eroja kontekstista riippuen.

R-arvot ja osoitteet

Monissa kielissä, erityisesti C:n kaltaisissa kielissä, l-arvoilla on tallennusosoite , joka on ohjelmallisesti suoritettavan ohjelman käytettävissä (esimerkiksi käyttämällä &-osoitusoperaattoria C/C++:ssa). Tämä tarkoittaa, että l-arvot ovat muuttujia tai viittauksia tiettyihin muistialueisiin. R-arvot voivat olla l-arvoja (katso alla) tai ei-l-arvoja (termi, joka otetaan käyttöön erottamaan se l-arvoista). Otetaan esimerkiksi lauseke 4 + 9C-kielellä. Ajon aikana ohjelma luo arvon 13, mutta koska ohjelma ei määritä, missä nämä 13 ovat, lauseke ei ole l-arvo. Toisaalta, jos C-ohjelma ilmoittaa muuttujan x, jolle on annettu arvo 13, lausekkeen xarvo on 13 ja se on l-arvo.

Aluksi termi l-arvo merkitsi C-kielessä jotain, jolle voidaan antaa jotain (siis nimi, joka osoittaa, että se on osoitusoperaattorin vasemmalla (vasemmalla) puolella), mutta koska varattu sana const(vakio ) on on lisätty kieleen ), termi kuulostaa nyt "muokattavalta l-arvolta". C++11 : ssä on erityinen semanttinen glyfi &&"käytä lausekkeen osoitetta vain kääntäjällä"; eli käyttäjä ei voi laskea osoitetta &ohjelman suorituksen aikana. (katso liikkumisen semantiikka ).

Välitön merkitys

Tämän tyyppistä viittausta voivat käyttää kaikki r-arvot, mukaan lukien sekä l-arvot että ei-l-arvot. Joillakin prosessoreilla on ohjeita, joilla on välitön arvo .  Välitön arvo tallennetaan osana käskyä, joka tyypillisesti käyttää sitä sijoittamaan sen rekisteriin tai lisäämään tai vähentämään siitä. Muut ohjeen osat ovat opcode ja vastaanotin (rekisteri). Jälkimmäinen voi olla sanaton. Ei-välitön arvo voi olla rekisterissä tai muistissa, ja käskyn tulee sisältää arvon suora tai epäsuora osoite, kuten sen rekisterin indeksi, josta arvo on otettu.

L-arvo

L-arvo lausekkeena osoittaa objektiin[ määritä ] . Ei-muokattavalla (vakio) l-arvolla on osoite, mutta sitä ei voi muuttaa. Sitä vastoin muuttuvan l-arvon avulla voit paitsi hakea kohteen, myös määrittää sille eri arvon. R-arvo on mikä tahansa lauseke (mukaan lukien l-arvot), ja ei-l-arvo on mikä tahansa lauseke, joka ei ole l-arvo. Esimerkki ei-l-arvosta on välitön arvo, jolla ei ole osoitetta.

Assemblykielellä

Arvo voi olla mitä tahansa saatavilla olevista tietotyypeistä : se voi olla merkkijono, numero tai yksi merkki.

Monet prosessorit tukevat useita välittömien arvojen kokoja, kuten 8 tai 16 bittiä, käyttämällä jokaiselle eri käskykoodeja. Jos ohjelmoija lisää arvon, joka ei sovi, kokoaja antaa "Out of range " -virheen .  Useimmat kokoajat sallivat välittömät arvot ASCII- , desimaali- , heksadesimaali- , oktaali- tai binäärimuodoissa . Tämä tarkoittaa, että ASCII-merkki on identtinen arvon tai kanssa . Tekstimerkkijonojen tavujärjestys voi vaihdella prosessorin tyypin, kokoamisversion tai tietokoneen arkkitehtuurin mukaan. 'A'650x41

Muistiinpanot

  1. Mitchell, 1996 , s. 9.
  2. Mitchell, 1996 , s. 389–390.
  3. Larvot ja Rarvot (Visual C++) . MSDN . Haettu 3. syyskuuta 2016. Arkistoitu alkuperäisestä 9. lokakuuta 2018.

Kirjallisuus