Linden Scripting Language
# Linden Scripting Language

Il Linden Scripting Language (LSL) è un linguaggio di programmazione utilizzato nel mondo virtuale Second Life della Linden Lab e ideato da Cory Ondrejka. Ha una sintassi simile a quella del linguaggio C e permette di progettare e controllare il comportamento degli oggetti presenti nell'ambiente. Inoltre, è possibile interfacciare i contenuti di Second Life con il resto della rete Internet tramite email, XML-RPC e HTTP.

## Caratteristiche

LSL è un linguaggio di scripting fortemente tipizzato. Uno script consiste nella definizione finita di un insieme di funzioni, variabili, cicli. LSL aggiunge a queste funzionalità anche gli stati. Ogni stato contiene le istruzioni per gestire gli eventi che avvengono su un oggetto. Un oggetto avrà uno stato quando viene "toccato" (ossia modificato), uno stato quando non lo è, ecc.

Ci sono più di 300 librerie di funzioni disponibili. I programmatori possono definire anche funzioni proprie. Uno script LSL è compilato in bytecode, per essere poi eseguito su uno dei server della Linden Lab. Il pacchetto base di LSL gestisce interi, numeri in virgola mobile, stringhe, quaternioni e vettori, anche eterogenei.

## Hello, world in LSL

Ecco un esempio di script che saluta il tuo avatar:

Si può vedere il metodo touch che indica allo script cosa fare quando l'oggetto indicato come parametro viene "toccato".

## Ambiente di sviluppo (IDE)

Su Second Life è stato messo a disposizione di chiunque volesse crearsi un proprio script un IDE particolare. Si tratta di una specie di programma per modellazione 3D, dove si può anche modificare il codice.

## Il futuro di LSL

Una nuova release del linguaggio era stata annunciata nel 2006, ma è stata posticipata a tempo indefinito. La Linden Lab sta ancora sviluppando il linguaggio, come evidenziato da una dimostrazione fatta alla Microsoft. Il nuovo interprete usa Mono (la versione open source del framework .NET della Microsoft), in quanto macchina virtuale per l'esecuzione degli script sui server. Il linguaggio rimane lo stesso, ma l'esecuzione su Mono aumenta di molto la velocità di esecuzione.

