Conhecer as metodologias utilizadas por um compilador para  a análise e síntese de um programa de computador pode ser  muito útil para entender como um software funciona por  dentro. Assim, atividades como a engenharia reversa podem  ser mais facilmente entendidas e realizadas. A esse respeito,  no que se refere aos programas de computadores e às fases  de um compilador, assinale a alternativa correta.
						
						-                              A.                                                  As fases de análise sintática e semântica tratam da  grande maioria dos erros detectáveis pelo compilador.
 -                              B.                                                  A fase de análise constrói o programa alvo desejado,  com base nas respectivas representações  intermediárias. É a fase que requer as técnicas mais  especializadas.
 -                              C.                                                  Durante a análise sintática do programa fonte, o  compilador procura encontrar as construções que  possuam a estrutura sintática correta, sem se preocupar  com o significado da operação envolvida.
 -                              D.                                                  A análise semântica, também  chamada de análise gramatical, envolve o agrupamento dos tokens do programa fonte, no qual cada token representa uma sequência de caracteres logicamente coesa, em frases gramaticais que são usadas pelo computador, a fim de sintetizar a saída.
 -                              E.                                                  A fase final do compilador é a geração de código  intermediário, na qual as alocações de memória são  realizadas para cada uma das variáveis utilizadas  pelo programa.