Print

main

TOC
Structure   main

HORMIGA Project

Introduction

This project began in 2009 and is headed to perform a flexible and manageable calculation tool.
It emerged from a need in the Civil Engineering Faculty in the city of Olavarría, and it began to be developed as an undergraduate thesis in the System Engineering Faculty in the city of Tandil (Buenos Aires, Argentina).
The project involves the definition of a language and the implementation of a tool which interprets it (language engine).
The tool by itself is an interpreter of a language designed to be easy for use by "non techinician" users. Through this language, any user can develop a "program" in charge of solving calculation problems.
As well, it is a wish of this project to encourage the users to share the programs they have made.
In the Hormiga Forums you will find example programs and contributed, ready to be used and a channel of communication between the users community.

You can communicate with us by sending an e-mail to .

User Levels

Firstly, the project is composed of 3 user levels:
  • Developers: They are in charge of the language design and the interpreter implementation. Usually, they are people related with the software field, whether they are advanced users, software engineering students or graduate students.
  • Final Users: Those who simply use the interpreter with programs made by other users, to solve their calculation problems.
  • Programmer users: Those who write the necessary programs in "Hormiga Code" (by themselves or by a third party) in order to solve specific calculations.

The Language

The language was designed to be simple and powerful, allowing any user without software programming knowledge to make the necessary programs to automate the calculations of everyday problems.
Generally, it is necessary only for the users to be aware of the problem they want to solve.
The language allows programmers to focus on the problem and not to worry about the interactive interface with the user.
The programmer will have to state the instructions to solve a problem, in the same way they would do manually. The steps may depend one upon the other.
Like most of the languages, "Hormiga" has functions support and the possibility of creating code libraries of common use to avoid duplicating the code or "reinventing the wheel". Unlike most of the languages, Hormiga:
  • creates automatically and dynamically the users interface (GUI).
  • has support to calculate definite integrals in multiple dimensions.
  • incorporates a new concept called Step, similar to a procedure of Pascal, but it allows to state dependences between them.
See the page Hormiga Syntax for further information.

The Interpreter

The current interpreter is programmed in C++ language, using the multiplatform libraries QT (external link) to guarantee:
  • The possibility of running it on any desktop computer since it relatively needs low resources usage.
  • The possibility of running it on most of the known platforms (MS Windows, Linux/Unix, Mac) and, possibly, on embeded technologies, as cell phones (particularly Nokia, who acquired the company that develops the QT programming libraries).
  • The base language has power and flexibility, which assures us the possibility of expanding the range of the project.
  • The base language is well-known, with excellent developers around the world.
Besides, the Qwt (external link) libraries are used for the most complex graphic objects.
The specification of the language is implemented using tools for the analysers creation:
  • Lexical Analyser: Flex (external link)
  • Syntactical Analyser: Bison (external link)
You can see the online complete information of the interpreter code. This documentation is created with Doxygen (external link), it reflects the repository version 'trunk' and it is updated daily.

Tracker

Both the tasks and their performers are organized in this Tracker. It is also linked with the repository to mantain the definition of the tasks with the release of svn in which they are implemented (or corrected) if it corresponds.


Calendar


May 2012 - May 2012
S M T W T F S
29 30 01 02 03 04 05
06 07 08 09 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 01 02

Upcoming events

Last blog posts

No records to display