Pawn

PAWN
Logotipo PAWN
ParadigmaProcedural
Surgido em1998
Última versão4.0.5691 (13 de junho de 2017)
Criado porITB CompuPhase
Estilo de tipagemdinâmica
Principais implementaçõesPAWN Compiler
Influenciada porSmall-C, C
LicençaLicença Apache 2.0
Página oficialwww.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

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

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

Declarações

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

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.

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.
Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.