This article needs additional citations for verification. (July 2017) |
An engine is a continuation-based construct that provides timed preemption. Engines which can contain other engines are sometimes called Nesters[1] and engines which do not have this ability are then called flat engines or "solo engines". To implement timed preemption there needs to be a clock. This clock can measure real time or simulated time. Simulated time can be implemented in a language like Scheme, by making each function start with decrementing the clock.[2]
(define-syntax timed-lambda
((_ formals exp1 exp2 ...)
(lambda formals (decrement-timer) exp1 exp2 ...))))
References
edit- ^ Dybvig, R. Kent; Hieb, Robert (July 21, 1988). "Engines from Continuations" (PDF). Indiana University - Computer Science Department.
- ^ Haynes, Christopher T.; Friedman, Daniel P. (1987-01-01). "Abstracting timed preemption with engines". Computer Languages. 12 (2): 109–121. doi:10.1016/0096-0551(87)90003-8.