Pawn (Programmiersprache)
![](http://upload.wikimedia.org/wikipedia/commons/7/71/Pawn_logo.png)
Pawn ist eine einfache, typenlose, 32-Bit-Erweiterungssprache mit einer C-ähnlichen Syntax. Ein Pawn-Programm wird in eine Binärdatei kompiliert. Der Pawn-Compiler generiert P-Code (oder Bytecode), der anschließend auf einer abstrakten Maschine ausgeführt wird. Ausführungsgeschwindigkeit, Stabilität, Einfachheit und ein kleiner Speicherbedarf waren wesentliche Designkriterien sowohl für die Sprache als auch für die abstrakte Maschine.[1]
Geschichte
Die Pawn-Programmiersprache wurde erstmals in den späten 1990er Jahren von IT-Studenten der Universität Uppsala in Schweden entwickelt. Das Hauptziel war es, eine einfache und leistungsstarke Skriptsprache zu schaffen, die in unterschiedlichen Anwendungsfällen verwendet werden kann.[2]
Merkmale
Merkmale von Pawn
- C-ähnliche Syntax: Die Syntax von Pawn ist an C/C++ angelehnt, was sie für Entwickler, die mit diesen Sprachen vertraut sind, leicht verständlich macht.
- Kompaktheit: Pawn zeichnet sich durch seine geringe Größe aus und erfordert wenig Speicherplatz, was für den Einsatz in ressourcenbeschränkten Umgebungen wie Mikrocontrollern vorteilhaft ist.
- Precompiler-System: Das Precompiler-System von Pawn ermöglicht es Entwicklern, benutzerdefinierte Befehle und Funktionen zu erstellen, um ihre Arbeitsabläufe zu automatisieren und zu optimieren.
- Portabilität: Pawn ist auf verschiedenen Plattformen verfügbar und bietet somit eine hohe Portabilität für Entwickler.
- Modularität: Entwickler können Bibliotheken und Module in Pawn schreiben und wiederverwenden, um die Entwicklung von Skripten zu beschleunigen.
Anwendungsbereiche
Pawn ist eine Programmiersprache, die in verschiedenen Anwendungsbereichen Verwendung findet.
Bekanntheit hat Pawn vor allem als Skriptsprache für das Modding des Spiels "GTA San Andreas" im Rahmen der Multiplayer-Modifikation SAMP (San Andreas Multiplayer) erlangt. Obwohl Pawn häufig mit SAMP in Verbindung gebracht wird, wurde es auch für andere Anwendungsfälle eingesetzt. So kommt Pawn bei der Programmierung von Mikrocontrollern und anderen eingebetteten Systemen zum Einsatz. Darüber hinaus wird Pawn auch in anderen Spielmodifikationen und Projekten verwendet.[3][4]
Wenn Pawn für SAMP verwendet wird, erfolgt dies durch das Einbinden von SAMP-spezifischen Includes in das Skript wie z. B.:
#include <a_samp>
Dadurch können alle relevanten Publics, Funktionen und Callbacks von SAMP benutzt werden.
Variablen
Im Vergleich zu C gibt es in Pawn weniger Variablentypen und ihre Deklaration erfolgt anders. Pawn verlangt immer die Verwendung des Schlüsselwortes new
, das bei Bedarf durch den jeweiligen Typ ergänzt wird, gefolgt vom Variablennamen. Standardmäßig werden Variablen in Pawn als Integer typisiert, die explizite Typangabe kann da entfallen. Es ist eine anerkannte Konvention, bei der Deklaration von Variablen immer eine Initialisierung vorzunehmen, auch wenn der Compiler automatisch einen Wert zuweist.
Typ | Deklaration | Spezifizierer |
---|---|---|
Integer | new a = 3; | %d, %i |
Float | new Float:pi = 3.14; | %f (%.2f → 2 Dezimalstellen) |
Boolean | new bool:lightOn = false; | %b |
Charakter | new lettreB = 'B'; | %c (%d → code ASCII) |
Zeichenkette/String | new monEncyclopedie[] = "Wikipédia"; | %s |
main() { new Float:pi = 3.14; printf("Näherungswert von pi : %f"); }
Strukturen und Schleifen, Operatoren
Pawn kennt, analog zu C, Kontrollstrukturen wie if-else
, switch
; Schleifenkonstrukte wie for
, while
oder do while
sowie arithmetische Operatoren (z. B. +
) und auch logische (z. B. ||
).[5]
Funktionen
Beispiel einer Funktion:
forward bool:Gleich(a, b); // Erstellen eines Vorwärtsdeklaration unter Verwendung des Schlüsselworts forward main() { new a = 5, b = 3; printf("A und B gleich? %b\n", Gleich(a, b)); } bool:Gleich(a, b) { return a == b; }
Weblinks
- GitHub-Projektseite mit Quellcode
- sampwiki PAWN_for_Beginners
- Dokumentation
Einzelnachweise
- ↑ The Pawn language. Abgerufen am 10. September 2023.
- ↑ The Pawn language. Abgerufen am 10. September 2023.
- ↑ heise online: Skript-Programmierung mit PAWN. Abgerufen am 10. September 2023.
- ↑ Pawn embedded scripting language A Gentle Introduction to Programming. CompuPhase, abgerufen am 10. September 2023.
- ↑ Pawn Style Guide. Abgerufen am 10. September 2023 (englisch).