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

From Wiki**3

< Compiladores‎ | Pautas 2016-2017
Revision as of 17:14, 26 March 2017 by Root (talk | contribs) (→‎Pauta)
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: 2017/03/24 17:00 (inicial); 2017/04/21 17:00 (intercalar); 2017/05/22 17:00 (final); 2017/05/22-2017/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

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 node: o program_node não existe (devia ser function_definition_node ou semelhante)
  • pointer node: estes nós não existem
  • lvals: faltam nós correspondentes a alguns left-values ou têm problemas (um left-value é uma entidade que pode estar do lado esquerdo de uma atribuição)
  • index: problemas com o nó de indexação (e.g. não é um lvalue, faltam expressões)
  • 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)
  • decls: faltam nós correspondentes a declarações ou têm problemas (e.g. confundidas com expressões, problemas com tipos, etc.)
  • exprs: faltam expressões (tipicamente, faltam operadores, chamadas a funções)
  • file/public/use/qualifier: nós que não devem existir
  • read_node: é uma expressão e não uma instrução; ao contário do que acontece no Simple, não tem um left-value associado
  • 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

PAUTA EM ACTUALIZAÇÃO

<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 width="252"></colgroup> <colgroup span="2" width="48"></colgroup> <colgroup width="111"></colgroup> <colgroup width="174"></colgroup> <tbody> </tbody>
  Nota Total CVS Compilação <a href="https://goo.gl/c8ukbL">https://goo.gl/c8ukbL</a> Nós, Métodos de Visita Simple Bad code Obs.
