Pawn
Эту статью предлагается удалить. |
Pawn | |
---|---|
Класс языка | сценарный язык |
Тип исполнения | компилируемый |
Появился в | 1998 |
Автор | ITB CompuPhase |
Расширение файлов |
.pwn, .p, .amx |
Выпуск | 4.0.5749 (18 октября 2017[1]) |
Испытал влияние | Small-C[2] |
Лицензия | лицензия zlib |
Сайт | compuphase.com/pawn/pawn… |
Медиафайлы на Викискладе |
Pawn (прежнее название — Small)[1] — простой, не типизированный 32-битный скриптовый язык программирования с синтаксисом, подобным языку Си. Компилятор генерирует P-код (или байт-код), запускаемый на абстрактной машине. Файлы исходного кода Pawn имеют расширение .pwn; скомпилированные и готовые к исполнению — .amx
История языка
[править | править код]Введение в язык Pawn и в понятие абстрактной машины было описано как перспектива программистов, и опубликовано в журнале доктора Добба[3] в октябре 1999 года. Язык был разработан для начинающих программистов, которые допускали множество ошибок, связанных с освобождением памяти компьютера[4].
Основой для Pawn был взят язык Си. Целью разработчиков было упростить и изменить язык Си таким образом, чтобы синтаксис языка позволял избегать или обходить те ошибки, которые допускают неопытные программисты. Выбор языка Си определило то, что этот язык в тот момент достиг максимума своего развития и был довольно популярен[4].
Особенности языка
[править | править код]- Pawn — это Си-подобный скриптовый язык.
- Можно подключать файлы (#include).
- Pawn — это скриптовый язык с компилятором, который выполняет статические проверки, и с абстрактной машиной, которая (статически) выполняет верификацию P-кода и динамическую проверку.
- С целью портирования, Pawn был написан на ANSI C.
- Pawn поддерживает Unicode/UCS-4 и UTF-8, а также кодовые страницы. Компилятор может преобразовать введённый исходный код в особую кодовую страницу Unicode; он также поддерживает файлы исходного кода в кодировке UTF-8.
- Он был установлен на микроконтроллеры Atmel ATmega128, Philips LPC2138 и LPC2106 (ядро ARM7TDMI с 32 КБ ОЗУ), а также на Texas Instrument MSP430F1611 (ядро MSP430 с 10 КБ оперативной памяти и 48 КБ Flash ROM). Pawn позволяет запускать большие скрипты с небольшим объёмом памяти.
- Документирование исходного кода может быть сделано с помощью «комментариев документации»; компилятор Pawn извлекает эти комментарии, объединяет их с информацией из исходного кода и записывает в XML-файл, который можно просмотреть (и распечатать) с помощью веб-браузера.
- Pawn поддерживает состояния и автоматы, включая переменные локальных состояний.
Типы данных
[править | править код]В языке Pawn существует 4 типа данных:
- Целые числа, Integer (при объявлении переменной тип данных указывать не требуется,
new Переменная;
) - Числа с плавающей точкой (
new Float:Переменная;
) - Логический тип, булев или Boolean (
new bool:Переменная;
) - Символ
Примеры кода
[править | править код]«Hello World» выглядит почти так же, как и в Си:
#include a_samp
main() print("Hello World!");
Пример создания и использования массива для целочисленных значений
#include <core>
main()
{
new array[4]; // Инициализация массива с 4 элементами
array[0] = 43; // Изменение значения элемента с индексом 0
array[1] = 10; // Изменение значения элемента с индексом 1
array[2] = 799; // Изменение значения элемента с индексом 2
array[3] = 121332; // Изменение значения элемента с индексом 3
return 1; // Возвращает 1
}
Пример цикла и оператора if-else
#include <core>
main()
{
new i;
for(i = 0; i < 10; i++)
{
if (i != 9)
{
print("%d", i);
}
else
{
print("девять");
}
}
return 1; // Возвращает 1
}
Применение языка
[править | править код]Некоторые примеры использования языка Pawn:
- Grand Theft Auto: San Andreas Multiplayer — для написания игровых режимов/сценариев, использующих API, для собственных серверов популярного неофициального мультиплеера San Andreas Multiplayer игры Grand Theft Auto: San Andreas.
- AmxModX[5] — в написании плагинов для AmxModX, которые позволяют выполнять сценарии на серверах игр на движке GoldSrc. Самыми популярными являются применения в играх Half-life и Counter-Strike
- SourceMod — в написании плагинов для модулей SourceMod, которые позволяют выполнять сценарии на серверах игр Half-Life 2: Deathmatch, Counter-Strike: Source и других игр на движке Source.
- WOWCube — написание прикладных игр для этой игровой консоли, и его эмулятора[6].
Примечания
[править | править код]- ↑ 1 2 The Pawn Language (англ.). Дата обращения: 19 июля 2011. Архивировано из оригинала 14 августа 2012 года.
- ↑ The Pawn Booklet: 1. Language Guide (4 марта 2008). Архивировано из оригинала 14 августа 2012 года.
- ↑ Dr. Dobb’s Journal (англ.). Архивировано из оригинала 14 августа 2012 года.
- ↑ 1 2 The Pawn language - language and toolkit features (англ.). Дата обращения: 19 июля 2011. Архивировано из оригинала 14 августа 2012 года.
- ↑ AMX Mod X - Half-Life Scripting for Pros! www.amxmodx.org. Дата обращения: 10 апреля 2019.
- ↑ Dean Takahashi (2018-05-30). "Cubios' WowCube is a handheld game console inspired by Rubik's Cube". VentureBeat. Дата обращения: 28 июня 2018.
Ссылки
[править | править код]- The Pawn Language (англ.) — официальный сайт
Для улучшения этой статьи желательно:
|