{"id":11260,"date":"2022-04-26T08:23:47","date_gmt":"2022-04-26T08:23:47","guid":{"rendered":"https:\/\/dei.fe.up.pt\/dev\/?p=11260"},"modified":"2022-05-05T09:25:36","modified_gmt":"2022-05-05T09:25:36","slug":"dei-talks-fluent-api-a-software-engineering-technique-with-type-theoretical-implications-por-yossi-gil","status":"publish","type":"post","link":"https:\/\/dei.fe.up.pt\/dev\/dei-talks-fluent-api-a-software-engineering-technique-with-type-theoretical-implications-por-yossi-gil\/","title":{"rendered":"DEI Talks | Fluent API: A software engineering technique with type theoretical implications por Yossi Gil"},"content":{"rendered":"<p><a href=\"https:\/\/yogi.cswp.cs.technion.ac.il\/\"><b><span lang=\"EN-US\">Joseph (Yossi) Gil<\/span><\/b><\/a><span lang=\"EN-US\"> \u00e9 Professor Associado da Faculty of Computer Science of the Technion, <b>Israel Institute of Technology<\/b>. <\/span>As suas publica\u00e7\u00f5es foram em diversas \u00e1reas incluindo sistemas distribu\u00eddos, processamento de imagem, algoritmos, PRAMs e computa\u00e7\u00e3o paralela, bases de dados, conceitos de programa\u00e7\u00e3o orientada para objetos, algoritmos num\u00e9ricos,\u2026 Os seus B.Sc. (in physics summa cum laude), M.Sc. (computer science, summa cum laude) e Ph.D. foram concedidos pela Hebrew University in Jerusalem. A inform\u00e1tica te\u00f3rica, especialmente os <i>lower bounds<\/i> e os algoritmos, foram o seu ber\u00e7o acad\u00e9mico contudo tem tamb\u00e9m grande interesse pela programa\u00e7\u00e3o em v\u00e1rias linguagens. O seu t\u00f3pico de investiga\u00e7\u00e3o atual \u00e9 em sistemas e aplica\u00e7\u00f5es de <i>machine learning<\/i> para engenharia de software e algoritmos num\u00e9ricos.<\/p>\n<p>Junte-se a n\u00f3s no dia <b>27 de Abril<\/b>, \u00e0s <strong>14:30<\/strong>, na sala <strong>B016<\/strong> da FEUP, para a apresenta\u00e7\u00e3o de \u201c<b>Fluent API: A software engineering technique with type theoretical implications<\/b>\u201d.<\/p>\n<p><strong><span lang=\"EN-US\">Abstract:<\/span><\/strong><\/p>\n<p><span lang=\"EN-US\">&nbsp;<\/span><span lang=\"EN-US\">A chain of method calls in an OO language, such as a.b().c(d).e(f,g).h().i()&#8230; is what the industry calls fluent API. In such a chain, the return value of all but the last invocation, is the receiver of the next invocation. The technique is advertised and used as a powerful software engineering tool. The technique is also used to embed domain specific languages (DSLs), such as SQL, in a host general programming language, such as Java. In this talk, I will present the technique, and the fundamental theoretical questions: How should one design the classes and methods so that fluent API works the way it is supposed to? What is required from the type system of the host programming language to admit certain chains, and forbid others?<\/span><\/p>\n<p><span lang=\"EN-US\">The presentation will survey a series of publications showing deep correspondence between type systems and the theory of automata: finite state automata, pushdown automata, etc.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Joseph (Yossi) Gil \u00e9 Professor Associado da Faculty of Computer Science of the Technion, Israel Institute of Technology. As suas publica\u00e7\u00f5es foram em diversas \u00e1reas incluindo sistemas distribu\u00eddos, processamento de imagem, algoritmos, PRAMs e computa\u00e7\u00e3o paralela, bases de dados, conceitos de programa\u00e7\u00e3o orientada para objetos, algoritmos num\u00e9ricos,\u2026 Os seus B.Sc. (in physics summa cum laude), [&hellip;]<\/p>\n","protected":false},"author":60,"featured_media":11261,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[114,22,20],"tags":[],"class_list":["post-11260","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dei-talks","category-eventos","category-noticias"],"_links":{"self":[{"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/posts\/11260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/users\/60"}],"replies":[{"embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/comments?post=11260"}],"version-history":[{"count":0,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/posts\/11260\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/media\/11261"}],"wp:attachment":[{"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/media?parent=11260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/categories?post=11260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dei.fe.up.pt\/dev\/wp-json\/wp\/v2\/tags?post=11260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}