Número 2.00 2.00 0.25 Problemas 0.25 Problemas 1.50 Problemas 4.00 1.00 Problemas
36897 NA sem entrega inicial
44126 NA sem entrega inicial
50724 NA sem entrega inicial
52327 NA sem entrega inicial
55428 0.25 0.25 1.00   0.00 (não compila)   program_node, file_node, dups, relops, arithops, etc., missing nodes, next_node, stop_node, return_node, read_node, address_of_node, identity_node, null_node        
58727 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
62892 0.50 0.50 1.00   1.00     read_node, null_node        
63572 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
63916 NA sem entrega inicial
64722 0.50 0.50 1.00   1.00     program_node, read_node, address_of_node, identity_node, null_node        
64738 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
67045 NA sem entrega inicial
67056 0.50 0.50 1.00   1.00     program_node, next_node, stop_node, dups, arithops, read_node, null_node        
67075 0.25 0.25 1.00   0.00 (não compila)   program_node, missing nodes, next_node, return_node, read_node, address_of_node, null_node        
68168 0.25 0.25 1.00   0.00 (não compila)   program_node, dups, int_node, use_node, public_node, read_node, address_of_node, identity_node, null_node        
68199 0.50 0.50 1.00   1.00     if_node, if_else_node, elsif, read_node, identity_node, null_node       não deve existir nó para elsif
69405 0.50 0.50 1.00   1.00     return_node, read_node, address_of_node        
69720 0.50 0.50 1.00   1.00     next_node, read_node, identity_node, null_node        
69814 0.50 0.50 1.00   1.00     program_node, read_node, address_of_node, identity_node, null_node        
70012 0.50 0.50 1.00   1.00     address_of_node        
70087 0.25 0.25 1.00   0.00 (não compila)   program_node, read_node, address_of_node, identity_node, null_node        
70315 0.50 0.50 1.00   1.00     next_node, stop_node, read_node, address_of_node, null_node        
70652 0.50 0.50 1.00   1.00     program_node, dups, type_node, int_node, str_node, use_node, public_node, qualifier_node, read_node, address_of_node, identity_node, null_node        
70939 NA sem entrega inicial
71003 0.44 0.44 0.75 test_touch 1.00     read_node, address_of_node, identity_node, null_node        
72619 0.50 0.50 1.00   1.00     read_node, identity_node, null_node        
72843 0.50 0.50 1.00   1.00     program_node, next_node, stop_node, return_node, read_node, address_of_node, identity_node, null_node        
72984 NA sem entrega inicial
73046 NA sem entrega inicial
73155 0.25 0.25 1.00   0.00 (não compila)   program_node, next_node (nomenc), stop_node (nomenc), return_node (nomenc), read_node, address_of_node, identity_node, null_node        
73311 NA sem entrega inicial
73422 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
73438 0.25 0.25 1.00   0.00 (não compila)   program_node, next_node, stop_node, read_node, address_of_node, identity_node, null_node        
73507 0.50 0.50 1.00   1.00     program_node, dups, arithops, missing nodes, return_node, read_node, address_of_node, null_node        
73522 0.25 0.25 1.00   0.00 (não compila)   if_node, if_else_node, elsif, read_node, address_of_node, identity_node, null_node       não deve existir nó para elsif
73611 0.50 0.50 1.00   1.00     if_node, if_else_node, while_node, next_node, dups, arithops, address_of_node        
73727 0.50 0.50 1.00   1.00     read_node, address_of_node        
73751 0.25 0.25 1.00   0.00 (não compila)   program_node, read_node, address_of_node, identity_node, null_node        
73861 0.50 0.50 1.00   1.00     program_node, return_node, read_node, address_of_node, identity_node, null_node        
73974 NA sem entrega inicial
75255 0.50 0.50 1.00   1.00     return_node, read_node, address_of_node, identity_node        
75334 0.50 0.50 1.00   1.00     next_node, stop_node, return_node        
75455 NA sem entrega inicial
75736 0.50 0.50 1.00   1.00     next_node, stop_node, return_node        
75788 0.50 0.50 1.00   1.00     read_node, address_of_node        
75805 0.50 0.50 1.00   1.00     address_of_node, null_node        
75874 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
75948 0.50 0.50 1.00   1.00     program_node, next_node, read_node, address_of_node, null_node        
76062 0.50 0.50 1.00   1.00     qualifier, node names, next_node, stop_node, dups, arithops, sign_node, read_node, address_of_node, identity_node, null_node        
76120 0.25 0.25 1.00   0.00 (não compila)   program_node, address_of_node, identity_node, null_node        
76175 0.50 0.50 1.00   1.00     read_node, address_of_node        
76196 0.50 0.50 1.00   1.00     read_node, address_of_node, null_node       void*
76218 0.50 0.50 1.00   1.00     program_node, missing nodes, next_node, stop_node, read_node, address_of_node, null_node        
76219 0.50 0.50 1.00   1.00     next_node, address_of_node, null_node        
76273 0.50 0.50 1.00   1.00     program_node, read_node, address_of_node, identity_node, null_node        
76404 0.50 0.50 1.00   1.00     program_node, use_node, public_node, read_node, address_of_node, identity_node, null_node        
76497 0.50 0.50 1.00   1.00     read_node, address_of_node, null_node        
76588 NA sem entrega inicial
77062 0.50 0.50 1.00   1.00              
78076 0.50 0.50 1.00   1.00     address_of_node        
78117 0.50 0.50 1.00   1.00     program_node, dups, arithops, address_of_node, null_node        
78149 0.50 0.50 1.00   1.00     address_of_node, null_node, lvals        
78198 0.25 0.25 1.00   0.00 (não compila)   dups, next_node, lvals, read_node, address_of_node, identity_node, null_node        
78230 NA sem entrega inicial
78271 0.50 0.50 1.00   1.00     program_node, file_node, use_node, public_node, read_node, address_of_node, identity_node, null_node        
78280 0.50 0.50 1.00   1.00     program_node, read_node, address_of_node, identity_node, null_node        
78302 0.50 0.50 1.00   1.00     program_node, next_node, read_node, identity_node, null_node        
78304 0.50 0.50 1.00   1.00              
78307 0.50 0.50 1.00   1.00     address_of_node        
78317 0.50 0.50 1.00   1.00     return_node, read_node, identity_node, null_node        
78445 0.50 0.50 1.00   1.00              
78457 0.50 0.50 1.00   1.00     program_node, int_node, next_node, stop_node, return_node, dups, arithops, read_node, address_of_node, identity_node, null_node        
78503 0.50 0.50 1.00   1.00     null_node        
78614 0.25 0.25 1.00   0.00 (não compila)   next_node, address_of_node, null_node       return_node, read_node
78674 NA sem entrega inicial
78682 0.50 0.50 1.00   1.00     read_node, address_of_node, null_node        
78688 0.50 0.50 1.00   1.00     program_node, dups, arithops, int_node, next_node, stop_node, return_node, read_node, address_of_node, identity_node, null_node        
78690 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node       int*
78742 0.50 0.50 1.00   1.00     read_node, address_of_node, null_node        
78785 0.50 0.50 1.00   1.00     address_of_node        
78791 NA sem entrega inicial
78876 0.50 0.50 1.00   1.00     dups, read_node, null_node        
78960 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
78973 0.50 0.50 1.00   1.00     address_of_node        
78974 0.50 0.50 1.00   1.00     identity_node        
78982 0.50 0.50 1.00   1.00     address_of_node        
79075 0.50 0.50 1.00   1.00     address_of_node, null_node       int*
79114 NA sem entrega inicial
79120 0.50 0.50 1.00   1.00     program_node, dups, arithops, read_node, address_of_node, null_node        
79175 0.50 0.50 1.00   1.00     null_node        
79197 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
79210 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
79457 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
79601 0.50 0.50 1.00   1.00     address_of_node        
79633 0.50 0.50 1.00   1.00     address_of_node, null_node        
79674 0.25 0.25 1.00   0.00 (não compila)   program_node, dups, read_node, null_node        
79679 0.50 0.50 1.00   1.00     dups, arithops, null_node        
79690 NA sem entrega inicial
79702 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
79714 0.50 0.50 1.00   1.00     program_node, read_node, address_of_node, identity_node        
79758 0.50 0.50 1.00   1.00     program_node, dups, arithops, read_node, address_of_node        
79770 0.50 0.50 1.00   1.00     read_node, identity_node, null_node        
80763 0.50 0.50 1.00   1.00     identity_node       read_node
80770 0.50 0.50 1.00   1.00     return_node, address_of_node, identity_node        
80774 0.50 0.50 1.00   1.00     read_node, address_of_node, null_node        
80777 0.50 0.50 1.00   1.00     address_of_node, identity_node        
80789 0.50 0.50 1.00   1.00              
80805 0.50 0.50 1.00   1.00     dups, arithops, read_node, address_of_node, null_node, type        
80818 0.50 0.50 1.00   1.00     address_of_node        
80831 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node        
80845 NA sem entrega inicial
80858 0.50 0.50 1.00   1.00     address_of_node        
80866 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
80915 0.50 0.50 1.00   1.00     address_of_node, null_node        
80934 0.50 0.50 1.00   1.00     address_of_node, null_node        
80937 0.50 0.50 1.00   1.00     read_node, address_of_node, null_node        
80945 0.50 0.50 1.00   1.00     dups, arithops, priority_node       suffix_node
80946 0.19 0.19 0.75 ROOT 0.00 (cvs ok)   read_node, address_of_node, null_node        
80950 0.50 0.50 1.00   1.00     address_of_node        
80952 0.50 0.50 1.00   1.00     dups, arithops, address_of_node        
80967 0.50 0.50 1.00   1.00     read_node, address_of_node        
80970 0.50 0.50 1.00   1.00     read_node, address_of_node        
80975 0.25 0.25 1.00   0.00 (não compila)   program_node, read_node        
80980 0.50 0.50 1.00   1.00     while_node, address_of_node, print_node        
80990 0.50 0.50 1.00   1.00     identity_node        
80996 0.50 0.50 1.00   1.00     null_node        
81002 0.50 0.50 1.00   1.00     null_node        
81016 0.50 0.50 1.00   1.00     next_node, stop_node, dups, arithops, read_node, identity_node, null_node        
81026 NA sem entrega inicial
81041 0.50 0.50 1.00   1.00     next_node, return_node, dups, arithops, null_node        
81045 0.25 0.25 1.00   0.00 (cvs ok)   dups, address_of_node        
81057 0.50 0.50 1.00   1.00     dups        
81061 0.50 0.50 1.00   1.00     address_of_node       read_node
81066 0.50 0.50 1.00   1.00     dups, lvals, null_node       suffix_node
81082 0.50 0.50 1.00   1.00     address_of_node        
81083 0.50 0.50 1.00   1.00     identity_node        
81105 0.50 0.50 1.00   1.00              
81115 0.50 0.50 1.00   1.00     address_of_node, null_node        
81121 0.25 0.25 1.00   0.00 (não compila)   program_node, read_node, address_of_node, identity_node        
81130 0.50 0.50 1.00   1.00     read_node, address_of_node        
81149 0.50 0.50 1.00   1.00     address_of_node, print_node        
81151 0.50 0.50 1.00   1.00     address_of_node        
81155 0.50 0.50 1.00 identity.h 1.00     read_node, address_of_node, null_node        
81159 0.50 0.50 1.00   1.00     dups, arithops, priority_node, null_node       suffix_node
81172 0.50 0.50 1.00   1.00     read_node, address_of_node        
81173 0.50 0.50 1.00   1.00              
81183 0.50 0.50 1.00   1.00     dups, arithops, read_node, address_of_node, identity_node, null_node        
81186 0.50 0.50 1.00   1.00     read_node, address_of_node        
81191 0.50 0.50 1.00   1.00     address_of_node        
81196 0.50 0.50 1.00   1.00              
81197 0.50 0.50 1.00   1.00     address_of_node        
81201 0.50 0.50 1.00   1.00              
81205 0.50 0.50 1.00   1.00     identity_node        
81209 0.50 0.50 1.00   1.00              
81268 0.50 0.50 1.00   1.00     dups, read_node, null_node        
81271 0.50 0.50 1.00   1.00              
81273 0.25 0.25 1.00   0.00 (não compila)   if_node, if_else_node, while_node, address_of_node        
81283 0.50 0.50 1.00   1.00     read_node, address_of_node, null_node        
81306 0.50 0.50 1.00   1.00     address_of_node        
81328 0.50 0.50 1.00   1.00     read_node, address_of_node        
81329 0.50 0.50 1.00   1.00     read_node, address_of_node, null_node        
81338 0.50 0.50 1.00   1.00     program_node, missing nodes, return_node, read_node, address_of_node        
81345 0.50 0.50 1.00   1.00     program_node, dups, arithops, read_node, address_of_node, identity_node, null_node        
81354 0.50 0.50 1.00   1.00     address_of_node, identity_node        
81365 0.50 0.50 1.00   1.00              
81380 0.50 0.50 1.00   1.00     program_node, dups, arithops, null_node        
81423 0.50 0.50 1.00   1.00     null_node        
81428 0.50 0.50 1.00   1.00     identity_node        
81440 0.50 0.50 1.00   1.00     read_node, identity_node, null_node        
81467 0.50 0.50 1.00   1.00     program_node, null_node        
81470 0.50 0.50 1.00   1.00     read_node        
81478 0.50 0.50 1.00   1.00              
81491 0.50 0.50 1.00   1.00     identity_node        
81500 0.50 0.50 1.00   1.00              
81505 0.50 0.50 1.00   1.00              
81513 NA sem entrega inicial
81530 0.50 0.50 1.00   1.00     read_node        
81534 0.50 0.50 1.00   1.00     address_of_node, identity_node        
81538 0.50 0.50 1.00   1.00     address_of_node        
81543 0.50 0.50 1.00   1.00     read_node, identity_node, null_node        
81577 0.50 0.50 1.00   1.00     read_node, identity_node, null_node        
81596 0.50 0.50 1.00   1.00     read_node, address_of_node        
81609 0.50 0.50 1.00   1.00     program_node, next_node, stop_node, read_node, address_of_node, identity_node, null_node        
81620 0.50 0.50 1.00   1.00     address_of_node        
81630 0.50 0.50 1.00   1.00     dups, arithops, read_node, address_of_node, null_node        
81633 0.50 0.50 1.00   1.00     read_node        
81647 0.50 0.50 1.00   1.00              
81651 0.50 0.50 1.00   1.00     int_declaration_node, string_declaration_node, real_declaration_node, use_node, public_node, dups, arithops, priority_node, read_node, null_node       void*
81654 0.50 0.50 1.00   1.00     identity_node        
81657 0.50 0.50 1.00   1.00     identity_node        
81670 0.50 0.50 1.00   1.00     program_node, missing nodes, return_node, read_node, address_of_node        
81676 0.50 0.50 1.00   1.00     dups, arithops, null_node, print_node       void*
81700 0.50 0.50 1.00   1.00     address_of_node        
81703 0.50 0.50 1.00   1.00              
81714 0.50 0.50 1.00   1.00     null_node       read_node
81719 0.50 0.50 1.00   1.00     address_of_node        
81726 0.50 0.50 1.00   1.00     identity_node        
81749 0.50 0.50 1.00   1.00     address_of_node        
81756 0.50 0.50 1.00   1.00     read_node, address_of_node        
81757 NA sem entrega inicial
81785 0.50 0.50 1.00   1.00     read_node        
81796 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
81805 0.50 0.50 1.00   1.00     use_node, address_of_node        
81811 0.50 0.50 1.00   1.00     address_of_node        
81824 0.50 0.50 1.00   1.00     program_node, read_node, identity_node, null_node        
81845 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node        
81853 0.50 0.50 1.00   1.00     program_node, read_node, null_node        
81861 0.50 0.50 1.00   1.00              
81878 0.50 0.50 1.00   1.00     address_of_node        
81888 0.50 0.50 1.00   1.00              
82009 0.25 0.25 1.00 address.h 0.00 (não compila)   program_node, read_node, address_of_node, null_node        
82034 0.50 0.50 1.00   1.00     read_node, address_of_node        
82145 0.50 0.50 1.00   1.00     address_of_node, null_node        
82259 0.50 0.50 1.00   1.00     dups, null_node        
82343 0.50 0.50 1.00   1.00     read_node        
82403 0.25 0.25 1.00   0.00 (não compila)   read_node, dups, ident_node, lvals, null_node        
82406 0.25 0.25 1.00   0.00 (não compila)   read_node, dups, idt_node, lvals, null_node        
82433 0.50 0.50 1.00   1.00     read_node, identity_node        
82448 0.50 0.50 1.00   1.00     read_node, address_of_node, identity_node, null_node        
82457 0.50 0.50 1.00   1.00     program_node, next_node, stop_node, return_node, read_node, address_of_node, identity_node, null_node        
82468 0.50 0.50 1.00   1.00     read_node, identity_node        
82502 0.50 0.50 1.00   1.00     read_node, address_of_node        
82506 0.50 0.50 1.00   1.00     address_of_node, identity_node, null_node        
82507 0.50 0.50 1.00   1.00     next_node, stop_node, return_node, missing accept methods, read_node, identity_node, null_node        
82517 0.50 0.50 1.00   1.00     next_node, stop_node, read_node, identity_node        

___EOT___; </runphp>