Quale processo utilizza tipicamente (la maggior parte) dei compilatori di lingue di alto livello quando si modifica il nome di una variabile del codice sorgente in un nome di codice macchina?

0

I nomi di variabili lunghe (molto lunghe) rallentano la compilazione del codice sorgente?

Sono consapevole che la lunghezza delle variabili ha un impatto dello 0% sull'interpretazione in quanto il compilatore le modifica al codice macchina che è sempre della stessa lunghezza. Ma la mia domanda è: la velocità con cui il compilatore varia a seconda della lunghezza delle variabili?

Ad esempio, se ho un nome di variabile lungo un milione di caratteri, sicuramente il compilatore farebbe fatica a riconoscere la variabile è una variabile, avrebbe bisogno di leggere l'intera cosa prima cosa che richiederebbe sicuramente più tempo a seconda delle sue dimensioni?

Per chiarire, quale processo utilizza tipicamente i compilatori di linguaggio di alto livello (la maggior parte dei casi) quando si modifica il nome di una variabile del codice sorgente in un nome di codice macchina?

Trovano l'inizio della variabile che funziona da sinistra e poi trovano la fine che lavora da destra, leggono l'intero nome della variabile (un carattere alla volta) fino a quando non viene trovata la fine o non lo fanno nemmeno guarda il nome della variabile e sappi solo che il codice richiede una variabile di tipo int (ad esempio) e assegna un nome a livello di macchina all'istante e quindi ignora completamente tutti i nomi di variabili definite dall'utente?

Nota che sono un novizio completo (ancora uno studente) quindi scusami se non trovo i miei termini confusi.

    
posta Jazcash 10.10.2013 - 08:43
fonte

3 risposte

3

Il compilatore (in genere) funziona in più fasi, la prima è la fase di "parsing". Durante la fase di analisi, il programma viene convertito in una rappresentazione interna, di solito denominata "Abstract Syntax Tree" (AST), su cui il resto delle fasi del compilatore funzionano.

Il passo di analisi è, essenzialmente, proporzionale alla quantità di codice sorgente che deve essere letto. In questa fase, la lunghezza di un nome di variabile ha (qualche) impatto.

Tuttavia, le lunghe parti del compilatore tendono a operare esclusivamente sull'AST, dove la velocità di elaborazione è indipendente dalla lunghezza degli identificatori.

Quindi, mentre ha qualche impatto, mi aspetto che i programmi tipici (grandi) abbiano un tempo di compilazione che è essenzialmente indipendente dalla lunghezza dell'identificatore.

    
risposta data 10.10.2013 - 12:40
fonte
4

Il compilatore deve creare una tabella dei simboli per identificare le variabili nel codice. Qui entrambi foo s si riferiscono allo stesso concetto astratto:

foo = 1
bar = foo + 5

Quindi per identificare entrambi foo come un'unica identità, devi elaborare la parola completa. Quindi una lunga variabile richiederà più tempo per l'elaborazione. Ma non dovrebbe essere una preoccupazione. La leggibilità dovrebbe essere la tua principale preoccupazione quando si nomina una variabile.

    
risposta data 10.10.2013 - 08:50
fonte
1

Sì, cambierà la velocità della compilazione di alcuni nano in pochi millisecondi.

Ovviamente occorrerà più tempo per elaborare un file sorgente di 10MB rispetto al file sorgente di tipo world 10 Hello.

La lunghezza dei nomi delle variabili cambierà la velocità di compilazione in qualsiasi modo percepibile da un essere umano? No.

    
risposta data 10.10.2013 - 18:21
fonte

Leggi altre domande sui tag