11.07.2015 Views

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Associatividade de OperadoresConvencionalmente, 9+5+2 é equivalente à (9+5)+2, pois, ao analisarmos o operando 5precisamos decidir qual operação será realizada primeiro. Pela convenção da matemática aadição é associativa à esquerda, sendo assim o resultado (9+5)+2 é obtido. Na maioria daslinguagens de programação, as quatro operações básicas (adição, subtração, multiplicaçãoe divisão) são associativas à esquerda.A exponenciação é um exemplo de operador associativo à direita (em Fortran) 5**2**3é equivalente a 5**(2**3). Outro exemplo é o operador de atribuição, onde a expressãoa=b=c (em linguagem C) é tratada como a=(b=c).Precedência de OperadoresConsidere a expressão 9+5∗2. Existem duas interpretações possíveis: (9+5)∗2 e 9+(5∗2).Quando mais de um tipo de operadores estiverem presentes em uma expressão é necessáriose definir a ordem de precedência entre eles.Na aritmética, os operadores ∗ e / tem precedência mais alta do que + e -; assim, naexpressão anterior o operador de multiplicação é capturado antes da adição.2.2.1 Exercícios Propostos1. Prova, através da construção da árvore de derivação, que os exemplos anteriores sãoválidos para a gramática de expressões aritméticas vista.2. Considere a gramática livre de contexto: S → SS+ | SS∗ | a(a) Mostre que a cadeia aa+a∗ pode ser gerada por esta gramática.(b) Construa a árvore gramatical para esta cadeia.(c) Qual é a linguagem gerada por esta gramática? Justifique sua resposta.3. Quais são as linguagens geradas pelas seguintes gramáticas?(a) S → 0S1 | 01(b) S → +SS | -SS | a(c) S → S(S)S | ε(d) S → aSbS | bSaS | ε(e) S → a | S+S | SS | S* | (S)4. Construa uma gramática livre de contexto para os números romanos (1 a 10).5. Construa uma G.L.C. para as expressões aritméticas de inteiros e identificadorescom as quatro operações básicas (+, -, ∗, /).9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!