Spaces:
Sleeping
A newer version of the Gradio SDK is available:
5.33.0
title: Analisis-Lenguaje Robot
emoji: 🦀
colorFrom: yellow
colorTo: red
sdk: gradio
sdk_version: 5.28.0
app_file: app.py
pinned: false
license: cc
Universidad Autónoma de Tamaulipas
Proyecto - Analizador en Hugginface
INTEGRANTES
- Gutiérrez Garcés Edwin
- Ruiz Yañez Aaron Alfonso
- Garcés Hernández Jesús Eduardo
- Moreno Reyes Luis Daniel
Analizador Semántico - Lenguaje de Robots
Proyecto Final – Programación de Sistemas de Base 2
Este proyecto implementa un traductor semántico completo para un lenguaje personalizado de control de robots. Originalmente desarrollado en Java con JFlex y CUP, fue migrado completamente a Python para ser compatible con la plataforma Hugging Face Spaces, donde se ejecuta con una interfaz gráfica construida en Gradio.
Funcionalidades
Lexer (
lexer.py
)
Reconoce más de 50 instrucciones propias del lenguaje del robot: control de movimiento, sensores, comunicación, estados, etc.Parser (
parser.py
)
Analiza la estructura sintáctica del programa y construye un árbol de sintaxis abstracta (AST).Análisis Semántico (
semantico.py
)- Verifica el uso correcto de variables
- Evalúa compatibilidad de tipos (
int
,float
,boolean
) - Valida condiciones en estructuras
IF
yWHILE
- Detecta errores como funciones mal usadas o variables no declaradas
- Genera anotaciones funcionales explicando el propósito de cada instrucción válida
Integración con NLP (
sugerencias_nlp.py
)- Procesa comentarios y errores semánticos
- Genera sugerencias simuladas o reales usando la API de Hugging Face
- Convierte anotaciones en descripciones legibles
Código intermedio (
codigo_intermedio.py
)
Generación de pseudocódigo en formato de tres direcciones con instrucciones comoPARAM
,CALL
,STORE
.Salida estructurada (
analisis.json
)
Contiene:- Variables declaradas
- Errores semánticos con sugerencias
- Anotaciones funcionales
- Comentarios interpretados
Formato de entrada
El sistema analiza archivos .txt
que contienen código en el lenguaje personalizado.
Ejemplo:
int x;
float y;
x = 5;
y = x + 3.5;
IF (y > 5) THEN {
MOVE_FORWARD(10);
PRINT("Listo");
}
Estructura del Proyecto
lexer.py
– Análisis léxicoparser.py
– Generación del ASTsemantico.py
– Validación y anotaciones semánticascodigo_intermedio.py
– Generación de código de tres direccionessugerencias_nlp.py
– Procesamiento NLP de errores y comentariosmain.py
– Ejecución desde línea de comandosapp.py
– Interfaz web (Gradio) para Hugging Face Spacerequirements.txt
– Dependencias mínimas
¿Cómo usar este Space?
- Sube un archivo
.txt
con tu código del lenguaje de robot - El sistema analizará el código y detectará errores
- Se mostrarán los errores semánticos, sugerencias y anotaciones
- Podrás visualizar y descargar el contenido de
analisis.json
El proyecto también genera un archivo
codigo_intermedio.txt
con pseudocódigo basado en el análisis semántico.
Importante
- El sistema está preparado para conectarse con modelos como CodeBERT o GPT-2.
- Debido a restricciones del entorno gratuito de Hugging Face, las sugerencias no pueden ser generadas en tiempo real.
Desarrollado por Ethgoin Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference