Next: Editor interactivo v2 Up: No Title Previous: No Title

# Editor interactivo v2

Un editor interactivo de documentos se ha diseñado de manera que el documento en edición se mantiene en memoria. El usuario suministra repetidamente órdenes elementales de edición, mediante el teclado. Las órdenes consisten en una o varias pulsaciones de tecla seguidas. Estas órdenes provocan modificaciones en el documento almacenado en memoria, y posteriormente se actualiza su presentación en pantalla. Para permitir en lo posible que un usuario experto teclee a la máxima velocidad de que sea capaz, se establecen los siguientes requisitos:

1. El editor debe aceptar en todo momento los caracteres que se vayan tecleando

2. Las órdenes que se vayan reconociendo deben ejecutarse a la velocidad a la que la máquina sea capaz de hacerlo. La ejecución de una orden debe proseguir hasta completarse, aunque dure algún tiempo.

3. La actualización de la pantalla no se hará hasta que no queden órdenes pendientes de ejecutar, pero puede realizarse de forma simultánea al tratamiento de las siguientes órdenes, en caso de llegar durante una actualización.

4. Asímismo, no se debe visualizar el documento si no se han recibido órdenes nuevas desde la última actualización de la pantalla. El resto del editor permanecerá inactivo a la espera de nuevos comandos.

La actualización no se hará, por tanto, tras cada orden de edición. Esto permite reducir la carga de trabajo de actualización, de manera que si se ejecutan varias órdenes de edición seguidas, la actualización presenta de una vez el resultado final de la serie de órdenes.

Por otra parte, el punto 4 exige que la solución no sufra de un problema de espera activa con el consiguiente gasto inútil de CPU.

Se trata de desarrollar de manera esquemática una solución basada en paso de mensajes del editor mencionado incluyendo:

- Diagrama de procesos y canales

- Código en CC-MODULA, dejando sin refinar las acciones específicas de la edición y la visualización.

- Editor interactivo v2 (SOLUCIÓN)

Next: Editor interactivo v2 Up: No Title Previous: No Title