[SCRIPTING I] Criando uma linguagem de script

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[SCRIPTING I] Criando uma linguagem de script

Mensagem por LeandroDaher em Sex 27 Fev 2015, 19:22

Crie a sua própria Linguagem de Scripting

Quando criamos um jogo muitas vezes há a necessidade de poder modifica-lo sem ter que recompilar todo o projeto ou ainda possibilitar que algum programador possa adicionar novas funcionalidades sem que este tenha acesso ao código fonte original enfim, são “n” motivos. O que proponho aqui é ensinar sobre a criação de uma linguagem de scripting simples apenas pelo prazer de ver sua própria linguagem interpretada funcionando mesmo que não seja algo mais completo e complexo como as linguagens Lua ou GML.


O que é?

Linguagem de script (também conhecido como linguagem de scripting, ou linguagem de extensão) são linguagens de programação executadas do interior de programas e/ou de outras linguagens de programação, não se restringindo a esses ambientes. As linguagens de script servem para estender a funcionalidade de um programa e/ou controlá-lo, acessando sua API e, são frequentemente usadas como ferramentas de configuração e instalação em sistemas operacionais (Shell script), como por exemplo, em alguns sistemas operacionais da família Linux, que usam a linguagem bash. São também frequentemente usadas em jogos, como por exemplo, os jogos Impossible Creatures e Tibia, que usa a linguagem Lua para controlar as ações dos personagens e o ambiente de batalha.
Todas as linguagens de script são linguagens interpretadas, porém, nem todas as linguagens interpretadas são linguagens de script. Os programas escritos em linguagens de script são, normalmente, referidos como scripts. Fonte: Wikipédia.


Se existem linguagens como Lua, GML e tantas outras por que aprender a criar a minha?

Nesta série vamos aprender o básico e, portanto o interpretador será muito inferior às outras linguagens de scripting, mas os conceitos aplicados na construção de um compilador ou interpretador podem ser utilizados para muitas outras coisas como, por exemplo, em um processador de textos como o Word que utiliza algumas técnicas de análise dos compiladores, além disso, aprender como as linguagens são criadas é algo emocionante não é mesmo? Aliás, quero estudar Ciências da Computação, mas não quero esperar até lá para aprender o básico sobre compiladores e acho que existem pessoas interessadas em “como as coisas funcionam” que pensam da mesma forma.


Antes de começar...

Antes de tudo, gostaria de deixar claro que não tenho entendimento da parte técnica do assunto, caso seja de seu interesse recomendo procurar no google por livros e tutoriais em português ou em inglês mesmo, você irá encontrar muitas coisas interessantes. Tendo isto em mente também quero deixar claro que não é certeza que eu vá terminar esta série um dia, pois não aprendi tudo, pretendo ir aprendendo e ensinando aos poucos, portanto vou começar com o mais básico, a análise léxica.

Durante o tutorial utilizaremos a linguagem de programação Pascal e compilaremos no Delphi (acho que podemos utilizar o Delphi 7, mas eu vou usar o Delphi 2010 pois é o único que tenho aqui) passaremos por diversas etapas, serão elas:

-Analise Léxica
-Analise Sintática
   -Extensões para a linguagem
-Interpretador

Ao final dos tutoriais seremos capazes de criar um programa que analisa o código e o interpreta em tempo de execução.

Infelizmente eu não me lembro muito bem do GML, mas se você entender a lógica por trás dos códigos poderá traduzi-los para outras linguagens.

Requisitos para continuar com os tutoriais


É necessário que o usuário seja um programador de nível intermediário da linguagem Pascal no Delphi e tenha conhecimentos da interface Delphi, como por exemplo, saber iniciar um projeto do tipo Console, estruturas de dados, declaração de tipos, variáveis e etc ou tenha conhecimentos o suficiente para traduzir os códigos para outra(s) linguagem(s).


Observação: Este tópico pode sofrer modificações caso seja necessário corrigir e/ou adicionar novos conteúdos.

Parte II: Em construção: Construindo o Analisador Léxico
Escrito por Leandro Daher
27/02/2015


Previa do Capítulo 2:

Análise Léxica: o que é?

