{"id":102,"date":"2013-06-19T09:48:38","date_gmt":"2013-06-19T08:48:38","guid":{"rendered":"http:\/\/sites.google.com\/feeds\/content\/site\/tcsunica\/2653535736840822411"},"modified":"2013-11-22T15:35:40","modified_gmt":"2013-11-22T14:35:40","slug":"phd-course-reversible-computing","status":"publish","type":"post","link":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/2013\/06\/19\/phd-course-reversible-computing\/","title":{"rendered":"PhD course: Reversible Computing"},"content":{"rendered":"<div><table cellspacing=\"0\" class=\"sites-layout-name-one-column sites-layout-hbox\"><tbody><tr><td class=\"sites-layout-tile sites-tile-name-content-1\"><div dir=\"ltr\"><div><div><font size=\"2\">Upcoming PhD course<br><\/font><\/div><div style=\"text-align:center\"><br><\/div><div><b>Reversible Computing<\/b><br><\/div><div style=\"text-align:center\"><br><\/div><div><font size=\"2\">July 15-19, 2013<br><\/font>\r\n<\/div>\r\n<div><font size=\"2\" style=\"font-family:verdana,sans-serif\">Dipartimento di Matematica e Informatica - Via Ospedale 72, Cagliari<\/font><br><\/div><br><div style=\"text-align:center\"><b><font size=\"2\">Ivan Lanese<\/font><\/b><br><\/div><\/div><div style=\"text-align:center\"><span><font size=\"2\">Universit\u00e0 di Bologna &amp; INRIA FOCUS Team<\/font><\/span><br><\/div><div><br><span><font size=\"2\"><b>Abstract.<\/b> Reversible computing emerges spontaneously in many areas, such as\u00a0\r\nquantum computing or biological modeling. Also, reversible computing\r\n<br>allows for recoverability: when an error occurs reversibility allows\r\none to go back to a past state and try again. Reversibility is well\u00a0\r\nunderstood in a sequential setting: to reverse a computation one has\u00a0\r\nto recursively undo the last step. This is not possible in a\r\nconcurrent scenario, since it may not be clear which the last performed action is.<br><br>We will study reversibility for concurrent interacting systems. In particular, we consider causal consistent reversibility, where only actions which have produced no consequences can be undone. We consider uncontrolled forms of reversibility first. However, uncontrolled\u00a0\r\nreversibility is not suitable for programming safe applications, since\u00a0\r\nbackward steps should be triggered only when an error state is\r\nreached. To this end we define a rollback operator allowing the\u00a0\r\nprogrammer to control when backward steps are performed. We also show\r\nthat specifying alternatives is useful to avoid looping behaviors. We\u00a0\r\nmake our intuitions formal using reversible process calculi.\u00a0 Finally, we discuss applications of our theory to transactions and to\r\ndebugging.<\/font><\/span><font size=\"2\"><br><br><span>The\r\n\r\n official presentation of the course will be on July 15 (Monday) in \r\nAula C, at 10:00. The schedule of the course will be \r\nfixed during this \r\nmeeting.<\/span><br><span><br><b>Course schedule.<\/b><br><\/span><\/font><ul><li><font size=\"2\"><span>Monday 15, 10.00-12.00 Aula F [<b><a href=\"http:\/\/tcs.unica.it\/rever1.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<br><\/span><\/font><\/li><li><font size=\"2\"><span>Tuesday 16, 10.00-12.00 Aula F [<b><a href=\"http:\/\/tcs.unica.it\/rever2.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<br><\/span><\/font><\/li><li><font size=\"2\"><span>Wednesday 17, 10.00-12.00 Aula C [<b><a href=\"http:\/\/tcs.unica.it\/rever3.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<\/span><\/font><\/li><li><font size=\"2\"><span>Thursday <\/span><\/font><font size=\"2\"><span>18, 10.00-12.00 Aula C [<b><a href=\"http:\/\/tcs.unica.it\/rever4.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<\/span><\/font><\/li><li><font size=\"2\"><span>Friday 19, 10.00-12.00 Aula C [<b><a href=\"http:\/\/tcs.unica.it\/rever5.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<\/span><\/font><\/li><\/ul><font size=\"2\"><span><br>The course has been funded by the PhD Course in Computer Science of the University of Cagliari.<\/span><br><\/font><\/div><\/div><\/td><\/tr><\/tbody><\/table><\/div>","protected":false},"excerpt":{"rendered":"<table cellspacing=\"0\">\n<tbody>\n<tr>\n<td>\n<div dir=\"ltr\">\n<div>\n<div>Upcoming PhD course<\/div>\n<div><\/div>\n<div><b>Reversible Computing<\/b><\/div>\n<div><\/div>\n<div>July 15-19, 2013\n<\/div>\n<div>Dipartimento di Matematica e Informatica &#8211; Via Ospedale 72, Cagliari<\/div>\n<p><\/p>\n<div><b>Ivan Lanese<\/b><\/div>\n<\/div>\n<div><span>Universit&agrave; di Bologna &amp; INRIA FOCUS Team<\/span><\/div>\n<div><span><b>Abstract.<\/b> Reversible computing emerges spontaneously in many areas, such as&nbsp;<br \/>\nquantum computing or biological modeling. Also, reversible computing<br \/>\n<br \/>allows for recoverability: when an error occurs reversibility allows<br \/>\none to go back to a past state and try again. Reversibility is well&nbsp;<br \/>\nunderstood in a sequential setting: to reverse a computation one has&nbsp;<br \/>\nto recursively undo the last step. This is not possible in a<br \/>\nconcurrent scenario, since it may not be clear which the last performed action is.<\/p>\n<p>We will study reversibility for concurrent interacting systems. In particular, we consider causal consistent reversibility, where only actions which have produced no consequences can be undone. We consider uncontrolled forms of reversibility first. However, uncontrolled&nbsp;<br \/>\nreversibility is not suitable for programming safe applications, since&nbsp;<br \/>\nbackward steps should be triggered only when an error state is<br \/>\nreached. To this end we define a rollback operator allowing the&nbsp;<br \/>\nprogrammer to control when backward steps are performed. We also show<br \/>\nthat specifying alternatives is useful to avoid looping behaviors. We&nbsp;<br \/>\nmake our intuitions formal using reversible process calculi.&nbsp; Finally, we discuss applications of our theory to transactions and to<br \/>\ndebugging.<\/span><\/p>\n<p><span>The<\/p>\n<p> official presentation of the course will be on July 15 (Monday) in<br \/>\nAula C, at 10:00. The schedule of the course will be<br \/>\nfixed during this<br \/>\nmeeting.<\/span><br \/><span><br \/><b>Course schedule.<\/b><br \/><\/span><\/p>\n<ul>\n<li><span>Monday 15, 10.00-12.00 Aula F [<b><a href=\"http:\/\/tcs.unica.it\/rever1.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<br \/><\/span><\/li>\n<li><span>Tuesday 16, 10.00-12.00 Aula F [<b><a href=\"http:\/\/tcs.unica.it\/rever2.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<br \/><\/span><\/li>\n<li><span>Wednesday 17, 10.00-12.00 Aula C [<b><a href=\"http:\/\/tcs.unica.it\/rever3.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<\/span><\/li>\n<li><span>Thursday <\/span><span>18, 10.00-12.00 Aula C [<b><a href=\"http:\/\/tcs.unica.it\/rever4.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<\/span><\/li>\n<li><span>Friday 19, 10.00-12.00 Aula C [<b><a href=\"http:\/\/tcs.unica.it\/rever5.pdf?attredirects=0&amp;d=1\">slides<\/a><\/b>]<\/span><\/li>\n<\/ul>\n<p><span><br \/>The course has been funded by the PhD Course in Computer Science of the University of Cagliari.<\/span><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"author":1325,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-102","post","type-post","status-publish","format-standard","hentry","category-events","category-10-id","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/posts\/102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/users\/1325"}],"replies":[{"embeddable":true,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":2,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/posts\/102\/revisions"}],"predecessor-version":[{"id":133,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/posts\/102\/revisions\/133"}],"wp:attachment":[{"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/media?parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/categories?post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dottorati.unica.it\/matematicaeinformatica\/wp-json\/wp\/v2\/tags?post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}