Skip to content
This repository was archived by the owner on May 5, 2018. It is now read-only.
/ study_compiler Public archive

Compilador feito através do uso do LEX e do YACC para estudo e compreensão de compilação de uma linguagem criada.

Notifications You must be signed in to change notification settings

jeansfelix/study_compiler

Repository files navigation

Compilador

Compilador feito através do uso do LEX e do YACC para estudo e compreensão de compilação de uma linguagem criada para a linguagem C-Assembly uma linguagem que nos lembra o assembly com algumas facilitações.

Requisitos Funcionais:

  1. Tipos: int, char, boolean, float, double, string

  2. Estruturas de controle: if/else, for, while, do-while, switch.

  3. Array bi-dimensional

  4. Blocos

  5. Variáveis locais e globais, com escopo.

  6. Expressões com precedência e associatividade de operadores

  7. Funções com parametros por valor e referência

  8. Concatenação de strings com operador "+"

  9. Entrada e saida padrao (printf e scanf)

  10. Verificação de tipos

  11. Verificação do número e tipo dos parâmetros de funções

  12. Operadores básicos: ( ) + - / * % && || ! > < >=

Pipes:

  1. intervalo: [ 0 .. 10 ]

  2. filter[ x % 2 == 0 ]

  3. forEach[ print( x ) ]

  4. firstN[ 10 ]

  5. lastN[ 10 ]

  6. sort[ x ]

  7. split x > 6

  8. merge( a, b )[ x == y ]

C-Assembly

C-Assembly é C padronizado desta forma:

  1. Comando if/goto, sem blocos,

  2. Funções,

  3. Parâmetros,

  4. Arrays unidimensionais,

  5. Tipos: int, long, char, float e double,

  6. Expressões com uma atribuição e um dos operadores a seguir:

      • / % < > = == != || && ! | & ^ ~
  1. Uso de array: apenas um array por atribuição sem outro operador, a = m[x];

  2. Chamadas de função: sem expressões como parâmetros, apenas variáveis ou valores,

  3. Variáveis local e global.

About

Compilador feito através do uso do LEX e do YACC para estudo e compreensão de compilação de uma linguagem criada.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •