# Lua/Glossario

Lua
Copertina Tutti i moduli · Sviluppo
       IntroduzioneLua/Introduzione
* Installare LuaLua/Installare Lua
* EspressioniLua/Espressioni
* Istruzioni
* FunzioniLua/Funzioni
* TabelleLua/Tabelle
* Librerie standard
       Appendice: Testare il programma
       GlossarioLua/Glossario
       Indice
Modifica il sommario
chiudi indice
Questo glossario contiene termini tecnici relativi alla programmazione nel contesto di Lua. Si consiglia di consultarlo per trovare il significato di parole che non si comprendono. Di alcuni termini è indicato tra parentesi anche il termine corrispondente in inglese.

## A
### argomento (argument)

    Un argomento è un valore passato a una funzione.

### arietà (arity)

    L'arietà di un'operazione o di una funzione è il numero di operandi o argomenti accettati dall'operazione o dalla funzione.

### array

    Un array è una struttura dati costituita da una raccolta di valori, ciascuno identificato da almeno un indice o chiave di array.

### array associativo (associative array)

    Un array associativo è un tipo di dati astratto composto da una raccolta di coppie di chiavi e valori, in modo che ogni possibile chiave appaia al massimo una volta nella raccolta.

### assegnamento aumentato (augmented assignment)

    L'assegnamento aumentato è un tipo di assegnamento che assegna a una variabile un valore relativo al suo valore precedente.

### assegnamento composto (compound assignment)

    Vedi assegnamento aumentato.

### assegnamento concatenato (chained assignment)

    L'assegnamento concatenato è un tipo di assegnamento che assegna un singolo valore a molte variabili. Esempio: a = b = c = d = 0.

### assegnamento multiplo (multiple assignment)

    Vedi assegnamento parallelo.

### assegnamento parallelo (parallel assignment)

    L'assegnamento parallelo è un tipo di assegnamento che assegna simultaneamente valori a variabili diverse.

### assegnamento simultaneo (simultaneous assignment)

    Vedi assegnamento parallelo.

## B
### booleano

    Vedi dati logici.

## C
### cambio di segno

    Vedi negazione aritmetica.

### chunk

    Un chunk (blocco) è una sequenza di istruzioni.

### classe astratta (abstract class)

    Una classe astratta è una classe le cui istanze non possono essere create direttamente. Le classi astratte sono tipi astratti.

### classe concreta (concrete class)

    Una classe concreta è una classe di cui è possibile creare direttamente istanze. Le classi concrete sono tipi concreti.

### complemento logico

    Il complemento logico di un valore booleano è il valore booleano che non è quel valore. Ciò significa che il complemento logico di true è false e viceversa.

### concatenazione (concatenation)

    La concatenazione di stringhe è l'operazione di unione di due stringhe di caratteri. Ad esempio, la concatenazione di "snow" e "ball" è "snowball".

### condizione

    Una condizione è un predicato che viene utilizzato in un'istruzione condizionale o come operando per l'operatore condizionale . Le condizioni, in Lua, sono considerate vere quando la loro espressione valuta un valore diverso da nil o false, e sono considerate false in caso contrario.

### congiunzione logica

    Diagramma di Venn di $\scriptstyle a\land b$
    L'operazione di congiunzione logica è un'operazione binaria che produce il valore true quando entrambi i suoi operandi sono veri e false in tutti gli altri casi. È implementata in Lua come operatore and e restituisce il primo operando se è false o nil, altrimenti restituisce il secondo operando. La congiunzione logica di a e b è espressa matematicamente come $\scriptstyle a\land b$.

## D
### dati logici (logical data)

    Il tipo di dati logico, generalmente chiamato tipo booleano, è il tipo dei valori false e true.

### disgiunzione esclusiva

    Diagramma di Venn di $\scriptstyle a\veebar b$
    L'operazione di disgiunzione esclusiva è un'operazione binaria che produce il valore true quando uno dei suoi operandi è vero ma l'altro non lo è. La disgiunzione esclusiva di a e b è espressa matematicamente come $\scriptstyle a\veebar b$. Non esiste alcun operatore corrispondente alla disgiunzione esclusiva in Lua, ma $\scriptstyle a\veebar b$ può essere rappresentato come (a or b) and not (a and b).

### disgiunzione logica

    Diagramma di Venn di $\scriptstyle a\lor b$
    L'operazione di disgiunzione logica è un'operazione binaria che produce il valore false quando entrambi i suoi operandi sono falsi e true in tutti gli altri casi. È implementata in Lua come operatore or e restituisce il primo operando se non è né false né nil, altrimenti restituisce il secondo. La disgiunzione logica di a e b è espressa matematicamente come $\scriptstyle a\lor b$.

### dizionario

    Vedi array associativo.

## F
### funzione

    Una funzione è una sequenza di istruzioni che eseguono un compito specifico. Le funzioni possono essere utilizzate in un programma ovunque sia necessario eseguire un particolare compito. Le funzioni sono solitamente definite nel programma che le utilizzerà, ma a volte sono definite in librerie che possono essere utilizzate da altri programmi.

### funzione variadica (variadic function)

    Una funzione variadica è una funzione di arietà indefinita.

## I
### inline if

    Vedi operatore condizionale.

