GithubHelp home page GithubHelp logo

formally-cool's People

Contributors

gpordeus avatar tarberd avatar

Stargazers

 avatar

Watchers

 avatar  avatar

formally-cool's Issues

Classy: RG operation

Operations to be supported:

  • let id = new rg
  • id
  • edit id
  • let id = read rg file
  • write id file

Edit must support:

  • variables add
  • variables rm
  • terminals add
  • terminals rm
  • rule add
  • rule rm
  • start_variable

Classy: NFA operations

Operations to be supported:

  • let id = new nfa
  • edit id
  • read id file
  • write id file

Edit must support:

  • states add
  • states rm
  • alphabet add
  • alphabet rm
  • transition add
  • transition rm
  • start_state
  • accept_states add
  • accept_states rm

Classy: DFA operations

Operations to be supported:

  • let id = new dfa
  • edit id
  • read id file
  • write id file

Edit must support:

  • states add
  • states rm
  • alphabet add
  • alphabet rm
  • transition add
  • transition rm
  • start_state
  • accept_states add
  • accept_states rm

Trabalho de Formais

1. Objetivo do Trabalho:

O objetivo deste trabalho é a implementação dos algoritmos relacionados a manipulaçãode Linguagens Regulares e Livres de Contexto. Tais algoritmossão úteis na implementa-ção de Geradores de Analisadores Léxicos e Sintáticos ou dospróprios analisadores.

2. Definição do Trabalho:

Elaborar uma aplicação, com interface gráfica para facilitar a iteração, para manipularAutômatos Finitos, Gramáticas Regulares, Expressões Regulares e Gramáticas Livres deContexto e Autômatos de Pilha. A aplicação deve suportar:

  • (a) Leitura, gravação e edição de:
    • AF
    • GR
    • ER
  • (b) Conversão de AFND (com e semε) para AFD
  • (c) Conversão de AFD para GR e de GR para AFND
  • (d) Reconhecimento de sentenças em AF
  • (e) Minimização de AFD
  • (f) União e interseção de AFD
    (g) Conversão de ER para AFD (usando o algoritmo baseado em árvore sintática - LivroAho - seção 3.9)
  • (h) Leitura, gravação e edição de GLC.
  • (i) Transformação de GLC para uma GLC na forma normal de Chomsky
  • (j) Eliminação de recursão a esquerda
  • (k) Fatoração
  • (l) Reconhecimento de sentenças em AP (teorema GLC↔AP)

Observações:
•As notações devem ser as utilizadas em sala (para notacionarεusar o&);
•AF podem ser apresentados na forma de tabelas de transição;
•Todos os AF (intermediários ou resultantes) devem ser reutilizáveis (passíveis deEdição)

3. Realização:

O trabalho deverá ser realizado em duplas.

4. Formato de Entrega:

As entregas serão parciais:
•Dia 02/05 - entrega da parte 1 - itens (a), (b), (c) e (d) da Definição do Trabalho
•Dia 30/05 - entrega da parte 2 - itens (e), (f), (g) e (h) da Definição do Trabalho
•Dia 20/06 - entrega da parte 3 - itens (i), (j), (k) e (l) da Definição do Trabalho

A entrega deve ser feita pelo moodle em um arquivo .zip que quandodescompactado gere um diretório e dois subdiretórios: Aplicação eTestes.Os arquivos de teste devem ser na forma <testeifuncionalidade.ext>. Exemplo: teste1AfndAfd.my.Deve haver dentro do diretório principal um arquivo README (txt ou pdf) contendo ca-beçalho (instituição, departamento, nomes dos integrantes do grupo, data) e informaçõessobre os fontes (linguagem utilizada, detalhes sobre a modelagem e Estruturas de dadosutilizadas, etc.) e detalhes sobre o uso da aplicação.Bibliotecas auxiliares, que não aquelas específicas de Autômatos, RegEx ou Gramáticas,podem ser utilizadas visando limpar o código (para fazer entrada e saída de dados, porexemplo). Todos os arquivos fonte devem ter cabeçalho e devem ser bem comentados.
IMPORTANTE!Trabalhos fora do formato não serão avaliados.

5. Avaliação:

O trabalho será avaliado pela corretude, usabilidade e robustez. Além disso, quesitoscomo legibilidade do código e organização dos fontes tambémserão considerados. Parteda nota final decorrerá da apresentação do trabalho completoque acontecerá no períodode 24/06 a 04/07 durante os horários de aula. O agendamento dos horários será feito pelomoodle

6. Nota:

A nota final do trabalho será atribuida individualmente comosegue:

((12∑i=1f uncionalidadei)/12)∗0.8 + (N otadaapresentao)∗0.2

GLC

Classy

Implement the folowing operations:

  • let id = new glc
  • id
  • edit id
  • write id
  • let id = read glc file_name

Edit must support:

  • variables add
  • variables rm
  • terminals add
  • terminals rm
  • rule add
  • rule rm
  • start_variable

Formally-cool

implement the following:

  • GLC class
  • [ ]

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.