main
HORMIGA Project
Introducción
Este proyecto fue iniciado en el año 2007 y está abocado a implementar una herramienta de cálculo flexible y fácil de utilizar. Nace con un convenio de colaboración entre el Colegio de Ingenieros de la Provincia de Buenos Aires, Distrito III y la Facultad de Ingeniería de la Universidad Nacional del Centro de la Provincia de Buenos Aires, desde la cual se forma un grupo interdisciplinario de estudiantes y profesionales, tanto de la mencionada Facultad de Ingeniería como de la Facultad de Ciencias Exactas de la misma Universidad.El proyecto abarca la definición de un lenguaje y la implementación de una herramienta que lo interprete (motor del lenguaje).
La herramienta en sí es un intérprete de un lenguaje diseñado para facilitar su uso por parte de usuarios "no informáticos". Mediante este lenguaje, cualquier usuario puede realizar un "programa" encargado de resolver problemas de cálculo específicos.
Además, es deseo de este proyecto alentar a los usuarios a compartir los programas que hayan realizado.
En los Foros Hormiga encontrará programas de ejemplo listos para usar !!! como así también un canal de comunicación entre la comunidad de usuarios.
Pueden comunicarse con nosotros enviando un mail a .
Niveles de usuarios
El proyecto se compone, en principio, de 3 niveles de usuarios:- Desarrolladores: Son quienes se encargan de diseñar el lenguaje e implementar el intérprete. Generalmente son personas allegadas al ámbito informático, ya sean usuarios avanzados, estudiantes de ingeniería de sistemas o graduados.
- Usuarios Finales: Son aquellos que utilizan el intérprete con programas realizados por otros usuarios para resolver sus problemas de cálculo.
- Usuarios Programadores: Son aquellos que escriben en "código Hormiga" los programas necesarios (por ellos mismos o por terceros) para resolver cálculos específicos.
El Lenguaje
El lenguaje fue diseñado para ser simple y potente; permitiendo a cualquier usuario sin conocimientos de programación informática realizar los programas necesarios para automatizar los cálculos de problemas cotidianos. Mayormente solo es necesario por parte del usuario tener en claro el problema que quiere resolver.El lenguaje permite a los programadores concentrarse en especificar declarativamente el problema a resolver, delegando en el intérprete algoritmos e interfaz con el usuario final.
El programador deberá declarar los pasos a seguir para resolver un problema, de la misma forma que lo haría manualmente. Los pasos pueden depender unos de otros.
Al igual que la mayoría de los lenguajes, "Hormiga" tiene soporte de funciones y la posibilidad de crear bibliotecas de código de uso común para evitar duplicar el código o "reinventar la rueda". A diferencia de la mayoría de los lenguajes, Hormiga:
- crea automática y dinámicamente las interfaces de usuario (GUI).
- tiene soporte para cálculo de integrales definidas en múltiples dimensiones.
- incorpora un nuevo concepto llamado Step, similar a un procedimiento de Pascal, pero que permite declarar dependencias entre ellos.
Vea la página de Sintaxis de Hormiga para más información.
El Intérprete
El intérprete está programado en lenguaje C++ utilizando las bibliotecas multiplataforma QT- Sea posible ejecutarlo en prácticamente cualquier computadora de escritorio, ya que requiere relativamente pocos recursos.
- Sea posible ejecutarlo en la mayoría de las plataformas conocidas (MS Windows, Linux/Unix, Mac) y posiblemente en tecnologías embebidas como teléfonos celulares (particularmente Nokia, que adquirió la empresa que desarrolla las bibliotecas de programación QT).
- El lenguaje de base posee toda la potencia y la flexibilidad que asegure a futuro poder expandir el alcance del proyecto.
- El lenguaje de base es bien conocido, con excelentes desarrolladores alrededor de todo el mundo.
Para los objetos gráficos más complejos, se utilizan las bibliotecas Qwt
Además de ser multiplataforma, el intérprete es multilenguaje, es decir que se mostrará de forma automática en el idioma del sistema en el que corra. Esto es gracias al soporte de internacionalización de QT y Gettext
La especificación del lenguaje se implementa utilizando herramientas para la creación de analizadores:
Puede ver la documentación online completa del código del intérprete. Esta documentación es creada con Doxygen
