Diferència entre enquadernació estàtica i dinàmica

Autora: Laura McKinney
Data De La Creació: 1 Abril 2021
Data D’Actualització: 1 Juliol 2024
Anonim
Diferència entre enquadernació estàtica i dinàmica - Tecnologia
Diferència entre enquadernació estàtica i dinàmica - Tecnologia

Content


L'associació vinculada d'una "definició de funció" a una "trucada de funció" o una associació d'un "valor" a una "variable" s'anomena "vinculació". Durant la compilació, a cada "definició de funció" se li proporciona una adreça de memòria; Tan aviat com es fa la trucada de funcions, el control de l’execució del programa es trasllada a l’adreça de memòria i s’executa el codi de funció emmagatzemat en aquella ubicació, això és el lligament de la “trucada de funció” a la “definició de la funció”. L’enquadernació es pot classificar com a “enquadernació estàtica” i “enquadernació dinàmica”.

Si ja se sabia abans del temps d'execució, quina funció s'invocarà o quin valor s'atribuirà a una variable, es tracta d'una "vinculació estàtica". si es coneix en el temps d'execució, s'anomena "vinculació dinàmica".


  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació:

Bases per a la comparacióEnquadernació estàticaEnquadernació dinàmica
EsdevenimentEls esdeveniments que es produeixen en el moment de la compilació són "Enquadernació estàtica".
Els esdeveniments que es produeixen en temps d'execució són "Enquadernació dinàmica".
InformacióTota la informació necessària per trucar a una funció es coneix a l’hora de compilació.Tota la informació necessària per trucar a una funció es coneix en temps d'execució.
AvantatgeEficiència.Flexibilitat.
TempsExecució ràpida.Execució lenta.
Nom alternatiuEnquadernació primerenca.Enquadernació tardana
ExempleTrucada de funcions sobrecàrrega, operadors sobrecarregatsFunció virtual en C ++, mètodes anul·lats a java.

Definicions de Static Binding

Quan el compilador reconeix tota la informació necessària per trucar a una funció o tots els valors de les variables durant el temps de compilació, s'anomena "vinculació estàtica“. Com que tota la informació requerida es coneix abans del temps d'execució, augmenta l'eficiència del programa i també millora la velocitat d'execució d'un programa.


La vinculació estàtica fa que el programa sigui molt eficient, però declina la flexibilitat del programa, ja que es defineixen predefinits "valors de la variable" i "trucada de funció" al programa. La vinculació estàtica està implementada en un programa en el moment de la codificació.

La sobrecàrrega d'una funció o d'un operador són l'exemple de polimorfisme en temps de compilació, és a dir, enllaç estàtic.

Implantació d’unió estàtica en C ++ amb un exemple de sobrecàrrega

#incloure ús de l’espai de noms std; sobrecàrrega de classe {int a, b; public: int load (int x) {// funció primera càrrega (). a = x; cout << "El valor de x és" <funzione (); // La declaració anterior decideix quina funció de classes s'ha d'invocar. p = & d1; // El valor del punter canvia. p-> funct (); // La declaració anterior decideix quina funció de classes s'ha d'invocar. p = & d2; // Una altra vegada canvia el vlaue del punter. p-> funct (); // La declaració anterior decideix quina funció de classes s'ha d'invocar. retornar 0; }

Aquí el valor del punter canvia a mesura que el programa s'està executant i el valor del punter decideix quina funció de la classe s'invocarà. Així, aquí, la informació es proporciona en temps d'execució, triga un temps a unir les dades que alenteix l'execució.

  1. Els esdeveniments que es produeixen en un moment de compilació, com un codi de funció s’associa amb una trucada de funció o una assignació de valor a una variable, s’anomenen enquadernació estàtica / precoç. Per contra, quan aquestes tasques es realitzen durant el temps d'execució, s'anomenen enquadernació dinàmica / tardana.
  2. L'eficàcia augmenta en l'enllaç estàtic, ja que totes les dades es recopilen abans de l'execució. Però en el lligam dinàmic, les dades s’adquireixen en temps d’execució, de manera que podem decidir quin valor assignar una variable i quina funció invocar en temps d’execució això fa que l’execució sigui “flexible”.
  3. L’enllaç estàtic fa que l’execució d’un programa sigui més ràpida ja que es coneixen totes les dades necessàries per executar un programa abans de l’execució. Al compilador, les dades necessàries per a la vinculació dinàmica necessària per executar un programa es coneixen en el moment de l'execució, que triguen a lligar valors als identificadors; per tant, fa que l’execució del programa sigui més lenta.
  4. La vinculació estàtica també s’anomena enquadernació primerenca perquè el codi de funció s’associa amb la trucada de funció durant el temps de compilació, que és anterior a l’enllaç dinàmic en què el codi de funció s’associa amb la trucada de funció durant el temps d’execució, per tant, també s’anomena enquadernació tardana.

Conclusió:

Tanmateix, arribem a la conclusió que quan tenim coneixement previ dels valors de la funció de trucada variable i aplicem la vinculació estàtica. Per contra, en enquadernació dinàmica, proporcionem tota la informació en el moment de l’execució.