software.wikisort.org - Язык_программирования

Search / Calendar

Pawn (прежнее название — Small)[1] — простой, не типизированный 32-битный скриптовый язык программирования с синтаксисом, подобным языку Си. Компилятор генерирует P-код (или байт-код), запускаемый на абстрактной машине. Файлы исходного кода Pawn имеют расширение .pwn; скомпилированные и готовые к исполнению — .amx. Популярный язык программирования для игровых серверов на базе SAMP. Имеет необычный компилятор, а также редактор кода — Pawno.

Pawn
Класс языка Си-образный
Тип исполнения компилируемый
Появился в 1998
Автор ITB CompuPhase
Расширение файлов .pwn, .p, .amx, .inc
Выпуск 4.0.5749 (18 октября 2017[1])
Испытал влияние Small-C[2]
Лицензия лицензия zlib
Сайт compuphase.com/pawn/pawn…
 Медиафайлы на Викискладе

История языка


Введение в язык Pawn и в понятие абстрактной машины было описано как перспектива программистов, и опубликовано в журнале доктора Добба[3] в октябре 1999 года. Язык был разработан для начинающих программистов, которые допускали множество ошибок, связанных с освобождением памяти компьютера[4].

Основой для Pawn был взят язык Си. Целью разработчиков было упростить и изменить язык Си таким образом, чтобы синтаксис языка позволял избегать или обходить те ошибки, которые допускают неопытные программисты. Выбор языка Си определило то, что этот язык в тот момент достиг максимума своего развития и был довольно популярен[4].


Особенности языка



Типы данных


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


Примеры кода


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

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) 
        {
          printf("%d", i);
        }
        else
        {
          print("девять");
        }
    }

    return 1; // Возвращает 1
}

Пример использование переменных:

#include <core>

main() 
{
    new a = 3;
    new b = 1;
    printf("А равно = %d, а Б = %d", a, b); // При старте будет писать: А равно = 3, а Б = 1.
    
    return 1; // Возвращает 1
}

Пример использования операторов выражения:

#include <core>

main() 
{
    new a = 1;
    new b = 2;
    new c = 3;
    if(a < b) print("A меньше B"); // При старте будет писать: A меньше B
    if(c != a) print("C не равняется A"); // При старте будет писать: C не равняется A
    if(a == 1 && a != b) print("A равняется 1 и не равняется B"); // При старте будет писать: A равняется 1 и не равняется B
    if(b == 2 || c == 3) print("B равняется 2 или C равняется 3"); // При старте будет писать: B равняется 2 или C равняется 3
    
    return 1; // Возвращает 1
}

Применение языка


Некоторые примеры использования языка Pawn:


Примечания


  1. 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. The Pawn language - language and toolkit features (англ.) (недоступная ссылка). Дата обращения: 19 июля 2011. Архивировано 14 августа 2012 года.
  5. AMX Mod X - Half-Life Scripting for Pros!. www.amxmodx.org. Дата обращения: 10 апреля 2019. Архивировано 10 апреля 2019 года.
  6. Dean Takahashi. Cubios’ WowCube is a handheld game console inspired by Rubik’s Cube, VentureBeat (30 мая 2018). Архивировано 2 июня 2021 года. Дата обращения 28 июня 2018.

Ссылки





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

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

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