minimizá-lo; e) Porque estados finais não podem ser equivalentes a estados não-finais; f) Como especificar (mecanismos?) e implementar (estratégias?) aspectos léxicos de linguagens de Programação; g) Razões que motivam o estudo de Linguagens de Programação; h) Principais critérios e características usados no projeto e na avaliação de Linguagens de Programação. added: i) Qual a L mais importante quando se trata do processo de compilação de linguagens de programação, e por que ela é considerada como tal? O aspecto central do processo de compilação é a análise sintática, tudo demais que ocorre no processo de compilação depende da análise sintática. • As GR apesar de serem mais eficientes elas não tem o poder de expressão para representar sintáticamente uma linguagem. • As GSC embora mais abrangentes que as GLC são muito caras. • As GLC não são tão restritas como as GR e também não tão caras quanto as GSC. Logo a gramática utilizada para a análise sintática é a gramática livre de contexto e como a análise sintática é o core, digamos assim, da compilação, podemos considerar a GLC como a G mais importante na compição de linguagens de programação. Audio 17 após 12 min 10) Aplique os algoritmos FIRST e FOLLOW para as seguintes Gs e qual a linguagem gerada. a) S-> Ab | ABc B-> bB | Ad | E A-> aA | E FIRST first(S)-> {a,b,c,d} first(B)-> {a,b,d,E} first(A)-> {a,E} FOLLOW follow(S)-> {$} follow(A)-> {b,a,d,c} follow(B)-> {c} b) S-> ABC A-> aA | E B-> bB | ACd C-> cC | E FIRST first(S)-> {a,b,c,d} first(A)-> {a,E} FOLLOW follow(S)-> {$} follow(A)-> {a,b,c,d}