Продовження (програмування)
Продо́вження (іноді відкладені обчислення, англ. 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
Див. також
Посилання
- Продовження всесвітнього павутиння — про використання продовжень для побудови веб-застосунків.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.