Title: Linguaggi di Programmazione Secondo Semestre / 01 - Nomi, ambiente blocchi regole di scope

Q: Def: Nomi,Identificatori
A: un nome è una sequenza di caratteri usata per denotare qualcosaltro
Identificatori: nell'ambito dei linguaggi di programmazione, dei nomi che vengono utilizzati per astrarre oggetti

Q: Def:Oggetti denotabili
A: Oggetto denotabile, è un oggetto a cui si può assegnare un nome

Q: Def:  Statico e Dinamico
A: nei linguaggi di programmazione in generale:
- Statico: tutto quello che avviene prima dell'esecuzione)
- Dinamico: durante l'esecuzione

Q: Def Ambiente, Dichiarazione
A: Ambiente: insieme delle associazioni fra nomi e oggetti denotabili esistenti a run-time in uno specifico punto del  programma ed in uno specifico momento dell’esecuzione
Dichiarazione: meccanismo (implicito o esplicito) col quale si crea un ’associazione in ambiente

Operazioni sull'ambiente

Q: Def:Blocchi
A: regione testuale del programma identificata da un inizio e una fine, che contiene le dichiarazioni locali di quella regione:
- può essere anonimi
- associati ad una procedura
(non sono necessari per creare un linguaggio turing completo, ma aiutano la chiarezza e il riutilizzo dei nomi, ottimizzazione per l'occupazione di memoria permettono la ricorsione)

Q: Annidamento dei blocchi, visibilità
A: Quando si incominciano ad annidare nodi, bisogna dare delle regole di visibilità:
1. un variabile è visibile nel blocco dichiarato, e nei blocchi in esso contenuti, a meno che non sia stata ridichiarata
2. una variabile definita in un blocco interno non è visibile nei blocchi esterni

Q: Def: Tipi d'ambiente
A: - ambiente locale : associazioni create all'ingresso del blocco
- ambiente non locale: associazioni ereditate da altri blocchi
- ambiente globale: quella parte di ambiente non locale relativo alle associzioni comuni di tutti i blocchi

Q: Parametro attuale/formale
A: parametro attuale è la variabile che viene passata ad una fuzione, il parametro formale è la variabile nell'argomento della funzione

Def: Scope statico

Def: Scope dinamico