Продовження (програмування)

Продо́вження (іноді відкладені обчислення, англ. continuation) представляє стан програми в певний момент, який може бути збережений і використаний для переходу в цей стан. Продовження містять всю інформацію, щоб продовжити виконання програми з певної точки. Продовження схожі на goto, оскільки також дозволяють перейти будь-яке місце програми. Але продовження, на відміну від goto, дозволяють перейти лише в ділянку програми з певним станом, який має бути збережений заздалегідь, в той час, як goto дозволяє перейти у ділянку програми з неініціалізованими змінними.

Підтримка мовами програмуванняРедагувати

Багато мов програмування надають цю можливість під різними назвами, наприклад:

  • Scheme: call/cc (стислий запис для call-with-current-continuation)
  • Standard ML: SMLofNJ.Cont.callcc
  • C: setcontext et al. (UNIX System V і GNU libc)
  • Ruby: callcc
  • Smalltalk: Continuation currentDo:, в більшості сучасних середовищ для Smalltalk продовження можуть бути реалізовані без підтримки віртуальної машини.
  • Rhino : Continuation
  • Haskell : callCC (в модулі Control.Monad.Cont)
  • Factor : callcc0 і callcc1

Див. такожРедагувати

ПосиланняРедагувати