WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
Pawn
Класс языка сценарный язык
Тип исполнения компилируемый
Появился в 1998
Автор ITB CompuPhase
Расширение файлов .pwn, .p, .amx
Выпуск 4.0.5749 (22 июня 2012[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, так что вы сможете организовать аккуратную структуру Pawn кода.
  • Pawn — это скриптовый язык с компилятором, который выполняет статические проверки, и с абстрактной машиной, которая (статически) выполняет верификацию P-кода и Надстрочный текстКрупный текст
  1. перенаправление Подстрочный текст
  • Элемент нумерованного списка

проверку.

  • С целью портирования, Pawn был написан на ANSI C.
  • Pawn поддерживает Unicode/UCS-4 и UTF-8, а также кодовые страницы. Компилятор может преобразовать введённый исходный код в особую кодовую страницу Unicode; он также поддерживает файлы исходного кода в кодировке UTF-8.
  • Он был установлен на микроконтроллеры Atmel ATmega128, Philips LPC2138 и LPC2106 (ядроawn позволяет запускать большие скрипты с небольшим объёмом памяти.
  • Документирование исходного кода может быть сделано с помощью «комментариев документации»; компилятор Pawn извлекает эти комментарии, объединяет их с информацией из исходного кода и записывает в XML-файл,




который можно просмотреть (и распечатать) с помощью веб-браузера.

  • Pawn поддерживает состояния и автоматы, включая переменные локальны Rх состояний.

Типы данных

В языке Pawn существует 4 типа данных:

Примеры кода

«Hello World» выглядит почти так же, как и в Си:

#include <core>

main() 
{
    print("Hello World!");

    return 1; // Возвращает 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; // Возвращает 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: Half-Life, Counter-Strike - в написании плагинов для модулей AmxModX, которые позволяют выполнять сценарии на серверах игр Half-Life и его модов, в особенности используется для игры Counter-Strike.

Примечания

  1. 1 2 The Pawn Language (англ.). Проверено 19 июля 2011. Архивировано 14 августа 2012 года.
  2. The Pawn Booklet: 1. Language Guide (4 марта 2008). Архивировано 14 августа 2012 года.
  3. Dr. Dobb’s Journal (англ.). Архивировано 14 августа 2012 года.
  4. 1 2 The Pawn language - language and toolkit features (англ.). Проверено 19 июля 2011. Архивировано 14 августа 2012 года.
  5. Dean Takahashi. Cubios’ WowCube is a handheld game console inspired by Rubik’s Cube, VentureBeat (30 мая 2018). Проверено 28 июня 2018.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии