Portal SAMP
[Tutorial] Pawn, oque é? - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Guias e Tutoriais (https://portalsamp.com/forumdisplay.php?fid=7)
+--- Tópico: [Tutorial] Pawn, oque é? (/showthread.php?tid=2004)



Pawn, oque é? - Levi.M - 02/01/2022

Pawn



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, normalmente usada para definir eventos, chamados Callbacks, que são registrados pela máquina virtual do projeto.



Compilação

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, 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

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


Declarações:

As declarações em Pawn são typeless. 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.
Código:
Exemplo

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!
//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.


Bom, esse é um pouco da linguagem pawn, achei interessante postar aqui. Pequeno resumo sobre a linguagem usada em nosso querido jogo.