download: pte-d.py
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
""" Permite simular sistemas discretos mediante
la tecnica de Programacion Temporal de Eventos.
"""

# Reloj internet de simulación.
t = 0
# Lista de pares evento,tiempo.
eventos = []

def programar_proximo_evento(funcion,delta_t):
    global eventos, t
    """ Permite programar un evento para ser ejecutado dentro de
    un determinado tiempo.
    """
    eventos.append((funcion,t + delta_t))
    eventos.sort(lambda e1,e2:e1[1]-e2[1])

PPE = programar_proximo_evento

def seleccionar_proximo_evento():
    global eventos, t
    """ Toma el primer evento de la lista de eventos, adelanta el reloj y
    ejecuta el evento correspondiente.
    """
    f,pt = eventos.pop(0)
    t = pt # se actualiza el reloj con el tiempo del próximo evento
    f()

SPE = seleccionar_proximo_evento
    

Copyleft 2006 Juanjo Conti