Ero staattisen ja dynaamisen sitomisen välillä

Kirjoittaja: Laura McKinney
Luomispäivä: 1 Huhtikuu 2021
Päivityspäivä: 17 Saattaa 2024
Anonim
Ero staattisen ja dynaamisen sitomisen välillä - Tekniikka
Ero staattisen ja dynaamisen sitomisen välillä - Tekniikka

Sisältö


'Funktion määritelmän' sitovaa yhdistämistä 'funktion kutsuun' tai 'arvon' yhdistämistä 'muuttujaan' kutsutaan 'sitovaksi'. Kokoonpanon aikana jokaiselle 'toiminnon määritelmälle' annetaan muistiosoite; heti kun funktiokutsut on suoritettu, ohjelman suorituksen hallinta siirtyy siihen muistiosoitteeseen ja saadaan toimipaikkakoodi, joka on tallennettu kyseiseen sijaintiin, suoritettu, tämä on 'funktiokutsun' sitominen 'funktion määritelmään'. Sidonta voidaan luokitella 'staattiseksi sidonnaksi' ja 'dynaamiseksi sidonnaksi'.

Jos se on jo tiedossa ennen suoritusta, mikä toiminto käynnistetään tai mikä arvo on osoitettu muuttujalle, se on 'staattinen sidonta'. jos se tulee tietoon suorituksen aikana, sitä kutsutaan 'dynaamiseksi sidonnaksi'.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko:

Vertailun perusteetStaattinen sidontaDynaaminen sidonta
Tapahtuman esiintyminenKokoonpanohetkellä tapahtuvat tapahtumat ovat "staattista sitoutumista".
Ajon aikana tapahtuvat tapahtumat ovat "dynaamista sitomista".
TiedotKaikki toiminnon kutsumiseen tarvittavat tiedot tiedetään kokoamishetkellä.Kaikki toiminnon kutsumiseksi tarvittavat tiedot tulee tietää ajon aikana.
EtuTehokkuutta.Joustavuus.
AikaNopea toteutus.Hidas toteutus.
vaihtoehtoinen nimiVarhainen sitominen.Myöhäinen sitominen.
esimerkkiYlikuormitettu toimintopuhelu, ylikuormitetut operaattorit.Virtuaalitoiminto C ++: ssa, ohitetut menetelmät javalla.

Määritelmät Staattinen sidonta

Kun kääntäjä kuittaa kaikki toiminnon kutsumiseksi vaadittavat tiedot tai kaikki muuttujien arvot käännösaikana, sitä kutsutaan “staattinen sidonta”. Koska kaikki vaadittavat tiedot tiedetään ennen suoritusta, se lisää ohjelman tehokkuutta ja lisää myös ohjelman suorittamisen nopeutta.


Staattinen sidonta tekee ohjelmasta erittäin tehokkaan, mutta se heikentää ohjelman joustavuutta, koska 'muuttujan arvot' ja 'funktion kutsuminen' on ennalta määritetty ohjelmassa. Staattinen sidonta toteutetaan ohjelmassa koodauksen aikaan.

Funktion tai operaattorin ylikuormitus ovat esimerkki käännösajan polymorfismista, ts. Staattisesta sitoutumisesta.

Staattisen sitoutumisen toteutus C ++: ssa esimerkillä ylikuormituksesta

#sisältää käyttämällä nimitilaa std; luokan ylikuormitus {int a, b; public: int load (int x) {// ensimmäinen lataus () -toiminto. a = x; cout << "x: n arvo on" <funct (); // Yllä oleva lausunto päättää, mihin luokkatoimintoon on käynnistetty. p = & d1; // Osoittimen tyyppi muuttuu. P-> funct (); // Yllä oleva lausunto päättää, mihin luokkatoimintoon on käynnistetty. p = & d2; // Osoittimen vlaue taas muuttuu. P-> funct (); // Yllä oleva lausunto päättää, mihin luokkatoimintoon on käynnistetty. paluu 0; }

Osoittimen arvo muuttuu, kun ohjelma on suorittamassa, ja osoittimen arvo päättää, mihin luokan funktioon kutsutaan. Joten tässä tiedot toimitetaan ajoaikana, tietojen sitominen vie aikaa, joka hidastaa suoritusta.


  1. Kokoonpanohetkellä tapahtuvia tapahtumia, kuten funktiokoodia, joka liittyy funktion kutsuun tai arvon osoittamiseen muuttujalle, kutsutaan staattiseksi / varhaiseksi sitomiseksi. Päinvastoin, kun nämä tehtävät suoritetaan suorituksen aikana, niitä kutsutaan dynaamiseksi / myöhäiseksi sitomiseksi.
  2. 'Tehokkuus' kasvaa staattisessa sidonnassa, koska kaikki tiedot kerätään ennen suoritusta. Mutta dynaamisessa sidonnassa tiedot hankitaan suorituksen aikana, jotta voimme päättää, minkä arvon muuttujalle määritetään ja mikä toiminto kutsutaan suorituksen aikana, mikä tekee suorituksesta "joustavan".
  3. 'Staattinen sidonta' tekee ohjelman suorittamisesta nopeamman, koska kaikki ohjelman suorittamiseen tarvittavat tiedot ovat tiedossa ennen suoritusta. "Dynaamisessa sidonnassa" ohjelman suorittamiseen tarvittavat tiedot ovat tiedossa kääntäjälle suorituksen aikana, mikä vie aikaa arvojen sitomiseen tunnisteisiin. joten se hidastaa ohjelman suoritusta.
  4. Staattista sitomista kutsutaan myös varhaiseksi sitomiseksi, koska funktiokoodi liittyy funktion kutsuun kokoamisajan aikana, mikä on aikaisempaa kuin dynaaminen sidonta, jossa toimintokoodi liitetään toimintopuheluun suorituksen aikana, joten sitä kutsutaan myös myöhäiseksi sitomiseksi.

johtopäätös:

Johtopäätöksenä on kuitenkin, että kun meillä on etukäteen tieto muuttujan ja funktion kutsumisesta, käytämme staattista sitomista. Päinvastoin, dynaamisessa sidonnassa, tarjoamme kaikki tiedot suoritushetkellä.