Machine Programming: Challenges and Opportunities
Also offered online
As defined by "The Three Pillars of Machine Programming", machine programming (MP) is concerned with the automation of software development. The three pillars partition MP into the following conceptual categories: (i)intention, (ii)invention, and (iii )adaptation, with data being a foundational element that is generally necessary for all pillars. While the goal of MP is complete software automation – something that is likely decades away – we believe there are many seminal research opportunities waiting to be explored today across the three pillars.
In this talk, we will cover a diverse range of topics that we believe are central to the advancement of MP, including: (i) machine programming using stochastic and approximate methods, (ii) extraction of multi-dimensional and evolving code semantics, (iii) novel structural representations of code, (iv) intentional programming and behaviors, (v) automation for software and hardware heterogeneity, and (vi) the future of data, communication, and computation for MP. For each topic, we will provide an abbreviated assessment of the strengths and weaknesses of the current state-of-the-art research.
Bio: Justin Gottschlich is a Principal Scientist and the Director and Founder of Machine Programming Research at Intel Labs. He also has an academic appointment as an Adjunct Assistant Professor at the University of Pennsylvania. Justin is the Principal Investigator of the joint Intel/NSF CAPA research center, which focuses on simplifying the software programmability challenge for heterogeneous hardware. He also co-founded the ACM SIGPLAN Machine Learning and Programming Languages workshop and currently serves as its Steering Committee Chair. He currently serves on two technical advisory boards: Prof. Armando Solar-Lezama et al.’s 2020 NSF Expeditions “Understanding the World Through Code” and a new MP startup fully funded by Intel, which is currently in stealth.
Justin has a deep desire to build bridges with thought leaders across industry and academia to research disruptive technology as a community. Recently, he has been solely focused on machine programming, which is principally about automating software development. Justin currently has active collaborations with Amazon, Brown University, Georgia Tech, Google AI, Hebrew University, IBM Research, Microsoft Research, MIT, Penn, Stanford, UC-Berkeley, UCLA, and University of Wisconsin. He received his PhD in Computer Engineering from the University of Colorado-Boulder in 2011. Justin has 30+ peer-reviewed publications, 35+ issued patents, with 100+ patents pending.