Jump to content

Engine (computer science)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Shenlebantongying (talk | contribs) at 12:57, 28 April 2022 (Add the original paper on this topic.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An engine is a continuation-based construct that provides timed preemption. Engines which can contain other engines are sometimes called Nesters 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.[1]

  (define-syntax timed-lambda
    ((_ formals exp1 exp2 ...)
      (lambda formals (decrement-timer) exp1 exp2 ...))))
  1. ^ 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. ISSN 0096-0551.