Pawn é uma linguagem de script de código aberto e de quarta geração, criada em 1998 pela empresa CompuPhase. De influência da linguagem de programação C, Pawn teve duas distribuições: Small, a primeira distribuição da linguagem; e a atualmente usada, denominada Pawn.

PAWN
Logotipo PAWN
Paradigma Procedural
Surgido em 1998
Última versão 4.0.5691 (13 de junho de 2017)
Criado por ITB CompuPhase
Estilo de tipagem dinâmica
Principais implementações PAWN Compiler
Influenciada por Small-C, C
Licença: Licença Apache 2.0
Página oficial www.compuphase.com

A linguagem em si, foi designada para ser implementada em projetos onde se tem a liberdade de criar suas funções[1], normalmente usada para definir eventos, chamados Callbacks[2], que são registrados pela máquina virtual do projeto.

Compilação editar

Pawn é uma linguagem compilável, ou seja, o seu código é transformado para linguagem de computador, que somente o intérprete da linguagem consegue entender. O intérprete da linguagem, é a máquina virtual, onde o código passa a ser chamado de AMX. AMX é interpretado como na linguagem de programação Assembly, assim, podendo ser interpretado com outras linguagens de programação de terceira geração, como por exemplo, C++.

A compilação é feita antes da execução[3], não como em certas linguagens de programação (como Squirrel e Lua, que a compilação é feita em run-time (em tempo de execução).

Sintaxe editar

Pawn possui uma sintaxe simples baseada na linguagem de programação C.[4] É case-sensitive, diferenciando letras maiúsculas de minúsculas.

Declarações editar

As declarações em Pawn são typeless.[5] Não precisamos diferenciar o tipo de variável ou função na declaração. Exceto com matrizes, que devemos declarar o número de células que a matriz pode usar (por a linguagem ter alocação estática, o valor de células é alocado na memória quando a máquina virtual é carregada). Não precisamos definir uma variável em sua declaração. Quando declarada sem definição, possui o valor 0.

  • Uma variável possui 4 bytes de tamanho por padrão em uma máquina x86 por cada célula que a mesma possui.
  • A stack, por padrão, armazerna um máximo de 5000 células para variáveis locais.
  • As variáveis globais são previamente alocadas no arquivo compilado.

Exemplo editar

new inteiro;         //um número inteiro de valor 0
new Float:flutuante; //caso a biblioteca de Fixed Numbers esteja carregada
new vetor[5];       //uma vetor de 5 células

new=variavel inteiro=nome da variavel

Olá Mundo! editar

//declara a função print (que será carregada de sua biblioteca)
native print(string[]);
 
//entry point (ponto de entrada) do código, primeira função a ser executada
main()
{
    //imprime a string "Olá Mundo!"
    print("Olá Mundo!");
}

Normalmente, a maioria dos projetos que possuem a linguagem de programação Pawn implementada, têm a função "print", para imprimir uma string ao console/log/IDE do projeto.

Referências

  1. Pawn Implementer's Guide.pdf Arquivado em 26 de dezembro de 2010, no Wayback Machine. (em inglês), documentação sobre a implementação da linguagem Pawn.
  2. Callbacks (em inglês), registro de eventos propriamente definidos pela máquina virtual.
  3. Getting started (em inglês), compilando e executando seu primeiro código Pawn.
  4. Pawn Language Guide.pdf Arquivado agosto 14, 2012 no WebCite (em inglês), documentação da sintaxe da linguagem Pawn.
  5. O operador "new" (em inglês), declarando variáveis typeless.
  Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.