A análise léxica consiste em processar e analisar um arquivo-fonte separando seus componentes em tokens (símbolos) para que o analisador sintático possa processá-los a fim de identificar os identificadores, palavras-chave, expressões, comandos e tudo que a gramática da linguagem possuir além de exibir os erros. Primeiro o analisador léxico carrega um arquivo-fonte e o lê caractere por caractere para identificar os tokens e seus conteúdos retornando-o para o analisador sintático, caso o analisador encontre um caractere que não se enquadra em nenhum dos tokens ele retorna um erro e termina a analise e caso o arquivo chegue ao final sem nenhum erro, a análise léxica do código é concluída.
Veja um exemplo de como o analisador léxico não case-sensitive separa os tokens.




Última edição por LeandroDaher em Sab 28 Fev 2015, 22:08, editado 6 vez(es)

LeandroDaher

Número de Mensagens : 357
Idade : 20
Data de inscrição : 13/05/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [SCRIPTING I] Criando uma linguagem de script

Mensagem por [PHX] em Sex 27 Fev 2015, 21:41

Parabéns pela iniciativa estarei dando uma olhado nos seus tópicos.

[PHX]

Número de Mensagens : 12
Data de inscrição : 17/02/2015
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [SCRIPTING I] Criando uma linguagem de script

Mensagem por vinians em Sab 28 Fev 2015, 09:25

Interessante amigo, esse assunto sempre foi meu favorito, até fiz alguns interpretadores de teste, fiz inclusive uma linguagem do tipo basic chamada Baskid, e acho um assunto fascinante. Boa sorte com seu projeto!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [SCRIPTING I] Criando uma linguagem de script

Mensagem por LeandroDaher em Sab 28 Fev 2015, 17:18

[PHX] escreveu:Parabéns pela iniciativa estarei dando uma olhado nos seus tópicos.

Obrigado amigo, espero que eu consiga terminá-lo.

[vinians] escreveu:Interessante amigo, esse assunto sempre foi meu favorito, até fiz alguns interpretadores de teste, fiz inclusive uma linguagem do tipo basic chamada Baskid, e acho um assunto fascinante. Boa sorte com seu projeto!

Obrigado amigo, com certeza é um dos melhores assuntos na área da computação.
Já vou começar a escrever a segunda parte do tutorial e estou bastante animado pois acabo de adicionar um interpretador de expressões matemáticas e até o momento esta funcionando bem, falta apenas adicionar variáveis e funções.

LeandroDaher

Número de Mensagens : 357
Idade : 20
Data de inscrição : 13/05/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [SCRIPTING I] Criando uma linguagem de script

Mensagem por fredcobain em Ter 10 Mar 2015, 10:24

Belíssima iniciativa. Esse primeiro módulo está muito bem organizado, bem escrito e com embasamento teórico (o que julgo ser muito importante).

Aprovadíssimo e aguardamos a continuação.

Muito obrigado pela contribuição!

fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [SCRIPTING I] Criando uma linguagem de script

Mensagem por Mr.Rafael em Ter 10 Mar 2015, 11:28

Ótimo assunto! Tutoriais como esse expressam o interesse tanto dos novatos quanto dos veteranos. É interessante ver como podemos montar uma linguagem própria para usos variados (e quando o assunto são jogos, possibilidades de tornar o jogo modificável por meio de scripts são bem legais). Very Happy

Ah, uma coisa que você pode se interessar também é sobre um blog que eu havia descoberto (já faz um bom tempo), bem interessante, que praticamente mostra como reescrever a linguagem Ruby inteiramente do zero (no melhor estilo "faça você mesmo"). Fica aqui o link, se quiser dar uma olhada. Smile

o/

Mr.Rafael

Ranking : Nota A
Número de Mensagens : 383
Data de inscrição : 05/10/2010
Notas recebidas : A-C-B-A
Reputação : 57
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 2

Voltar ao Topo Ir em baixo

Re: [SCRIPTING I] Criando uma linguagem de script

Mensagem por LeandroDaher em Sab 14 Mar 2015, 17:54

fredcobain

Valeu amigo, infelizmente eu ainda não tive tempo de estudar e escrever o resto do tutorial pois estou em fase de treinamento em um novo emprego, mas assim que eu puder vou continuar a escrever.

Mr.Rafael

Valeu amigo, vou ler depois aqui, pelo que vi parece ser bem interessante, "faça você mesmo" é uma cultura bem maneira.

LeandroDaher

Número de Mensagens : 357
Idade : 20
Data de inscrição : 13/05/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [SCRIPTING I] Criando uma linguagem de script

Mensagem por Conteúdo patrocinado Hoje à(s) 23:09


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum