Пішак (англ. Pawn) — проста, безтипова, 32-бітна скриптова мова програмування з розширенням синтаксису подібним до мови програмування C. Програма Pawn компілюється в бінарний файл для оптимальної швидкості виконання. Компілятор Pawn виводить P-код (або байт-код), який згодом працює на абстрактну машину. Швидкість виконання, стійкість, простота і компактність були основними критеріями дизайну як для мови і абстрактної машини. Вихідний файл має розширення — *.pwn, а скомпільований (готовий до роботи) одержує розширення — *.amx.
Pawn | |
---|---|
Мова скриптингу | |
Офіційний логотип | |
Розробники (компанія) | |
ITB CompuPhase | |
Основний опис | |
Перший спогад | 1998 |
Реліз | 4.0.5749 / 3 квітня 2020 року |
Розширення файлів | *.p, *.pwn, *.amx |
Тип виконання | Компільований |
ОС | Cross-platform |
Ліцензія | Apache 2.0 з виключенням лінкування |
Колишня назва | Small-C |
Офіційний вебсайт |
Впровадження
Введення в мову Pawn і термін абстрактної машини з точки зору програмістів був опублікований в жовтневому питанні журналу Journal 1999 року, в той час, мова називалася Small. Мова програмування більше підходить для недосвідчених програмістів, також Pawn є безкоштовним продуктом, який підтримується в основному у вільний час.
Особливості мови
- Pawn є простою, С-подібною мовою програмування.
- Pawn є надійною мовою, яка за допомогою компілятора, виконує максимальну кількість статичних перевірок разом з абстрактним рушієм перевірок P-кода (статично), в також динамічних перевірок.
- Для цілей переносу, Pawn записується в ANSI C, наскільки це можливо; Великий порядок байтів проти маленького порядку - обробляється.
- Для комфорту інтернаціоналізації та локалізації, Pawn підтримує Unicode / і 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 , застереження дозволяє зв'язувати бібліотеки для комерційних додатків.
Типи даних
Застосування мови
Grand Theft Auto: San Andreas Multiplayer
Мова Pawn активно використовується для написання ігрових режимів / сценаріїв, що використовують API, для власних серверів популярного неофіційного мультиплеєра San Andreas Multiplayer гри Grand Theft Auto: San Andreas.
AmxModX
Мова Pawn використовується в написанні плагінів для AmxModX, які дозволяють виконувати сценарії на ігровому рушію , наприклад в іграх 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]; // Ініціалізація масиву з 4 елементами array[0] = 43; // Зміна значення елемента з індексом 0 array[1] = 10; // Зміна значення елемента з індексом 1 array[2] = 799; // Зміна значення елемента з індексом 2 array[3] = 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 [Архівовано 14 серпня 2012 у WebCite]
- The Pawn Booklet: 1. Language Guide
Зовнішні посилання
- Офіційний вебсайт [Архівовано 14 серпня 2012 у WebCite]
- SA-MP [ 26 квітня 2015 у Wayback Machine.]
- AmxModX [ 18 грудня 2011 у Wayback Machine.]
- SourceMod [ 10 квітня 2019 у Wayback Machine.]
- AlliedModders [ 25 червня 2013 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Pishak angl Pawn prosta beztipova 32 bitna skriptova mova programuvannya z rozshirennyam sintaksisu podibnim do movi programuvannya C Programa Pawn kompilyuyetsya v binarnij fajl dlya optimalnoyi shvidkosti vikonannya Kompilyator Pawn vivodit P kod abo bajt kod yakij zgodom pracyuye na abstraktnu mashinu Shvidkist vikonannya stijkist prostota i kompaktnist buli osnovnimi kriteriyami dizajnu yak dlya movi i abstraktnoyi mashini Vihidnij fajl maye rozshirennya pwn a skompilovanij gotovij do roboti oderzhuye rozshirennya amx PawnMova skriptinguOficijnij logotipRozrobniki kompaniya ITB CompuPhaseOsnovnij opisPershij spogad1998Reliz4 0 5749 3 kvitnya 2020 rokuRozshirennya fajliv p pwn amxTip vikonannyaKompilovanijOSCross platformLicenziyaApache 2 0 z viklyuchennyam linkuvannyaKolishnya nazvaSmall COficijnij vebsajtVprovadzhennyaVvedennya v movu Pawn i termin abstraktnoyi mashini z tochki zoru programistiv buv opublikovanij v zhovtnevomu pitanni zhurnalu Journal 1999 roku v toj chas mova nazivalasya Small Mova programuvannya bilshe pidhodit dlya nedosvidchenih programistiv takozh Pawn ye bezkoshtovnim produktom yakij pidtrimuyetsya v osnovnomu u vilnij chas Osoblivosti movi Pawn ye prostoyu S podibnoyu movoyu programuvannya Pawn ye nadijnoyu movoyu yaka za dopomogoyu kompilyatora vikonuye maksimalnu kilkist statichnih perevirok razom z abstraktnim rushiyem perevirok P koda statichno v takozh dinamichnih perevirok Dlya cilej perenosu Pawn zapisuyetsya v ANSI C naskilki ce mozhlivo Velikij poryadok bajtiv proti malenkogo poryadku obroblyayetsya Dlya komfortu internacionalizaciyi ta lokalizaciyi Pawn pidtrimuye Unicode i UTF 8 a takozh kodovi storinki Kompilyator mozhe peretvoriti vihidnij kod vvedenij v tij chi inshij kodovoyi storinci v Unicode vin takozh pidtrimuye fajli vihidnogo kodu v formati UTF 8 Pawn ye shvidkim osoblivo z vprovadzhennyam asemblera ta abo jogo just in time kompilyatorom Pawn ye malim Vin buv vstanovlenij na mikrokontroler Atmel ATmega128 Philips LPC2138 i LPC2106 mikrokontroleri yadro ARM7TDMI z 32 KB operativnoyi pam yati a takozh na MSP430F1611 Texas Instrument v MSP430 yadro z 10 KB operativnoyi pam yati i 48 KB flesh pam yati Vikoristannya kodu nakladki yaki zavantazhuyutsya na vimogu ne ye problemoyu Pawn mozhe pracyuvati z velikim skriptom vikoristovuyuchi malo pam yati Dokumentuvannya vihidnogo kodu mozhe buti zrobleno z Komentaryami dokumentaciyi Pawn kompilyator vityaguye ci komentari ob yednuye yih z informaciyeyu piznishe vivodit z vihidnogo kodu i stvoryuye XML fajl yakij vidrazu zh mozhna pobachiti i rozdrukuvati za dopomogoyu vebbrauzera Pawn pidtrimuye statiku i avtomatoni na movi v tomu chisli lokalni zminni Pawn ye vilnim i opublikovanij pid licenziyeyu Apache 2 0 zasterezhennya dozvolyaye zv yazuvati biblioteki dlya komercijnih dodatkiv Tipi danih Cili chisla Integer new int Zminna Chisla z ruhlivoyu komoyu Floating new float Zminna Logichnij tip Boolean new bool Zminna Zastosuvannya moviGrand Theft Auto San Andreas Multiplayer Mova Pawn aktivno vikoristovuyetsya dlya napisannya igrovih rezhimiv scenariyiv sho vikoristovuyut API dlya vlasnih serveriv populyarnogo neoficijnogo multipleyera San Andreas Multiplayer gri Grand Theft Auto San Andreas AmxModX Mova Pawn vikoristovuyetsya v napisanni plaginiv dlya AmxModX yaki dozvolyayut vikonuvati scenariyi na igrovomu rushiyu napriklad v igrah Counter Strike Half Life Day of Defeat SourceMod Mova Pawn vikoristovuyetsya v napisanni plaginiv dlya modulyu SourceMod sho dozvolyaye vikonuvati scenariyi na Source Engine napriklad v igrah Half Life 2 Deathmatch Counter Strike Source Counter Strike Global Offensive Team Fortress 2 Left 4 Dead Left 4 Dead 2 Prikladi koduInicializaciya tekstu Privit svit include lt core gt main print Privit svit return 1 Inicializaciya masivu zminna kozhnogo znachennya masivu i jogo zapis include lt core gt main new array 4 Inicializaciya masivu z 4 elementami array 0 43 Zmina znachennya elementa z indeksom 0 array 1 10 Zmina znachennya elementa z indeksom 1 array 2 799 Zmina znachennya elementa z indeksom 2 array 3 1212 Zmina znachennya elementa z indeksom 3 return 1 Inicializaciya for if else include lt core gt main for new i 0 i lt 10 i if i 9 printf d i else print dev yat return 1 DzherelaThe Pawn Language Arhivovano 14 serpnya 2012 u WebCite The Pawn Booklet 1 Language GuideZovnishni posilannyaOficijnij vebsajt Arhivovano 14 serpnya 2012 u WebCite SA MP 26 kvitnya 2015 u Wayback Machine AmxModX 18 grudnya 2011 u Wayback Machine SourceMod 10 kvitnya 2019 u Wayback Machine AlliedModders 25 chervnya 2013 u Wayback Machine