Пішак () — проста, безтипова, 32-бітна скриптова мова програмування з розширенням синтаксису подібним до мови програмування C. Програма Pawn компілюється в бінарний файл для оптимальної швидкості виконання. Компілятор Pawn виводить P-код (або байт-код), який згодом працює на абстрактну машину. Швидкість виконання, стійкість, простота і компактність були основними критеріями дизайну як для мови і абстрактної машини. Вихідний файл має розширення — *.pwn, а скомпільований (готовий до роботи) одержує розширення — *.amx.
Впровадження Введення в мову Pawn і термін абстрактної машини з точки зору програмістів був опублікований в жовтневому питанні журналу Dr. Dobb's Journal 1999 року, в той час, мова називалася Small. Мова програмування більше підходить для недосвідчених програмістів, також Pawn є безкоштовним продуктом, який підтримується в основному у вільний час.
Особливості мови Pawn є простою, С-подібною мовою програмування. Pawn є надійною мовою, яка за допомогою компілятора, виконує максимальну кількість статичних перевірок разом з абстрактним рушієм перевірок P-кода (статично), в також динамічних перевірок. Для цілей переносу, Pawn записується в ANSI C, наскільки це можливо; Великий порядок байтів проти маленького порядку - обробляється. Для комфорту інтернаціоналізації та локалізації, Pawn підтримує Unicode / UCS-4 і UTF-8, а також кодові сторінки. Компілятор може перетворити вихідний код, введений в тій чи іншій кодової сторінці в Unicode; він також підтримує файли вихідного коду в форматі UTF-8. Pawn є швидким (особливо з впровадженням асемблера Марка Петерса та / або його «just-in-time» компілятором). Pawn є малим. Він був встановлений на мікроконтролер Atmel ATmega128, Philips LPC2138 і LPC2106 мікроконтролери (ядро ARM7TDMI з 32 КБ оперативної пам'яті), а також на MSP430F1611 Texas Instrument (в MSP430 ядро з 10 КБ оперативної пам'яті і 48 КБ флеш-пам'яті). Використання коду накладки, які завантажуються на вимогу - не є проблемою. Pawn може працювати з великим скриптом, використовуючи мало пам'яті. Документування вихідного коду може бути зроблено з «Коментарями документації»; Pawn (компілятор) витягує ці коментарі, об'єднує їх з інформацією, пізніше виводить з вихідного коду і створює XML файл, який відразу ж можна побачити (і роздрукувати) за допомогою веббраузера. Pawn підтримує статику і автоматони на мові, в тому числі локальні змінні. Pawn є вільним і опублікований під ліцензією Apache 2.0 , застереження дозволяє зв'язувати бібліотеки для комерційних додатків.
Типи даних
Цілі числа (Integer, new int:Змінна;) Числа з рухливою комою (Floating, new float:Змінна;) Логічний тип (Boolean, new bool:Змінна;)
Застосування мови Grand Theft Auto: San Andreas Multiplayer
Мова Pawn активно використовується для написання ігрових режимів / сценаріїв, що використовують API, для власних серверів популярного неофіційного мультиплеєра San Andreas Multiplayer гри Grand Theft Auto: San Andreas.
AmxModX
Мова Pawn використовується в написанні плагінів для AmxModX, які дозволяють виконувати сценарії на ігровому рушію GoldScr, наприклад в іграх Counter-Strike, Half-Life, Day of Defeat.
SourceMod
Мова Pawn використовується в написанні плагінів для модулю SourceMod, що дозволяє виконувати сценарії на Source Engine, наприклад в іграх Half-Life 2: Deathmatch, Counter Strike: Source, Counter-Strike: Global Offensive, Team Fortress 2, Left 4 Dead, Left 4 Dead 2.
Приклади коду Ініціалізація тексту "Привіт світ": #include <core> main() { print("Привіт світ!"); return 1; } Ініціалізація масиву, змінна кожного значення масиву і його запис: #include <core> main() { new array; // Ініціалізація масиву з 4 елементами array = 43; // Зміна значення елемента з індексом 0 array = 10; // Зміна значення елемента з індексом 1 array = 799; // Зміна значення елемента з індексом 2 array = 1212; // Зміна значення елемента з індексом 3 return 1; } Ініціалізація for, if, else: #include <core> main() { for(new i = 0; i < 10; i++)
if(i != 9) printf("%d,", i); else print("дев'ять");
return 1; }
Джерела The Pawn Language The Pawn Booklet: 1. Language Guide
Зовнішні посилання Офіційний вебсайт SA-MP AmxModX SourceMod AlliedModders