Ir al contenido principal

Entradas

Eventos y acciones en contexto

La intención del artículo es promover y fundamentar el uso de las máquinas de estados en aquellos sistemas que reaccionan ante eventos, formalmente sistemas reactivos , típicos entre los embedded systems . Sistemas reactivos y la programación orientada a eventos Los sistemas reactivos son aquellos que en gran parte reaccionan contínuamente a estímulos externos e internos. Estas reacciones dependen de los eventos que recibe el sistema y de su contexto actual. Generalmente, se manifestan por medio de acciones. Inclusive, podrían cambiar el contexto del sistema. Por contexto entendemos una situación, modo o estado particular en el cual el sistema reside. Obviamente, puede que ciertos eventos no provoquen reacciones sobre el sistema, o bien que estas no generen acciones o cambios de contexto. Por otro lado, el conjunto de reacciones establecidas dependiente de los eventos recibidos para un contexto particular define el comportamiento dinámico de un sistema reactivo.  ...

Extendiendo el formalismo de máquinas de estados - I

Cuando modelamos el comportamiento de un sistema mediante máquinas de estados no siempre todo es bonito, claro y sencillo, en ciertas ocasiones debemos tomar diversas estrategías para resolver los pocos obstáculos que presenta el formalismo convencional de máquinas de estados. A continuación resumo algunas de las problemáticas que he enfrentado al diseñar sistemas utilizando máquinas de estados, exponiendo el problema y luego presentando una o varias soluciones posibles extendiendo el formalismo convencional por medio de Statecharts.

Optimice su código

Incorporar ciertas técnicas de optimización durante la escritura de un programa, especialmente en el mundo embedded, es realmente una gran ventaja. Me refiero a "programar optimizando". Por supuesto, sin que esto arruine la legibilidad y simplicidad del programa o altere su comportamiento. Para ello se requieren sólidos conocimientos del lenguaje y del compilador en uso. Hace algunos años, he asistido a varias clases en las cuales el profesor Eduardo A. Martinez transmitió estas y otras prácticas, útiles al momento de escribir un buen programa en lenguaje C. Por suerte, él mismo ha resumido parte de sus clases en los siguientes artículos: Optimece su código - Parte 1 Optimece su código - Parte 2

Programación orientada a eventos

Generalmente, los embedded systems se caracterizan por reaccionar continuamente ante estímulos internos y/o externos. Estas reacciones provocan una acción determinada, la cual está en función del contexto del sistema. A estos sistemas suele denominárselos Sistemas Reactivos . Tradicionalmente el comportamiento reactivo de un sistema, se describe por medio de la combinación de las definiciones de autómatas finitos de Mealy/Moore, representados gráficamente por su correspondiente diagrama de transición de estados. Esto permite describir naturalmente su comportamiento en términos de estados, eventos, como así también transiciones. Este concepto aplicado a la programación podría denominarse programación orientada a estados o eventos . Sin embargo, si el sistema es complejo, dicha representación puede dificultarse, debido al crecimiento exponencial de estados, resultando en un diagrama caótico y no estructurado. Para que el método estado/evento sea útil, debe ser modular, jerárqui...