Joseph (Yossi) Gil is an Associate Professor at the Faculty of Computer Science of the Technion, Israel Institute of Technology. His publications were in diverse areas including distributed systems, image processing, algorithms, PRAMs and parallel computing, databases, concepts of object oriented programming, numerical algorithms, … His B.Sc. (in physics summa cum laude), M.Sc. (computer science, summa cum laude) and Ph.D. were awarded by the Hebrew University in Jerusalem. Theoretical computer science, especially lower bounds and algorithms were his academic nursery, but he is also very keen on programming in various programming languages. His current research interest is in type systems and applications of machine learning to software engineering and numerical algorithms.
Join us on the 27th of April, at 14:30, in room B016 FEUP, for the presentation of “Fluent API: A software engineering technique with type theoretical implications”.
A chain of method calls in an OO language, such as a.b().c(d).e(f,g).h().i()… 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?
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.