Nodes from CDK and Simple

From Wiki**3

Revision as of 21:06, 3 March 2021 by Root (talk | contribs) (Created page with "{{PRJCompiladoreAvisosEN20202021}} <!--{{PRJCompiladoreAvisosEE20202021}}--> {{PRJCOMandatory20202021}} {{TOCright}} CDK is the basis for compiler development in this setup....")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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: 2021/03/22 17:00 (inicial); 2021/04/30 17:00 (intercalar); 2021/05/28 17:00 (final); 2021/06/01-04 (teste prático).
  • Todas as entregas são cruciais para o bom desenvolvimento do projecto, sendo obrigatórias: a não realização de uma entrega 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.
  • Apenas se consideram para avaliação os projectos existentes no repositório oficial. Apenas se considera para avaliação o ramo 'main'.
  • 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 GIT
Apenas se consideram para avaliação os projectos existentes no repositório GIT oficial. Apenas se considera para avaliação o ramo main.

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.

CDK is the basis for compiler development in this setup. Simple is a small compiler based on the CDK.

This page focuses on the nodes, that is, the language elements present in each package. CDK nodes tend to be general, in the sense that the concepts are reusable accross different languages. Simple provides nodes specific to the implemented language.

CDK Nodes

  • basic_node --
  • sequence_node --
  • typed_node --
  • expression_node --

Expressions

  • binary_operation_node --
    • add_node sub_node mul_node div_node mod_node --
    • and_node or_node --
    • lt_node le_node ge_node gt_node --
    • eq_node ne_node --
  • unary_operation_node --
    • not_node.h neg_node --

Left-Values

  • lvalue_node --
  • variable_node --
  • assignment_node --
  • rvalue_node --

Literals

  • literal_node --
    • double_node integer_node string_node --

Other Nodes

data_node -- nil_node --

Simple Nodes

  • evaluation_node --
  • if_node if_else_node --
  • print_node --
  • program_node --
  • read_node --
  • while_node --