「構造化された並行性」の版間の差分

削除された内容 追加された内容
m リンク修正
m →‎概要: 文献追加
6行目:
 
構造化された並行性の概念は2016年にマルティン・スーストリク ({{lang|sk|Martin Sústrik}}) が非同期的に呼び出したルーチンをキャンセルする問題を例として定式化され<ref name="sustrik16">{{cite web|first=Martin|last=Sústrik|date=2016-02-17|title=Structured concurrency|url=https://250bpm.com/blog:71/|accessdate=2021-02-22}}</ref>、[[C言語]]のライブラリlibdillとして実装された<ref name="libdill">{{cite web|title=libdill: Structured Concurrency for C|url=http://libdill.org/structured-concurrency.html|accessdate=2012-02-23}}</ref>。2018年にはナサニエル・J・スミス ({{lang|en|Nathaniel J. Smith}}) が非同期処理の実装の欠点を克服するものとして自身の[[Python]]言語の非同期処理ライブラリ[[Trio]]に実装した<ref name="smith18">{{cite web|first=Nathaniel J.|last=Smith|date=2018-04-25|title=Notes on structured concurrency, or: Go statement considered harmful|url=https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/|accessdate=2021-02-22}}</ref>。
同じ年さらに[[Kotlin]]言語の[[コルーチン]]・ライブラリを開発していたロマーン・エリザーロフ ({{ru|Роман Елизаров}}, {{en|Roman Elizarov}}) も同様のアイデアにたどり着いている<ref name="elizarov18">{{cite web|first=Roman|last=Elizarov|date=2018-09-12|title=Structured concurrency|url=https://elizarov.medium.com/structured-concurrency-722d765aa952|accessdate=2021-02-22}}</ref><ref name="belmente18">{{cite web|first=John|last=Belmonte|date=2018-09-25|title=‘Concurrency made easy’: coming soon to a programming language near you|url=https://medium.com/@belm0/concurrency-made-easy-d3fdb0382c58|accessdate=2021-02-24}}</ref>。
[[Java]]、[[Scala]]、[[Swift (プログラミング言語)|Swift]]<ref name="venice">{{cite web|year=2017|title=Venice|website=Zewo|url=http://zewo.github.io/Venice/|accessdate=2021-02-24}}</ref>、その他の言語のライブラリでもこの概念に基づく実装がある。
 
非同期処理を用いたプログラム開発に対応する言語やライブラリにおいて非同期処理の呼び出しは、しばしばその後の監視や再結合なしに行うことができ、プログラム構文上でのフローの把握の難しさや[[例外処理]]の困難さといった固有の問題が生じている。