Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Home Topics Titles Quotes Blog Featured Help
Yishai A. Feldman
IBM Research - Haifa
Haifa, Israel

Yishai Feldman joined IBM's Research lab in Haifa, Israel, in 2006, after many years in academia, at Tel Aviv University and the Interdisciplinary Center in Herzlia, where he had the rare opportunity of building the programming languages and software engineering part of the curriculum from scratch. For many years, he also consulted for a data security company, where he was responsible for writing proposals, specifications, and high-performance cryptographic code. He holds a BSc in Mathematics from Tel Aviv University and a PhD in Computer Science from the Weizmann Institute of Science.

Yishai's passion is intelligent tools for various domains, mostly focusing on software engineering, where he is his own domain expert and may get to use his own tools. He spent four years with the Programmer's Apprentice project at MIT's Artificial Intelligence Lab, which had the ambitious goal of creating an intelligent assistant for software development.

He continued following that goal for many years, developing with students and colleagues the Cake knowledge-representation and reasoning system, tools for applications such as design by contract in Java, legacy program transformation, interprocedural clone detection, refactoring for COBOL, and automatic fixing of security vulnerabilities in web applications. With one student, he also applied his skills to the creation of a system that takes a movie or animation script and chooses camera positions and shot types (close-up, medium shot, long shot, and so on) based on cinematic principles.

More recently, he developed tools in the systems domain for engineering life cycle consistency analysis and requirement formalization. The latter has led him to a fascinating investigation of the use of natural language understanding and computational semantics techniques to extract formal content from text.

Yishai has published dozens of papers, chaired various conferences and seminars, authored a dozen patents, and is the co-author of the 3rd edition of the popular Algorithmics book.

Yishai is a voracious reader and always has something to say about it, which is why he enjoys writing for Computing Reviews.


 Mathematical logic through Python
Gonczarowski Y., Nisan N., Cambridge University Press, Cambridge, UK, 2022. 284 pp.  Type: Book (1108949479), Reviews: (2 of 2)

I well remember, after many years, my surprise and awe at the beauty of the structure of my undergraduate course on logic and computability, which led students from the basics of propositional logic to Gödel’s incompleteness theorems. U...


 The kollected Kode Vicious: opinionated advice for programmers
Neville-Neil G., Addison-Wesley, Boston, MA, 2020. 311 pp.  Type: Book (978-1-367882-46-1)

Readers of Communications of the ACM and ACM Queue are surely familiar with the magazines’ “Dear Abby”-like column, written by George V. Neville-Neil, under his persona Kode Vicious, or KV. T...


The software arts
Sack W., The MIT Press, Cambridge, MA, 2019. 400 pp.  Type: Book (978-0-262039-70-3)

Is the current approach to computing education wrong? The author of this book claims it should focus more strongly on its roots in the liberal arts. The book traces these roots and examines several central tenets of computing in this l...


Reactive programming with Angular and ngrx: learn to harness the power of reactive programming with RxJS and ngrx extensions
Farhi O., Apress, New York, NY, 2017. 148 pp.  Type: Book (978-1-484226-19-3)

Many programmers may not be aware of the fact that JavaScript has a powerful functional programming subset. The use of callbacks is very common, but is only a small part of how functional techniques can improve the conciseness, readabi...


Programming Kotlin
Samuel S., Bocutiu S., Packt Publishing, Birmingham, UK, 2017. 420 pp.  Type: Book (978-1-787126-36-7)

It has been said that Java’s greatest contribution is the Java virtual machine (JVM). This is borne out by the proliferation of other JVM languages. While Java is (understandably) slow to change, other JVM languages have expe...


Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2023 ThinkLoud®
Terms of Use
| Privacy Policy