### intero

    Un intero è un numero che può essere scritto senza una componente frazionaria o decimale. Gli interi sono implementati in Lua nello stesso modo degli altri numeri.

### inverso additivo

    L'inverso additivo di un numero è il numero che, sommato a quel numero, dà zero. Ad esempio, l'inverso additivo di 42 è -42.

### istruzione condizionale (conditional statement)

    Un'istruzione condizionale è un'istruzione che esegue un pezzo di codice se una condizione è vera.

## L
### letterale (literal)

    Un letterale è una notazione per rappresentare un valore fisso nel codice sorgente. Tutti i valori possono essere rappresentati come letterali in Lua, eccetto thread e userdata.

## M
### mappa (map)

    Vedi array associativo.

### mappa hash (hash map)

    Vedi tabella hash.

### metodo

    Un metodo è una funzione che è membro di un oggetto e generalmente opera su quell'oggetto.

### modulo

    Vedi operazione modulo.

## N
### negazione aritmetica

    La negazione aritmetica è l'operazione che produce l'inverso additivo di un numero.

### negazione booleana

    Vedi negazione logica.

### negazione logica

    La negazione logica, implementata in Lua dall'operatore not, è l'operazione che produce il complemento logico di un valore booleano.

### nil

    Il tipo nil è il tipo del valore nil, la cui proprietà principale è quella di essere diverso da qualsiasi altro valore; solitamente rappresenta l'assenza di un valore utile.

### numero

    Il tipo numero rappresenta numeri reali (virgola mobile a doppia precisione). È possibile creare interpreti Lua che utilizzano altre rappresentazioni interne per i numeri, come float a precisione singola o numeri interi lunghi.

## O
### operatore

    Un operatore è un token che genera un valore da uno o più operandi.

### operatore condizionale

    Un operatore condizionale è un operatore che restituisce un valore se una condizione è vera e un altro valore se non lo è.

### operatore not

    Vedi negazione logica.

### operatore relazionale (relational operator)

    Un operatore relazionale è un operatore utilizzato per confrontare i valori.

### operazione aritmetica

    Un'operazione aritmetica è un'operazione i cui operandi sono numeri.

### operazione binaria

    Un'operazione binaria è un'operazione la cui arietà è due.

### operazione di lunghezza (length operation)

    L'operazione di lunghezza è l'operazione che restituisce il numero di valori presenti in un array.

### operazione modulo

    L'operazione modulo, implementata in Lua dall'operatore %, è l'operazione che produce il resto della divisione di un numero per un altro.

## P
### parametro

    Un parametro è una variabile in una definizione di funzione alla quale viene assegnato l'argomento corrispondente in una chiamata a quella funzione.

### parametro attuale (actual parameter)

    Vedi argomento.

### parametro formale

    Vedi parametro.

### predicato

    Un predicato è un'espressione che restituisce un dato logico.

### procedura

    Vedi funzione.

## R
### routine

    Vedi funzione.

## S
### simbolo (symbol)

    Vedi token.

### sottoprogramma (subprogram)

    Vedi funzione.

### stringa (string)

    Il tipo stringa rappresenta array di caratteri. Lua è compatibile con l'elaborazione a 8 bit: le stringhe possono contenere qualsiasi carattere a 8 bit, inclusi zeri incorporati.

### stringa letterale (string literal)

    Una stringa letterale è la rappresentazione di un valore stringa all'interno del codice sorgente di un programma. Per quanto riguarda la sintassi, una stringa letterale è un'espressione che restituisce una stringa.

### struttura dei dati (data structure)

    Una struttura dati è un modo particolare di memorizzare e organizzare i dati nella memoria di un computer. È l'implementazione di un tipo di dati astratto.

### subroutine

    Vedi funzione.

## T
### tabella hash (hash table)

    Una tabella hash è un'implementazione come struttura dati dell'array associativo. Una tabella hash utilizza una funzione hash per calcolare un indice in un array di bucket o slot, da cui è possibile trovare il valore corrispondente all'indice.

### tabella dei simboli (symbol table)

    Una tabella dei simboli è un'implementazione come struttura dati dell'array associativo. Sono comunemente implementate come tabelle hash.

### tipo astratto (abstract type)

    Un tipo astratto è un tipo di dati di cui non è possibile creare direttamente istanze.

### tipo concreto (concrete type)

    Un tipo concreto è un tipo le cui istanze possono essere create direttamente.

### tipo di dati (data type)

    Un tipo di dati è un modello per rappresentare l'archiviazione dei dati nella memoria di un computer.

### tipo di dati astratto (abstract data type)

    Un tipo di dati astratto è un modello per rappresentare una classe di strutture dati che hanno un comportamento simile. I tipi di dati astratti sono definiti dalle operazioni che possono essere eseguite su di essi e dai vincoli matematici di queste operazioni, piuttosto che dall'implementazione e dal modo in cui i dati sono archiviati nella memoria del computer.

### token

    Un token è un pezzo atomico di dati, come una parola in un linguaggio umano o una parola chiave in un linguaggio di programmazione, dal quale è possibile dedurre un significato durante l'analisi.

## V
### variabile

    Una variabile è un'etichetta associata a una posizione nella memoria. I dati in quella posizione possono essere modificati e la variabile punterà ai nuovi dati.