Pawn
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 |
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.
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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]//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.
- ↑ 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.
- ↑ Callbacks (em inglês), registro de eventos propriamente definidos pela máquina virtual.
- ↑ Getting started (em inglês), compilando e executando seu primeiro código Pawn.
- ↑ Pawn Language Guide.pdf Arquivado agosto 14, 2012 no WebCite (em inglês), documentação da sintaxe da linguagem Pawn.
- ↑ O operador "new" (em inglês), declarando variáveis typeless.