Giter Club home page Giter Club logo

cfl.io's People

Contributors

golegario96 avatar ricardovf avatar

Stargazers

 avatar

Watchers

 avatar  avatar

cfl.io's Issues

Revisão trabalho II

  • Ao retirar epsilon, ele está duplicando as produções. Garantir que em todas as operações, em todas as etapas (steps) as produções, não termianis e termianis sejam unicos (Gustavo) (Checar nos testes unitários também)
  • Ver se é finita/infinita/vazia primeiro tem que eliminar simbolos inuteis (de uma clonada) (Gustavo)
  • Garantir que first / follow / first-NT seja único (sem repetição de simbolos) (Ricardo)
  • Mudar painel lateral para indicar mais claramente o status da linguagem (Ricardo)
  • First-NT precisa identificar quando tiver de forma indireta e quando tiver epsilon (Ricardo)
  • Liberar para fazer operações mesmo que já seja (por exemplo, sem simoblos inuteis), garantir que retorna a mesma gramática no caso (Ricardo)
  • Recursão esquerda não detectada, arrumar (Ricardo):
    S -> B
    B -> B1
    B1 -> & | S
  • Se possível colocar fatoração e recursão esquerda em modal (Ricardo)
  • Se possível mudar forma de salvar a linguagem nas modais para definir o nome antes de salvar e se quer sobrepor ou criar nova (Ricardo)
  • Diminuir fonte do menu lateral (Ricardo)

Tasks

Definição:

Elaborar uma aplicação, com interface gráfica para manipular GLC, envolvendo as seguintes
verificações/operações:

0 - Clonar repositório, ajustar interface básica (remover coisas de LR)

  • Remover coisas de LR da interface, testes e coisas não relacionadas a GLC
  • Rascunhar interface básica para operações

1 - Editar textualmente GLC’s;

  • Verificar se a GLC escrita é válida

2 - Verificar se L(G) é vazia, finita ou infinita;

  • implementar algoritimo e testes
  • implementar para mostrar na interface (painel lateral)

3 - Transformar uma GLC em GLC Própria, disponibilizando: Gramáticas intermediárias, NF,
Vi, Ne e NA;

  • Remover produções epsilon
  • Remover produções simples
  • Remover inférteis
  • Remover inalcançaveis
  • Montar modal para realizar a operação mostrando os intermediários, NF, Vi, NE, NA

4 - Calcular First(A), Follow(A) e First-NT(A) (definido como sendo o conjunto de símbolos
de Vn que podem iniciar sequências derivadas de A) para todo A ∈ Vn;

  • First
  • Follow
  • First-NT
  • Mostrar na interface, provavelmente no painel lateral

5 - Verificar se G está fatorada ou se é fatorável em n passos;

  • Verificar se está fatorada
  • Mostrar se está fatorada no painel
  • Verificar se é fatorável em n passos
  • Montar painel para mudar o número de passos e mostrar se é fatorável ou não (tipo o que enumerava)

6 - Verificar se G possui ou não Rec. a Esquerda – identificando os não-terminais recursivos
a esquerda e o tipo das recursões (direta e/ou indireta) e, caso possua, eliminar as recursões.

  • Verificar se possui ou não rec a esquerda
  • Remover recursão direta
  • Remover recursão indireta

Observações:

1 – Representar as GLC de forma textual, seguindo o padrão dos exemplos abaixo:

E -> E + T | E - T | T
T -> T * F | T / F | F
F -> ( E ) | id
E -> T E1
E1 -> + T E1 | &
 T -> F T1
T1 -> * F T1 | &
F -> ( E ) | id

2 – deixar um espaço em branco entre os símbolos do lado direito.
3 – Representar não-terminais por letra maiúscula (seguida de 0 ou + dígitos).
4 – Representar terminais com um ou mais caracteres contíguos (quaisquer caracteres, exceto
letras maiúsculas).
5 – Usar & para representar épsilon.
6 – Apresentar os resultados intermediários obtidos.
7 – O trabalho deverá ser feito em duplas e a linguagem de programação é de livre escolha
(porém deve ser dominada pelos 2 membros da equipe).
8 – O trabalho deve ser encaminhado por e-mail, até 27/06, em um único arquivo zipado,
contendo relatório (descrevendo a implementação), fonte (documentado), executável e testes.
Usar como nome do arquivo o nome dos componentes da equipe (ex. JoaoF-MariaG.zip).
9 – Além da corretude, serão avaliados aspectos de usabilidade e robustez da aplicação.

Revisão trabalho I

Trabalho I:

  • Mudar painel lateral para indicar mais claramente o status da linguagem (Ricardo)
  • trocar enumeração para mostrar somente do tamanho exato da enumeração (Ricardo)
  • Concaternar (abc)* reverso com (abc)* (Gustavo)
  • UNIÃO está incorreto pois utiliza o estado inicial existente (Gustavo)
  • DIFERENÇA INCORRETO? Revisar todas as operações (Gustavo)
  • (abc)* reverso, deterministico, minimo, checar se está correto
  • Expressão regular cabulosa (as e bs ímpar acho) e minimizar tem que gerar um automato com 4 estados acho (Gustavo (minimização) e Ricardo)
  • Se possível mudar forma de salvar a linguagem nas modais para definir o nome antes de salvar e se quer sobrepor ou criar nova
  • Liberar para fazer operações mesmo que já seja (por exemplo, mínimo), garantir que retorna o mesmo automato no caso

Bugs

Finitude:

  • Mostra como finito [1], mas deveria ser infinito.

[1]:

S -> B | a S
B -> a

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.