Compiladores e interpretadores

289 visualizações

Publicada em

Como construí a tiny-lang, o que você precisa saber para construir uma linguagem de programação

github.com/vgsantoniazzi/tiny-lang

Publicada em: Engenharia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
289
No SlideShare
0
A partir de incorporações
0
Número de incorporações
37
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Compiladores e interpretadores

  1. 1. Linguagem de programação Victor Antoniazzi @vgsantoniazzi compiladores e interpretadores
  2. 2. Compiladores vs Interpretadores
  3. 3. Por que C gera um arquivo e Ruby não?
  4. 4. Compilador - Verifica a declaração - Gera assembly - Proxima declaração - Executa o assembly!
  5. 5. Erro de compilacão - Não executa as declarações
  6. 6. Interpretador - Verifica a declaração - Executa declaração - Proxima declaração
  7. 7. Erro de interpretação - Executa as declarações
  8. 8. Como é analisado o arquivo?
  9. 9. Análise sintática Análise léxica Análise semântica
  10. 10. Código!
  11. 11. x = 10; print x;
  12. 12. token "x", tipo identificador, coluna 1, linha 1; token "=", tipo assinatura, coluna 3, linha 1; token "10", tipo inteiro, coluna 5, linha 1; token ";", tipo fim, coluna 6, linha 1; token "print", tipo imprimir, coluna 5, linha 2; token "x", tipo identificador, coluna 7, linha 2; token ";", tipo fim, coluna 8, linha 2;
  13. 13. if(CurrentToken() == VARIABLE) { string variableName = CurrentToken(); nextToken.Match(ASSIGNMENT); int value = MathExpression(CurrentTokenPosition); variables[variableName] = value; NextToken.match(SEMICOLON); }
  14. 14. if(CurrentToken() == OUTPUT) { print variables[CurrentToken()] NextToken.match(SEMICOLON); }
  15. 15. Quando intepretar e quando compilar?
  16. 16. Por que criar uma linguagem de programação?
  17. 17. Live coding!
  18. 18. Dúvidas?

×