Leia com atenção as instruções abaixo.
                
                Formato da Entrega:
                
                    - 
                        Arquivo no formato PDF.
                    
 
                    - 
                        Deve ser enviado através do Slack, no chat privado com o professor. Qualquer outro envio será desconsiderado.
                    
 
                    - 
                        O arquivo deve ser orientação formato retrato, não paisagem.
                    
 
                    - 
                        Você pode resolver no caderno e digitalizar usando o Google Drive ou colocar em um documento do Word ou LibreOffice, gerando o PDF. O tamanho do arquivo deve ficar abaixo de 10 MB.
                    
 
                    - 
                        No início do arquivo, deixe bem claro o título com: nome da atividade, seu nome e sua matrícula.
                    
 
                
                Valor: 2,5 pontos na 4ª Nota.
 
                Data da Entrega:20/10/2020
 
                Questão 01 - 2,5 Pontos - exercício 6.21, página 345 
                
                    Atenção: esta atividade ainda é do tema das aulas anteriores. Deixei para a 4ª nota para ficar mais equilibrado.
                
                
                    Considere a seguinte extensão da gramática da Figura 6.22 (página 332), para incluir declarações de funções e ativações:
                
                
                     programa  -> var-decls ; fun-decls ; decls
                        var-decls -> var-decls ; var-decl | var-decl
                        var-decl  -> id : tipo-exp
                        tipo-exp  -> int | bool | array [num] of tipo-exp
                        fun-decls -> fun id( var-decls ) : tipo-exp ; corpo
                        corpo     -> exp
                        decls     -> decls ; decl | decl
                        decl      -> if exp then decl | id := exp
                        exp       -> exp + exp | exp or exp | exp [ exp ] | id (exps)
                                    | num | true | false | id
                        exps      -> exps, exp | exp
                    
                 
                
                    
                        - 
                            Construa uma estrutura de subárvore adequada para as novas estruturas de tipos de funções e escreva uma função tipoIgual para dois tipos de funções.
                        
 
                        - 
                            Escreva regras semânticas para a verificação de tipos das declarações e ativações de funções (representadas pela regra exp -> id (exps)), similar às regras 
                            da Tabela 6.10, página 333.