{"id":192295,"date":"2015-05-03T00:00:00","date_gmt":"2015-05-28T23:45:00","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/msr-research-item\/p-safe-asynchronous-event-driven-programming-3\/"},"modified":"2016-08-23T12:55:02","modified_gmt":"2016-08-23T19:55:02","slug":"p-safe-asynchronous-event-driven-programming-3","status":"publish","type":"msr-video","link":"https:\/\/www.microsoft.com\/en-us\/research\/video\/p-safe-asynchronous-event-driven-programming-3\/","title":{"rendered":"P: Safe Asynchronous Event-Driven Programming"},"content":{"rendered":"
\n

P: a domain specific language for writing asynchronous
\nevent-driven programs. This asynchronous
\nlanguage promotes a discipline of programming
\nwhere deferrals need to be declared explicitly, and consequently
\nleads to responsive systems.<\/p>\n

The main technical
\ncontribution of this work is an asynchronous model which forces
\neach event in the queue to be handled as soon as the machine associated
\nwith the queue is scheduled, and has a chance to de-queue the
\nevent. The system’s verifier systematically explores the state space of machines
\nand ensures that there are no unhandled events. In certain
\ncircumstances, such as processing a high priority event, or processing
\na sequence of event exchanges during a transaction, some other
\nlower priority events may have to be queued temporarily. P has features
\nsuch as deferred events for a programmer to explicitly specify
\nsuch deferrals.<\/p>\n<\/div>\n

<\/p>\n","protected":false},"excerpt":{"rendered":"

P: a domain specific language for writing asynchronous event-driven programs. This asynchronous language promotes a discipline of programming where deferrals need to be declared explicitly, and consequently leads to responsive systems. The main technical contribution of this work is an asynchronous model which forces each event in the queue to be handled as soon as […]<\/p>\n","protected":false},"featured_media":199040,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"footnotes":""},"research-area":[13561,13560,13558],"msr-video-type":[],"msr-locale":[268875],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-192295","msr-video","type-msr-video","status-publish","has-post-thumbnail","hentry","msr-research-area-algorithms","msr-research-area-programming-languages-software-engineering","msr-research-area-security-privacy-cryptography","msr-locale-en_us"],"msr_download_urls":"","msr_external_url":"https:\/\/youtu.be\/-5nD-mGQSVk","msr_secondary_video_url":"","msr_video_file":"","_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video\/192295"}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-video"}],"version-history":[{"count":0,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video\/192295\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media\/199040"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=192295"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=192295"},{"taxonomy":"msr-video-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-video-type?post=192295"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=192295"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=192295"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=192295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}