Forskjellen mellom statisk og dynamisk innbinding

Forfatter: Laura McKinney
Opprettelsesdato: 1 April 2021
Oppdater Dato: 1 Juli 2024
Anonim
Forskjellen mellom statisk og dynamisk innbinding - Teknologi
Forskjellen mellom statisk og dynamisk innbinding - Teknologi

Innhold


Å binde tilknytning av en ‘funksjonsdefinisjon’ til en ‘funksjonsanrop’ eller en tilknytning av en ‘verdi’ til en ‘variabel’, kalles ‘binding’. Under samlingen får hver ‘funksjonsdefinisjon’ en minneadresse; så snart funksjonsanrop er utført, flytter kontrollen av programutførelsen til den minneadressen og får funksjonskoden lagret på det stedet utført, dette er binding av ‘funksjonsanrop’ til ‘funksjonsdefinisjon’. Binding kan klassifiseres som ‘statisk binding’ og ‘dynamisk binding’.

Hvis det allerede er kjent før kjøretid, hvilken funksjon som blir påkalt eller hvilken verdi som blir tildelt en variabel, er det en "statisk binding". hvis det blir kjent med kjøretiden, kalles det ‘dynamisk binding’.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Konklusjon

Sammenligningstabell:

Grunnlag for sammenligningStatisk bindingDynamisk innbinding
HendelsesforekomstHendelser som oppstår på kompileringstidspunktet er "Statisk binding".
Hendelser som oppstår ved kjøretid er "Dynamisk innbinding".
InformasjonAll informasjon som trengs for å ringe en funksjon er kjent på kompileringstidspunktet.All informasjon som trengs for å ringe en funksjon blir kjent med kjøretid.
FordelEffektivitet.Fleksibilitet.
TidRask utførelse.Langsom henrettelse.
Alternativt navnTidlig binding.Sen binding.
EksempelOverbelastet funksjonsanrop, overbelastede operatører.Virtuell funksjon i C ++, overstyrte metoder i java.

Definisjoner av statisk binding

Når kompilatoren erkjenner all informasjonen som kreves for å ringe til en funksjon eller alle verdiene til variablene i løpet av kompileringstiden, kalles den "statisk binding“. Siden all nødvendig informasjon er kjent før kjøretid, øker den programeffektiviteten, og den forbedrer også hastigheten på utførelse av et program.


Static Binding gjør et program veldig effektivt, men det avviser programfleksibiliteten, ettersom ‘verdier av variabelen’ og ‘funksjonsanrop’ er forhåndsdefinert i programmet. Statisk binding er implementert i et program på kodingstidspunktet.

Overbelastning av en funksjon eller en operatør er eksemplet på kompileringstid-polymorfisme, dvs. statisk binding.

Implementering av statisk binding i C ++ med et eksempel på overbelastning

#inkludere bruker navneområde std; klassens overbelastning {int a, b; public: int load (int x) {// first load () -funksjon. a = x; cout << "Verdien på x er" <funksjo (); // Ovennevnte utsagn bestemmer hvilken klassefunksjon som skal påberopes. p =-d1; // Vlaue av pekeren endres. p-> funksjo (); // Ovennevnte utsagn bestemmer hvilken klassefunksjon som skal påberopes. p = & d2; // Igjen vlaue av pekeren endres. p-> funksjo (); // Ovennevnte utsagn bestemmer hvilken klassefunksjon som skal påberopes. retur 0; }

Her endres pekerens verdi etter hvert som programmet er i utførelse og verdien til pekeren bestemmer hvilken klasses funksjon som skal påberopes. Så her blir informasjonen gitt ved kjøretid, det tar tid å binde dataene som bremser utførelsen.


  1. Hendelser som oppstår på kompileringstidspunktet, som en funksjonskode er assosiert med en funksjonsanrop eller tildeling av verdi til en variabel, kalles statisk / tidlig binding. Tvert imot, når disse oppgavene blir utført under løpetid, kalles de dynamisk / sen binding.
  2. 'Effektivitet' øker i statisk binding, ettersom alle dataene er samlet før utførelsen. Men i dynamisk innbinding er dataene anskaffet under kjøretid, slik at vi kan bestemme hvilken verdi som skal tilordnes en variabel og hvilken funksjon som skal påberopes ved kjøretid, dette gjør utførelsen ‘fleksibel’.
  3. ‘Statisk binding’ gjør utførelsen av et program ‘raskere’ ettersom alle dataene som trengs for å utføre et program, er kjent før utførelsen. I ‘dynamisk binding’ er data som er nødvendige for å utføre et program kjent for kompilatoren på utførelsestidspunktet som tar tid å binde verdier til identifikatorer; dermed gjør det programutførelsen tregere.
  4. Statisk binding kalles også tidlig binding fordi funksjonskoden er assosiert med funksjonskall under kompileringstid, noe som er tidligere enn dynamisk binding, der funksjonskode er assosiert med funksjonskall under kjøretid, og det kalles også for sen binding.

Konklusjon:

Vi konkluderer imidlertid at når vi har forkunnskaper om verdiene til variabel og funksjonsanrop, bruker vi den statiske bindingen. Motsatt, i dynamisk binding, gir vi all informasjonen på utførelsestidspunktet.