3.1

Introducción a Flowol

 

Flowol es un lenguaje de programación orientado al manejo de interfaces de control en entornos educativos. Se trata de un lenguaje:

  • esencialmente imperativo (consta de un conjunto de instrucciones que se ejecutan consecutivamente);
  • gráfico, tomando el aspecto de un ordinograma o diagrama de flujo (no es, por tanto, textual, como Basic o C, y las instrucciones no son de texto, sino elementos gráficos);
  • proporciona elementos del diseño descendente, de forma que es posible utilizar subprogramas;
  • ofrece una forma elemental de concurrencia o paralelismo, de modo que proporciona la posibilidad de programar procesos simultáneos. Esta es una característica propia de los lenguajes orientados al control automático y la robótica.

De hecho, el propio nombre del lenguaje recoge sus características más notables, ya que parece ser una contracción de diagrama de flujo (flow chart) y control.

Permite programar las entradas y salidas de distintas interfaces comerciales educativas de control, y no está pensado para la presentación de pantallas de texto o de pantallas gráficas. El que permita la programación de varias interfaces es una notable propiedad, dado que la mayoría de lenguajes de estas características se "entienden" con un único interfaz de control.

Es muy sencillo, pues cuenta con un conjunto de instrucciones muy limitado, no tratándose de un leguaje de propósito general. Esto, al contrario de ser un inconveniente, supone una ventaja a la hora de su utilización en el aula, dado que hace descender considerablemente la curva de aprendizaje del lenguaje.

Se trata de un lenguaje interpretado (no compilado), de forma que el programa se interpreta y ejecuta instrucción a instrucción.

Flowol puede operar también en modo simulación, de modo que los alumnos pueden desarrollar y probar los programas sin necesidad de conexión directa con una interfaz de control.

La versión 2.80 de este lenguaje, se encontraba totalmente en lengua inglesa, mientras que la versión 2.91 se halla ya traducida al castellano. La versión 2.92 ha corregido algunos defectos de la traducción y algunos errores internos en la programación.

La programación con Flowol se realiza mediante:

  • la acción de arrastrar y soltar bloques en un diagrama,
  • la configuración de las características de dichos bloques utilizando ventanas de diálogo sencillas, y
  • la interconexión de los diferentes bloques entre sí.

El programa más sencillo que se puede escribir con Flowol es el siguiente:

Como podemos intuir, este programa, con sólo principio (Inicio) y fin (Alto), no hace nada, pero se ejecuta correctamente y nos da una idea de que no se necesita mucho para empezar a programar en Flowol.

Un programa algo más complicado, pero que hace algo, es el siguiente:

Con él, transcurrido 1 segundo desde en inicio de la ejecución del programa, activamos durante 2 segundos una salida digital de un dispositivo (no especificado por el momento), y anunciamos previamente la activación de la salida mediante un sonido.

En este programa observamos algunos de los principales elementos de la programación gráfica con Flowol como son los bloques terminadores,

los bloques de realización de un proceso (por ejemplo, una espera),

los bloques que activan alguna salida,

las líneas (flechas) que conectan los distintos bloques y las etiquetas (texto en letra cursiva a la derecha de los bloques), que constituyen los comentarios del lenguaje.

Como se observa, un programa de Flowol es simplemente una pantalla gráfica en la que se acumulan de forma ordenada bloques que se conectan secuencialmente mediante líneas con flechas. No existe un archivo fuente "legible" en el que se encuentre en forma de texto el contenido de dicho programa (las instrucciones se encuentran en un formato codificado "no legible").

En la siguiente tabla se recogen la nomenclatura y la representación gráfica de los distintos elementos del lenguaje Flowol, que serán objeto de estudio detallado en los próximos temas (así que no te preocupes si no comprendes ahora completamente algunos de los conceptos que se utilizan en la tabla): 

Elemento Definición
Terminador (Inicio/
Alto/
Páralo Todo
)

Bloque que marca el inicio o el fin del código de un programa o de un subprograma.
Un programa debe empezar necesariamente por un bloque Inicio y terminar con Alto (o Páralo Todo).

En caso de que haya más de un bloque Inicio en el programa, de modo que existan varios procesos ejecutándose simultáneamente, el bloque Páralo Todo los detiene a todos.

Salida

Bloque que realiza una acción sobre alguna salida de control de una interfaz de control: activación/desactivación de un actuador, cambio del sentido de giro de un  motor ...
Proceso

Bloque que realiza una operación en el programa. Puede ser de tres clases:
  • asignación de valores a variables (bloque Fijar
  • retardo -espera durante un determinado período de tiempo- (bloque Tardar)
  • llamada a subprograma (bloque Sub)
Decisión

Bloque que permite bifurcar el flujo del programa en función del resultado de una expresión condicional que depende de:
  • el valor instantáneo de las entradas de la interfaz de control (analógicas y/o digitales), o
  • las variables

En definitiva, este bloque permite realizar lo que se denomina un control de flujo en el programa.

Línea de flujo

Conecta secuencialmente dos bloques ejecutables. Puede ser de tres clases:
  • línea ("siempre")
  • línea "SI"
  • línea "NO"

Las líneas SI y NO sólo se aplican a las salidas del bloque Decisión, mientras que las líneas ("siempre") se aplican a la entrada y la salida de cualquier bloque (excepto a las salidas del bloque decisión).

Etiqueta, comentario

ej.

No ejecuta ninguna acción en el programa.
Se utiliza como un texto explicativo que contribuye a clarificar el código y a recordar más tarde lo que se hizo.

Número

Designa a valores numéricos enteros que toman valores entre 0 y 9.999.999

Variable Una variable es un "contenedor" con nombre (por ejemplo, a, b, c, d, n, x, y, z) para un número. Son el medio para que el programa "recuerde" valores.
A la variable se le puede asignar un valor entero, o el resultado de una operación entre dos variables o entre una variable y un número entero.
Operador Hace referencia a una operación matemática. Los operadores pueden ser:
  • aritméticos: +, -, *, /
  • relacionales: =, != , <, >


Referencias y fuentes
 

Control y Robótica. Tema: El lenguaje de control Flowol. Curso provincial. Víctor R. González, Asesoría de Tecnología y FP, CFIE Valladolid II.

Tecnologías de la Información y de la Comunicación. Capítulo 6, Programación y control de procesos. Juan A. Alonso, Santiago Blanco A., Santiago Blanco S., Roberto Escribano, Víctor R. González, Santiago Pascual, Amor Rodríguez. Editorial Ra-Ma, 2004.

volver a Inicio