Compiladores/Pautas 2017-2018/Pauta do Projecto: Entrega "zero"

From Wiki**3

< Compiladores‎ | Pautas 2017-2018
AVISOS - Avaliação em Época Normal

Esclarecimento de dúvidas:

  • Consultar sempre o corpo docente atempadamente: presencialmente ou através do endereço oficial da disciplina [1].
  • Não utilizar fontes de informação não oficialmente associadas ao corpo docente (podem colocar em causa a aprovação à disciplina).
  • Não são aceites justificações para violações destes conselhos: quaisquer consequências nefastas são da responsabilidade do aluno.

Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Compiladores):

  • O material de apoio é de uso obrigatório e não pode ser alterado.
  • Verificar atempadamente (mínimo de 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de desenvolvimento.

Processo de avaliação (ver informação completa em Avaliação do Projecto):

  • Datas: 2018/03/23 17:00 (inicial); 2018/04/20 17:00 (intercalar); 2018/05/21 17:00 (final); 2018/05/21-2018/05/25 (teste prático).
  • A entrega inicial, sendo crucial para o projecto, é obrigatória e sua não realização implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina.
  • Verificar atempadamente (até 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de avaliação, incluindo a capacidade de acesso ao repositório CVS.
  • Apenas se consideram para avaliação os projectos existentes no repositório CVS oficial.
  • Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.
  • A avaliação do projecto pressupõe o compromisso de honra de que o trabalho correspondente foi realizado pelos alunos correspondentes ao grupo de avaliação.
  • Fraudes na execução do projecto terão como resultado a exclusão dos alunos implicados do processo de avaliação em curso.
Material de Uso Obrigatório
As bibliotecas CDK e RTS de apoio ao desenvolvimento do projecto são de uso obrigatório:
A máquina virtual, fornecida para desenvolvimento do projecto, já contém todo o material de apoio.
Uso Obrigatório: Repositório CVS
Apenas se consideram para avaliação os projectos existentes no repositório CVS oficial.

Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.

Prazo de Revisão

PAUTA FECHADA

Os resultados da entrega inicial podem ser revistos, nos horários de dúvidas, até à data da entrega intermédia.

Critérios de Avaliação

LER COM ATENÇÃO

A avaliação é realizada sobre a versão existente no CVS no final do prazo para a entrega inicial. Projectos que não apresentem alterações relativamente ao conteúdo inicial do repositório CVS não serão considerados.

Considerando que é um passo crucial na concepção do projecto, a não realização desta entrega conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto e consequente exclusão da avaliação da disciplina no ano lectivo actual.

A entrega "zero" vale 2 valores em 20.

A avaliação da entrega inicial considera a execução de intervenções em duas regiões do código do compilador em desenvolvimento, assim como a gestão do projecto correspondente.

Advertem-se os alunos sobre a consulta de colegas de anos anteriores. Estas consultas podem ser positivas, mas comportam algum risco, pois o processo e critérios de avaliação podem ter mudado. Além disso, a proficiência do colega pode majorar negativamente o resultado da avaliação em curso. Não são admitidas quaisquer justificações com base na história da disciplina.

Estas condições são aplicáveis à data da entrega inicial.

Em caso de dúvidas suscitadas por qualquer elemento neste texto, no projecto, ou na disciplina em geral, os alunos são fortemente encorajados a consultar o corpo docente.

VALORAÇÕES

Existem 2 valores (dos 20 disponíveis para o projecto) associados a esta entrega:

  • gestão do projecto: 0.5 valores
    • projecto com a estrutura correcta no repositório CVS: 0.25 valores (i.e., código que não apresente a estrutura canónica de um compilador desenvolvido com a CDK é considerado sem a estrutura correcta -- consultar estas páginas sobre o desenvolvimento do projecto com base no repositório CVS)
    • projecto compila e produz compilador "xpl" ("xpl", com letras minúsculas: variações correspondem a "não compilação"): 0.25 valores

Se o projecto compilar, poderão ser atribuídos mais 1.5 valores (desenvolvimento do compilador), distribuídos como se segue:

  • Classes dos nós do compilador (completo): 1.0 valores
    • Reutilização dos nós da CDK (simples ajuste do Simple)
    • Definição ou extensão de elementos existentes (simples ajuste do Simple)
    • Definição de novas declarações/definições (variáveis/funções) (completo)
    • Definição de novas instruções (completo)
    • Definição de novas expressões (completo)
    • Definição de outros elementos (completo)
    • Sugere-se (por simplicidade de gestão do código) a separação das várias classes de nós em namespaces coerentes (à la Simple)
    • Não é necessário criar as regras no BYACC para criar os nós (se for feito, é conveniente para o progresso do projecto, mas não é avaliado nesta entrega)
  • Métodos dos "visitors" (completo): 0.5 valores
    • Reutilização de métodos já definidos (simples ajuste do Simple)
    • Definição de todos os métodos do_X (correspondentes ao nó da class X) em todos os visitors (simples extensão do Simple)
    • Métodos novos podem estar vazios, mas devem existir
    • Métodos correspondentes a acções semelhantes às existentes devem ser modelados nos existentes (exemplo, do_program_node -> do_function_definition_node) (mesmo que não modificados numa primeira instância)
    • A presença de implementações de semântica no postfix_writer (tabela de símbolos, validação de tipos, etc.) não é penalizada, mas não será avaliada nesta entrega
PENALIZAÇÕES

Existem penalizações relativas à (deficiente) execução do projecto.

São considerados os seguintes aspectos preliminares:

  1. A linguagem do projecto contém a linguagem Simple, pelo que não há razão para não utilizar completamente o compilador Simple, eventualmente com pequenas alterações.
  2. A semântica da linguagem do projecto contém a da linguagem Simple, pelo que a implementação de alguns aspectos da linguagem do projecto não requer qualquer reimplementação relativamente ao Simple.
  • O compilador Simple foi fornecido completamente funcional, assim como a versão inicial do compilador do projecto no respositório CVS (igual ao Simple e apenas alterado, para ter um nome apropriado).
  • A criação de novos nós não apresenta quaisquer dificuldades (são classes muito simples).
  • Os métodos (na sua maioria, vazios) dos "visitors" são simples paralelos com as classes dos nós e os que não estão vazios são quase 100% reutilizáveis na nova linguagem.
  • O compilador é obrigatoriamente desenvolvido em C++, fazendo-se uso do material de apoio.

Considerando os aspectos 1. a 6., são aplicadas as seguintes penalizações:

  • Destruição de funcionalidade do compilador Simple sem substituição por funcionalidade equivalente do compilador do projecto: 2 valores
  • Utilização de funções e estruturas C, quando existem alternativas directas C++ (malloc em lugar de new, por exemplo; strcmp, etc. em lugar da classe std::string; e outras): penalização máxima de 1 valor
  • Não utilização de qualquer material obrigatório ou não satisfação dos critérios mínimos: 2 valores e considera-se entrega não realizada (implica exclusão da avaliação)

Legenda

Os alunos são encorajados a compreender/verificar/corrigir os problemas reportados, especialmente nos casos em que exista anotação explícita na pauta.

Anotações da tabela
  • dups: cópia de código que já está disponível na CDK (não devem existir estar cópias: devem ser usadas as classes da CDK)
  • program: o program_node não deve existir (devia ser function_definition_node ou semelhante)
  • pointer: este nós não deve existir
  • lvals: más utilizações de left-values (um left-value é a designação de um endereço de escrita)
  • index: problemas com o nó de indexação (e.g. não é um lvalue, faltam expressões)
  • decls: faltam nós correspondentes a declarações ou têm problemas (e.g. confundidas com expressões, problemas com tipos, etc.)
  • funcs: faltam nós correspondentes a funções ou têm problemas: e.g. faltam tipos, têm relações com lvalues (não devem existir)
  • vars: faltam nós correspondentes a declarações/definições de variáveis ou têm problemas: e.g. faltam tipos, têm relações com lvalues (não devem existir)
  • exprs: faltam expressões (tipicamente, faltam operadores, chamadas a funções)
  • file/public/use/qualifier: nós que não devem existir
  • read: é uma expressão e não uma instrução; ao contário do que acontece no Simple, não tem um left-value associado
  • call: este nó tem de ser uma expressão que tem como atributos o nome de uma função e uma sequência de argumentos
  • alloc: este nó tem de ser uma expressão
  • address: este nó é uma expressão aplicável a um left-value
  • types: não foi usada a estrutura basic_type da CDK para representar os tipos de dados da linguagem
  • [outras anotações específicas]: contactar o professor responsável

Pauta

<runphp> echo<<<___EOT___

<colgroup width="71"></colgroup> <colgroup span="2" width="43"></colgroup> <colgroup width="48"></colgroup> <colgroup width="108"></colgroup> <colgroup width="48"></colgroup> <colgroup width="108"></colgroup> <colgroup width="48"></colgroup> <colgroup span="3" width="125"></colgroup> <colgroup width="148"></colgroup> <tbody> </tbody>
  Nota Total CVS Compilação <a href="https://goo.gl/hPRZ4n">https://goo.gl/hPRZ4n</a> Nós, Métodos de Visita Obs.
Número 2.00 2.00 0.25 Problemas 0.25 Problemas 1.50 Problemas (a mais) (a menos)
001 1.00 1.00 1.00   0.00 (corrigido) 0.50 read, if, if_else, address, decls, funcs, vars, access program, assignment null, alloc, identity, call  
002 1.25 1.25 1.00   1.00   0.50 read, again, stop, block, sweep, alloc, identity, call,decls, funcs, vars, types, lvals symmetric    
003 1.25 1.25 1.00   1.00   0.50 again, stop, return, call, lvals, types, decls, funcs, vars      
004 1.25 1.25 1.00   1.00   0.50 sweep, index, call, decls, funcs, vars, lvals float block, null bad decls, nomenc: sweep
005 1.25 1.25 1.00   1.00   0.50 read, print, again, stop, return, sweep, decls, funcs, access program, while, print null, alloc, address, identity, decls, vars  
006 1.63 1.63 1.00   1.00   0.75 read, alloc, address, index while null, identity, call  
007 1.25 1.25 1.00   1.00   0.50 read, print, sweep, index, decls, funcs, vars, lvals, access program, while, print, assignment, initially again, stop, return, block, null, alloc, address, identity, call  
008    
009 1.63 1.63 1.00   1.00   0.75 stop, lvals, return, sweep, address, decls, funcs, vars, access   print, again nomenc: sweep
010 2.00 2.00 1.00   1.00   1.00 sweep      
011 1.25 1.25 1.00   1.00   0.50 read, again, stop, address, call, decls, funcs, vars, lvals, aceess program, while, print, assignment, symmetric, modulus null, index  
012 1.63 1.63 1.00   1.00   0.75 sweep, alloc   identity nomenc: sweep
013 1.63 1.63 1.00   1.00   0.75 read, again, stop, return, address, decls, funcs for sweep nomenc: again, stop
014 1.63 1.63 1.00   1.00   0.75 if, if_else, call, decls, funcs, vars, lvals      
015 2.00 2.00 1.00   1.00   1.00 read      
016 1.63 1.63 1.00   1.00   0.75 address, index, call, decls, funcs, vars, lvals symmetric    
017 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, block, sweep_cond, alloc, address, index, call while, assignment print, null  
018 1.25 1.25 1.00   1.00   0.50 read, sweep, expressions, nodes, index, call, decls, funcs, vars, lvals, types while print, null  
019 1.63 1.63 1.00   1.00   0.75 again, stop, sweep, address, decls, funcs elsif, assignment    
020 1.25 1.25 1.00   1.00   0.50 read, again, stop, sweep, address, decls, funcs   block, null, call, decls, vars  
021 1.63 1.63 1.00   1.00   0.75 (if), (if_else), index, call, decls, funcs, vars, lvals      
022 1.25 1.25 1.00   1.00   0.50 read, alloc, index, identity, call, decls, funcs, vars, lvals program, while, symmetric null  
023 0.25 0.25 1.00   0.00 não compila   read, print, again, stop, return, sweep program, while, print, elsif block, null, alloc, address, index, identity, call, decls, funcs, vars bad visitors, bad decls
024 1.63 1.63 1.00   1.00   0.75 null, index (return_nil)    
025 1.63 1.63 1.00   1.00   0.75 read, sweep, address, index      
026 1.63 1.63 1.00   1.00   0.75 sweep, call, decls, funcs, vars   print  
027 1.25 1.25 1.00 .git 1.00   0.50 read, again, stop, return, sweep, address, decls, funcs program, while, next, sweep_up, sweep_down print  
028 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, address, decls, funcs while, symmetric print  
029 1.63 1.63 1.00   1.00   0.75 read, null, sweep, index   print nomenc: again, stop, sweep
030 1.25 1.25 1.00   1.00   0.50 read, again, stop, sweep, address, call, decls, funcs, vars while, initially    
031 1.25 1.25 1.00   1.00   0.50 read, if_else, null, sweep, alloc,address, index, call, decls, funcs, vars, types, lvals program, assignment, fake, do, initially again, stop, block, identity nil extension
032 1.25 1.25 1.00   1.00   0.50 read, return, sweep, address, index, declsm funcs symmetric null, identity nomenc: signal
033 1.63 1.63 1.00   1.00   0.75 decls, vars, lvals      
034 1.25 1.25 1.00   1.00   0.50 again, stop, return, sweep, identity, address, index, decls, funcs program null  
035 1.63 1.63 1.00   1.00   0.75 read, print, sweep, call, decls, funcs, vars, types   null  
036 1.00 1.00 1.00   0.00 (corrigido) 0.50 read, print, again, stop, sweep, expressions, alloc, address, call, decls, funcs, vars, types parentheses, initially   bad decls
037 2.00 2.00 1.00   1.00   1.00        
038    
039 1.25 1.25 1.00   1.00   0.50 again, stop, return, null, sweep, expressions, index, call, lvals, decls, funcs, vars, access while, do, initially print, decls, funcs bad decls, nomenc: call
040 2.00 2.00 1.00   1.00   1.00        
041 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, sweep, expressions, address, index, decls, funcs, vars program, while print, null, decls, funcs nomenc: body
042 1.00 1.00 1.00   0.00 (corrigido) 0.50 read, again, stop, return, alloc, address, decls, funcs, vars, lvals symmetric, for null, sweep nomenc: again, stop
043    
044 1.63 1.63 1.00   1.00   0.75 read   null, alloc, address, index, identity  
045 1.25 1.25 1.00   1.00   0.50 read, address, call, decls, funcs, vars, lvals program, while null, identity  
046 1.25 1.25 1.00   1.00   0.50 read, if, if_else, again, null, address, identity, decls, calls, lvals assignment, initially   bad decls
047 1.63 1.63 1.00   1.00   0.75 decls, types      
048 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, sweep, calls, decls, funcs, vars, types, lvals initially null bad call
049 1.25 1.25 1.00   1.00   0.50 read, again, stop, null, address, index, call, decls, funcs, vars, types program, while print, block, identity basic extension
050 1.63 1.63 1.00   1.00   0.75 read, return, address, decls, funcs      
051 1.25 1.25 1.00   1.00   0.50 read, print, address, index, call, decls, funcs, types, lvals program null  
052 1.63 1.63 1.00   1.00   0.75 read, again, stop, return, address program, while identity  
053 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, address, index, decls, funcs program, while null  
054 2.00 2.00 1.00   1.00   1.00        
055 1.63 1.63 1.00   1.00   0.75 again, stop, return, sweep, address   null  
056 1.63 1.63 1.00   1.00   0.75 read, again, stop, return, sweep, address, decls, funcs      
057 2.00 2.00 1.00   1.00   1.00        
058 1.63 1.63 1.00   1.00   0.75 read, address program identity  
059 1.25 1.25 1.00   1.00   0.50 read, nilptr, index, identity, call, decls, funcs, vars, types     nomenc: null
060 1.25 1.25 1.00   1.00   0.50 read, null, sweep, address, decls, funcs, vars, types assignment   basic extension, bad decls
061 1.25 1.25 1.00   1.00   0.50 address, index, call, decls, funcs, vars, types program    
062 1.25 1.25 1.00   1.00   0.50 read, address, index, call, decls, funcs, vars, types, lvals program, while, print, symmetric null  
063 1.25 1.25 1.00   1.00   0.50 read, address, decls, funcs, vars, types symmetric print, null bad decls
064 1.25 1.25 1.00   1.00   0.50 read, alloc, decls, funcs, vars, types, lvals assignment null, address, identity bad decls
065 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, null, alloc, call, decls, funcs, vars program, while, print, elsif, file, (call without args) address, identity basic extension
066 1.25 1.25 1.00   1.00   0.50 read, pointer, sweep, alloc, address, index, call, decls, funcs, vars, types, lvals program, while, print, assignment, pointer null, identity bad decls
067 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, sweep, expressions, address, call program, while, print block, null, index, identity, decls, funcs, vars  
068 2.00 2.00 1.00   1.00   1.00 return      
069 1.63 1.63 1.00   1.00   0.75 read, again, stop, return, address      
070 1.63 1.63 1.00   1.00   0.75 again, stop, sweep, address, index, decls, vars, access   print nomenc: again, stop, sweep
071 2.00 2.00 1.00   1.00   1.00        
072 1.00 1.00 1.00   0.00 (corrigido) 0.50 return, again, stop, sweep, address, index, call, decls, funcs, vars, lvals program block, null, decls, vars bad decls, nomenc: again, stop, sweep
073 1.25 1.25 1.00   1.00   0.50 read, (if), (if_else), call, decls, funcs, vars, lvals   address  
074 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, sweep while, assignment print, decls, vars  
075 1.25 1.25 1.00   1.00   0.50 read, return, sweep, address, call, decls, funcs   print, null, identity  
076 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, sweep, decls, funcs program, while, symmetric print, null incrkind
077 1.63 1.63 1.00   1.00   0.75 sweep, address, call, decls, funcs, vars, lvals     nomenc: again, stop, sweep
078 2.00 2.00 1.00   1.00   1.00 address      
079 1.25 1.25 1.00   1.00   0.50 again, stop, return, sweep, address, call, lvals, decls, funcs, vars     bad decls
080 1.63 1.63 1.00   1.00   0.75 read, null, sweep, address, decls, funcs      
081 1.25 1.25 1.00   1.00   0.50 if, if_else, again, stop, return, null, address, index, decls, funcs, vars, types for print, sweep basic extension
082 1.25 1.25 1.00   1.00   0.50 read, print, sweep, alloc, address, index, call, decls, funcs, vars, lvals, types program null  
083 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, call, decls assignment, instruction alloc, address, index, identity  
084 1.63 1.63 1.00   1.00   0.75 if, if_else, sweep, index     nomenc: again, stop, sweep
085    
086 1.38 1.38 1.00   0.00 (corrigido) 0.75 read, again, stop, return, sweep program, while, symmetric print, null incrkind
087 1.63 1.63 1.00   1.00   0.75 read, call, decls, funcs   null bad call
088 1.63 1.63 1.00   1.00   0.75 read, again, stop, index, decls, funcs, vars, types      
089 0.19 0.19 0.75 post_node 0.00 não compila   (incomp), alloc, address, identity   print, again, stop, return, block, null, index, call, decls, funcs, vars  
090 1.25 1.25 1.00   1.00   0.50 block, identity, address, call, lvals, decls, funcs, vars, lvals function_definition_node null bad decls
091 1.63 1.63 1.00   1.00   0.75 again, stop      
092 1.25 1.25 1.00   1.00   0.50 stop, return, null, address print, function_definition_node   bad decls, basic extension
093 0.25 0.25 1.00   0.00 não compila   (incomp), again, stop, lvals, return   print, block, null, sweep, alloc, address, index, identity, call, decls, funcs, vars  
094 1.25 1.25 1.00   1.00   0.50 read, again, stop, alloc, address, call, decls, funcs, vars, type program, elsif, symmetric null  
095 1.25 1.25 1.00   1.00   0.50 read, sweep, alloc, address, call, decls, funcs, vars, types, lvals assignment identity  
096 1.25 1.25 1.00   1.00   0.50 read, return, null, sweep, decls, funcs, vars, lvals     bad decls
097 1.25 1.25 1.00   1.00   0.50 read, program, while, again, stop, return, sweep, nodes, alloc, index, identity, call, decls, funcs, vars, lvals program, while print, null, address bad call, bad decls
098 1.25 1.25 1.00   1.00   0.50 read, decls, funcs, vars, lvals while null, alloc, address, index, identity, call, decls, funcs bad decls
099 1.25 1.25 1.00   1.00   0.50 read, address, index, call, decls, funcs symmetric, initially null, decls, vars  
100 NA sem entrega inicial
101 2.00 2.00 1.00   1.00   1.00 address      
102 1.25 1.25 1.00   1.00   0.50 read, return, sweep, lvals, address, index, decls, funcs program, while, assignment, symmetric null  
103 2.00 2.00 1.00   1.00   1.00 null while   basic extension
104 1.25 1.25 1.00   1.00   0.50 read, sweep, alloc, address, index, call, decls, funcs, vars, types, lvals program, while print, null, identity bad call, bad decls
105 1.25 1.25 1.00   1.00   0.50 read, return, alloc, address, index, nodes, call program, while, symmetric, do null nomenc: call
106 2.00 2.00 1.00   1.00   1.00 if, if_else     nomenc: call
107 1.25 1.25 1.00   1.00   0.50 read, return, sweep, address, call, decls, funcs while print, null, identity, decls, vars bad decls
108 1.63 1.63 1.00   1.00   0.75 read, return, address   print  
109 1.25 1.25 1.00   1.00   0.50 read, again, stop, sweep, alloc, address, index, identity, decls, funcs, vars, types, lvals elsif, declaration null, call  
110 1.25 1.25 1.00   1.00   0.50 read, sweep, alloc, address, index, identity, call, decls, funcs, vars, lvals while null bad visitors
111 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, address, decls, vars program, while, print, for null, sweep, decls, funcs bad decls, nomenc: again, stop, body
112 NA sem entrega inicial
113 0.25 0.25 1.00   0.00 não compila   read, again, stop, return, index, call, decls, funcs program, assignment identity  
114 1.63 1.63 1.00   1.00   0.75 read, again, stop, null, sweep     basic extension
115 0.25 0.25 1.00   0.00 não compila   read, (print), again, stop, sweep, decls, funcs, types program, while, covfefe block, null, alloc, address, index, identity, call, decls, vars  
116 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, sweep, address, decls, funcs   decls, vars  
117 1.25 1.25 1.00   1.00   0.50 again, stop, lvals, print, index, decls, funcs, vars, types   evaluation, read, print, null, alloc, address, identity, call  
118 1.25 1.25 1.00   1.00   0.50 read, print, again, stop, return, address, index, call, decls, funcs, vars program, while, print, symmetric null, alloc  
119 0.25 0.25 1.00   0.00 não compila   (incomp), print   again, stop, return, block, null, sweep, alloc, address, index, identity, call, decls, funcs, vars  
120 NA sem entrega inicial
121 2.00 2.00 1.00   1.00   1.00        
122 1.25 1.25 1.00   1.00   0.50 read, block, null, alloc, address, index, call, decls, funcs, vars program, while, print, qualifier, external, do, float, public, decls, funcs, vars, call (decls) basic extension
123 1.25 1.25 1.00   1.00   0.50 read, again, stop, alloc, index, decls, funcs, vars, lvals function_node null, call  
124 NA sem entrega inicial
125 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, address program, while, assignment print  
126 1.25 1.25 1.00   1.00   0.50 read, return, sweep, address, call, decls, funcs program, while null, index  
127 1.63 1.63 1.00   1.00   0.75 swep, index, identity, decls, funcs, vars, types   null nomenc: sweep
128 1.63 1.63 1.00   1.00   0.75 read, return, sweep, address, decls, funcs      
129 1.25 1.25 1.00   1.00   0.50 read, print, return, decls, funcs, vars, types program, assignment null, alloc, address, index, identity, call  
130 1.25 1.25 1.00   1.00   0.50 read, again, stop, decls, funcs, vars, types program, assignment alloc, address, index, identity, call bad decls, nomenc: repetition, sweep
131 1.63 1.63 1.00   1.00   0.75 read, again, stop, return, null, sweep symmetric, initially identity nomenc: signal
132 1.25 1.25 1.00   1.00   0.50 read, again, stop, index, call, decls, funcs, vars, types, lvals program, symmetric   bad decls
133 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, address, call, decls, funcs, vars, types, lvals while print, block, null, identity  
134 1.25 1.25 1.00   1.00   0.50 again, stop, return, sweep, decls, funcs program, while address  
135 1.00 1.00 1.00   0.00 (corrigido) 0.50 read, index, decls program, while, qualifier print, block, null, alloc, address, identity, call, decls  
136 2.00 2.00 1.00   1.00   1.00 again, stop      
137 1.63 1.63 1.00   1.00   0.75 decls, funcs      
138 1.25 1.25 1.00   1.00   0.50 read, print, again, stop, address, index, call, decls, funcs, vars, types, lvals while block, null bad call, bad decls
139 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, null, call, decls, funcs, lvals program, while, assignment, symmetric, (address) decls, vars  
140 1.25 1.25 1.00   1.00   0.50 read, again, stop, address, call, decls, funcs, vars, types, lvals program, while, print, elsif, assignment, symmetric, subtraction null, index  
141 NA sem entrega inicial
142 0.25 0.25 1.00   0.00 não compila   read, again, stop, return, sweep, address, call, lvals, decls, funcs, vars program, elsif, assignment null, identity  
143 1.25 1.25 1.00   1.00   0.50 return, address, index, call, decls, funcs, vars, lvals, types, types while, parentheses, function_identifier block, null, identity  
144 1.25 1.25 1.00   1.00   0.50 read, decls, funcs program, while print, null, alloc, address, decls, vars  
145 1.63 1.63 1.00   1.00   0.75 read, address for print, sweep nomenc: again, stop
146 1.25 1.25 1.00   1.00   0.50 read, return, block, pointer, sweep, alloc, call, decls, vars, lvals program, while, float, pointer null, address, index, identity  
147 0.25 0.25 1.00   0.00 não compila   read, again, stop, sweep, expressions, alloc, etc. program, while, print, elsif, assignment, initially, public, use block, null, address, index, identity, call, decls, funcs, vars nomenc: files
148 2.00 2.00 1.00   1.00   1.00        
149 1.25 1.25 1.00   1.00   0.50 index, call, lvals, types, decls, funcs, vars for block, null, sweep, identity bad call
150 1.25 1.25 1.00   1.00   0.50 read, sweep, address, call, lvals, decls, funcs, vars parentheses print, null, alloc, index, identity nomenc: again, stop, sweep
151 1.25 1.25 1.00   1.00   0.50 read, print, sweep, address, index, decls, funcs, vars pointer, read print, null, identity, call  
152 0.25 0.25 1.00   0.00 não compila   read, return, alloc, decls, funcs, types program, while, print, assignment, for null, sweep, identity  
153 1.63 1.63 1.00   1.00   0.75 read, (print), index, (qualifier), call, lvals, decls, funcs parentheses null  
154 1.63 1.63 1.00 .directory 1.00   0.75 while, null, address, call     basic extension
155 1.38 1.38 1.00   0.00 (corrigido) 0.75 read, again, stop, sweep, address, call, lvals, decls, vars symmetric null  
156 NA sem entrega inicial
157 1.25 1.25 1.00   1.00   0.50 read, again, stop, return, sweep, decls, funcs while, elsif, assignment block, null, alloc, address, index, identity, call, decls, vars  
158 NA sem entrega inicial
159 NA sem entrega inicial
160 NA sem entrega inicial
161 1.63 1.63 1.00   1.00   0.75 read, print, return, address   null, identity  
162 NA sem entrega inicial

___EOT___; </runphp>