Skip to content

juniors719/backend_compiladores

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ANÁLISE DE FLUXO DE DADOS

Trabalho da disciplina de Compiladores da Universidade Federal do Ceará – Campus Quixadá, lecionada pelo professor Lucas Ismaily, no semestre 2025.1.

Realizado pelos alunos:

Nome Matrícula GitHub
Francisco Djalma Pereira da Silva Júnior 554222 @juniors719
Francisco Leudes Bezerra Neto 552478 @Leudes
Kauan Pablo de Sousa Silva 556027 @auanK

Descrição do Projeto

O trabalho consiste em implementar três algoritmos clássicos de Análise de Fluxo de Dados sobre um grafo de fluxo de controle. Os algoritmos desenvolvidos foram:

  • 🔵 Análise de Longevidade (Liveness Analysis): Determina para cada ponto do programa quais variáveis contêm valores que ainda poderão ser utilizados.

  • 🟢 Definições Alcançantes (Reaching Definitions): Identifica o conjunto de definições que podem alcançar cada ponto do programa.

  • 🟡 Expressões Disponíveis (Available Expressions): Encontra o conjunto de expressões cujo valor já foi calculado e continua válido em cada ponto do programa.


Requisitos

O projeto foi desenvolvido em Python e não requer bibliotecas externas. É necessário ter instalado:

  • Python 3.x

Como Executar o Projeto

  1. Preparar o ambiente Crie uma pasta chamada in/ na raiz do projeto (caso ainda não exista) e coloque os arquivos de teste dentro dela, por exemplo: 1.txt, 2.txt, etc. Cada arquivo deve conter a representação de um grafo de fluxo de controle, conforme especificado no enunciado do trabalho.

  2. Executar as análises Para rodar cada análise, utilize os seguintes comandos na raiz do projeto:

    # Executa a Análise de Longevidade
    python longevidade.py
    
    # Executa a Análise de Definições Alcançantes
    python reaching_definitions.py
    
    # Executa a Análise de Expressões Disponíveis
    python expressoes_disponiveis.py

About

Implementação em Python de algoritmos de Análise de Fluxo de Dados para a disciplina de Compiladores.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages