-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2008-12-04 a las 01:34 +0100, lluis escribió: Otro correo que no me llega por la cuenta principal.
Lineal o no lineal... es otro concepto, escribir 8900 lineas seguidas o modularizar el problema.
Lineal sólo significa que el programa sigue una secuencia definida de sucesos, que es previsible desde el principio. Se ejecuta una cosa, detrás otra, detrás otra... en una secuencia definida; aunque lo dividas en procedimientos, funciones, o incluso objetos, la secuencia es lineal
No lo se, hace mas o menos 20 años que yo hago cosas que no coinciden con esa definicion. Me parece que no es asi.... Desde las epocas del Algol, no hay programas lineales a menos que sean de gestion.
Que va. Se hacen por miles. Todos los scripts de bash son secuenciales, por ejemplo. Todos los programas en C (y algunos en c++) son secuenciales. Ten en cuenta que aunque tengan procedimientos, que aunque sigan estructuras de control, bucles, bifurcaciones... son secuenciales.
La utilización de Eventos ( alias interrupciones) es comun a todas las formas de programación.
No, los eventos no son las interrupciones, eso es otra cosa. Son los eventos en OOP: se asocia un "método" a un determinado evento, que puede ser, por ejemplo, que el usuario hace click en la barra de tareas, o que selecciona el menú de abrir archivo, o que aprieta el botón de "Ok". Eso no son interrupciones, son otra cosa. Cuando sucede el "evento" se ejecuta un "método", que no deja de ser una función con otro nombre. Como los eventos, que la mayoría son originados por el usuario, son imprevisibles, la secuencia de ejecución del programa es también imprevisible: es entonces cuando el programa deja de ser "secuencial" o "lineal".
Eso se presta muy bien a los programas que interactúan con el usuario, por ejemplo a un editor de texto, pero en cambio se presta mal si quieres hacer una tubería o un convertidor de formatos.
Ejem...
Eventos imprevisibles... interrupciones. porque en el Hard son eso.
No es lo mismo un evento que una interrupción. Una interrupción es bajo nivel, dispositivos, hardware. Un evento es alto nivel, y no necesariamente se correponde con una interrupción. Es algo asociado a programación orientada a objetos. Se trata de que al definir una función, un método, en su cabecera (o en un fichero auxiliar de definición de la interfaz), declaras que esa función ha de recibir el evento de "pulsar OK", que puede producirse por pulsar la tecla Enter, por pulsar "alt O", por hacer click sobre el rectangulito adecuado... esas tres cosas distintas producen el mismo "evento". El bucle de control del programa, o el sistema operativo, le pasa el control al programa, que hasta ese momento no estaba ejecutandose, y le dice: oye, que se ha producido un evento, y es este. Y una serie de funciones harán, por "arte de magia", que se llame al evento por defecto de la clase "dialogo" que responde al "OK", o al que lo ha heredado, o al que lo ha sobrecargado. Y no está relacionado con las interrupciones. A ver si nos entendemos. Yo no se si ahora a eso lo llaman de otra forma, yo lo aprendí como eventos, en la nomenclatura de Borland. En el windows son "mensajes". Y estos métodos manejadores de eventos son llamados fuera de secuencia de manera imprevisible, porque dependen de decisiones del usuario. Así, un programa típico en pascal tipo delphi o lazarus (o su equivalente en c++), sólo tiene esto en su "main": begin Application.Initialize; Application.CreateForm(TContador, Contador); Application.Run; end. A partir de que llamas a "Application.Run" ya no tienes ni idea de qué se va a ejecutar, ya no depende de tí. Bueno, si se sabe, pero no es tan simple. Se rompe la secuencia, ya no es "secuencial". Ni procedural. - -- Saludos Carlos E.R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAkk4pmIACgkQtTMYHG2NR9X7fgCcC58J0JJEUQ2+GweDWYWpaL1W p0gAni5cZoNGUaoHNh69YpMt9QD8wqh0 =m67K -----END PGP SIGNATURE-----