En un lenguaje tradicional, el flujo del programa es en su mayoría estático y predefinido por el programador, los cambios en el flujo pueden deberse a entradas del usuario como, instrucciones de bifurcación o cambios en el número de iteraciones en un control de bucle que pueden parecer no- uniforme pero demasiado definido por el programador en un conjunto de condiciones preestablecidas. Hay un inicio distinto (llamada a la función principal) y un final distinto (retorno de la función principal) y su síncrono - esperará hasta que se dé una entrada del usuario para continuar.
En un lenguaje controlado por eventos (kernel, JavaScript), no hay un flujo preestablecido, ni un inicio ni un final distintos de un programa. Un programador no puede saber qué función se llamará en qué momento. Ejemplo: una página se carga utilizando XML Http Request, mientras que otras funciones están funcionando. El programa no esperará a que se cargue la página. Activará un "evento" y la función vinculada lo procesará una vez que se complete la descarga. Un módulo del núcleo del controlador del mouse, si espera la entrada del usuario sincrónicamente, colgará la computadora si mantiene el control y evita que sucedan otros procesos. Lo que sucede es que el núcleo dispara un "evento" y llama a la función vinculada cuando sea necesario. Esto alivia los problemas asociados con "esperar una entrada más lenta / del usuario".
Para obtener más información, obtenga ayuda en CodeAvail- Ayuda de asignación de ciencias de la computación en línea