Compiladores
Um programa de Tiny possui uma estrutura bem simples: Seqüência de declarações separadas por ponto-e-virgula com uma sintaxe similar a de Ada ou Pascal. Variáveis inteiras e declaradas simplesmente por atribuição de valores. Faltam muitas características na linguagem Tiny para ser comprada a uma linguagem de programação real – procedimentos, matrizes e valores de ponto flutuante. Porém ela é suficiente para exemplificarmos a maioria das características de um compilador.
MARCAS
As Marcas de Tiny são classificadas em 3 categorias típicas: Palavras reservadas, símbolos especiais e “outras”. Há oito palavras reservadas com significados familiares. Há dez símbolos especiais, para as quatro operações de aritméticas básicas de inteiros, duas operações de comparação (igual a e menor que), parênteses, ponte e virgula e atribuição. Todos os símbolos especiais têm comprimento de um caractere, exceto a atribuição, que tem dois caracteres.
Exemplo de Linguagem Tiny
{ programa de exemplo da linguagem TINY - Computa fatorial
}
read x; { entrada de um inteiro } if 0 < x then { nao calcula se x < = 0 } fact := 1; repeat; fact := fact * x; x := x - 1; until x = 0; write fact { apresenta o fatorial de x } end PALAVRAS RESERVADAS
SIMBOLOS ESPECIAIS
OUTRAS
If
+
Número
(1 ou mais dígitos)
Then
-
Else
*
End
/
Repeat
=
Identificador
(1 ou mais letras)
Until
<
Read
(
Write
)
;
: =
As outras marcas são números, que são seqüências com um ou mais dígitos, e identificadores, que (para simplificar) são seqüências com umas ou mais letras. Comentários são cercados por chaves {...} e não podem ser aninhados; o formato do código é livre; espaços são compostos por espaços em branco, tabulações e mudanças de linha; e o princípio da sub-cadeia mais longa é usado no reconhecimento de marcas.
DFA - AUTÔMATO FINITO DETERMINÍSTICO
Autômatos