www.wikidata.de-de.nina.az
Die Linden Scripting Language oder kurz LSL ist eine von Linden Lab entwickelte imperative Skriptsprache die der Steuerung von Objekten in der virtuellen 3D Welt Second Life dient Inhaltsverzeichnis 1 Aufbau und Eigenschaften 1 1 Zustande 1 2 Variablen 1 3 Ereignisse 1 4 Funktionen 2 Beispiel 3 LSL und Mono 4 WeblinksAufbau und Eigenschaften BearbeitenLSL ist eine ereignisgesteuerte Sprache die in Anlehnung an endliche Automaten entwickelt wurde Jedes Skript besteht dabei aus mindestens einem Standardzustand mit der Bezeichnung default welcher zugleich den Anfangszustand des Automaten darstellt Zustande Bearbeiten Wie bei deterministischen endlichen Automaten hat jedes LSL Skript eine feste endliche Anzahl von eindeutig benannten Zustanden allen voran der default Zustand welcher den Initialzustand darstellt und zwingend vorhanden sein muss Zustandswechsel werden mit der state Anweisung vollzogen welche den Namen des Zielzustands als Parameter erwartet Variablen Bearbeiten LSL kennt lokale und globale Variablen Variablen konnen folgende Datentypen haben integer vorzeichenbehaftete 32bit Ganzzahlen im Wertebereich von 231 bis 231 1 also von 2 147 483 648 bis 2 147 483 647 oder 0x80000000 bis 0x7FFFFFFF hexadezimal float 32bit Fliesskommazahlen im IEEE 754 Format also absolut von 1 175494351 10 38 bis 3 402823466 10 38 string Zeichenketten Die Lange von Zeichenketten ist theoretisch unbegrenzt praktisch jedoch durch die Grosse des fur das Programm reservierten Speichers beschrankt Da sich der Bytecode Heap sowie Stack diesen Speicherbereich teilen kann die maximale Lange fur Zeichenketten je nach Skript zur Ausfuhrung beliebig klein werden key UUID Universally Unique ID welche zeitlich sowie raumlich eindeutige 16 byte Schlussel im Second Life Universum darstellen Sie dienen der Identifikation von Objekten Avataren Texturen Audiodateien sowie logischen Konstrukten Anbindungen HTTP und RPC Verbindungen Listener und anderen vector Tripel aus jeweils drei benannten float Komponenten x y und z sie dienen primar der Darstellung von Vektoren im naiven dreidimensionalen Sinne der Farbdarstellung im RGB Farbraum teilweise auch als Offset und Positionsvektoren zur Ausrichtung von Texturen rotation Quaternion als Typ zur Darstellung komplexer Rotationen list ein Typ zur Darstellung linearer Listen LSL Listen konnen als Arrays aufgefasst werden d h sie stellen Folgen der festen Lange n von LSL Werten dar deren Komponenten von 0 bis n 1 adressiert sind LSL Listen konnen keine weiteren Listen enthalten Ereignisse Bearbeiten In jedem Zustand eines LSL Skripts konnen Ereignisse events deklariert werden Die Menge der definierten Ereignisse wird von Linden Lab vorgegeben wie etwa state entry das Skript nimmt den benannten Zustand an touch start integer num num Avatare haben das enthaltende Objekt beruhrt also angeklickt oder http response key id integer status list metaData string body ein HTTP Server hat seine Antwort gesendet Mit jedem Ereignis ist ein Anweisungsblock assoziiert welcher beim Eintreten des Ereignisses ausgefuhrt wird und vom Programmierer frei definierbar ist LSL Skripte sind derart synchronisiert dass nie mehr als ein Ereignis zeitgleich eintritt damit konnen keine Kollisionen bei Operationen auf globalen Variablen auftreten Funktionen Bearbeiten Linden Lab bietet eine relativ umfangreiche Funktionsbibliothek die vom Programmierer frei verwendet werden kann Dabei gibt es sowohl reine Funktionen nach klassischer Auffassung zum Beispiel llSin float x zur Berechnung der Sinusfunktion wie auch Funktionen mit Prozedurcharkteristik zum Beispiel llTargetOmega welche zum Starten einer autarken Objektrotation genutzt werden kann Des Weiteren ist es moglich eigene Funktionen zu definieren welche auch Mischformen aus Funktion und Prozedur sein konnen und auf globalen Variablen des Skripts operieren durfen Beispiel BearbeitenAnbei folgt das Standard Beispielskript von Linden Lab welches dem ublichen Hallo Welt Programm entspricht default state entry llSay 0 Hello Avatar touch start integer num detected llSay 0 Touched LSL und Mono BearbeitenIm Herbst 2008 begann Linden Lab damit die bis dato verwendete LSL Implementierung durch die Open Source Software Mono zu ersetzen welche eine NET kompatible Laufzeitumgebung darstellt und durch die erhebliche Laufzeitverbesserungen verzeichnet wurden Des Weiteren vervierfachte sich damit der fur jedes Skript verfugbare Speicher von 16 KiB auf 64 KiB Etwa gleichzeitig begann der Mono basierte Nachbau von LSL fur OpenSimulator dem Open Source Pendant von Second Life Weblinks Bearbeitenwiki secondlife com Offizielles LSL Portal von Second Life Linden Lab lslwiki net Inoffizielles LSL Wiki Nicht mehr aktuell Offline Speicheraufteilung bei Standard LSL lslwiki net Nicht mehr aktuell Offline Speicheraufteilung mit und ohne Mono wiki secondlife com Second Life Mono Wiki wiki secondlife com Abgerufen von https de wikipedia org w index php title Linden Scripting Language amp oldid 193989164