Domanda

In compilatore analisi del flusso dei dati, qual è la differenza tra una gamma dal vivo di una variabile ed è raggiungere definizione? Entrambi sembrano riferirsi alla stessa cosa ...

È stato utile?

Soluzione

Sono cose molto diverse, e mi suggeriscono che si va indietro e rileggere a seconda di quale definizioni confuso. Una definizione raggiungimento di una variabile per un punto che utilizza la variabile data deve essere, tra le altre cose, una definizione di tale variabile. La durata di una variabile è la porzione del programma in cui può essere utilizzata, che comprende le cose diverse definizioni, ad esempio, la lettura.

Si veda, ad esempio, del 1986 Drago libro, pagine 534 (forse troppo generico per essere utile) e 610.

Altri suggerimenti

Definizioni Tendere sono definite rispetto ad un luogo particolare in un programma. Ad esempio, nella riga 10, con codice "a = b + c" è utile per il compilatore a sapere che cosa la definizione raggiungimento della "c" è, o in altre parole rispondere alla domanda "in che cosa comunicato ha fatto variabile c acquisiscono un valore che può raggiungere la linea 10?".

Gamma live è definito rispetto a una variabile. La gamma live di variabili c parte da una definizione di variabili c e va fino alla prossima definizione della variabile (in cui inserire la variabile viene ucciso, o definita come una variabile diversa, se si utilizza SSA), o alla fine del portata (blocco, funzione o programma) che variabile c esiste.

I due concetti sono simili, ma non sono la stessa cosa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top