Википедия
Сопрограмма — компонент программы , обобщающий понятие подпрограммы , который дополнительно поддерживает множество входных точек , остановку и продолжение выполнения с сохранением определённого положения.
Сопрограммы являются более гибкими и обобщёнными, чем подпрограммы, но реже используются на практике. Применение сопрограмм являлось методикой ещё ассемблера , практиковалось лишь в некоторых высокоуровневых языках ( Simula , Modula-2 ). Сопрограммы хорошо пригодны для реализации многих похожих компонентов программ ( итераторов , бесконечных списков , каналов , совместных задач ).