{"id":323543,"date":"2017-05-02T03:55:00","date_gmt":"2017-05-02T10:55:00","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-project&p=323543"},"modified":"2022-03-03T01:28:05","modified_gmt":"2022-03-03T09:28:05","slug":"deep-program-understanding","status":"publish","type":"msr-project","link":"https:\/\/www.microsoft.com\/en-us\/research\/project\/deep-program-understanding\/","title":{"rendered":"Deep Program Understanding"},"content":{"rendered":"
\n\t
\n\t\t
\n\t\t\t\"\"\t\t<\/div>\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n

Deep Program Understanding<\/h1>\n\n\n\n

Teaching machines to understand complex algorithms<\/p>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/section>\n\n\n\n\n\n

The Deep Program Understanding project aims to teach machines to understand complex algorithms, combining methods from the programming languages, software engineering and the machine learning communities.<\/p>\n\n\n\n

We have open-sourced many of our work and implementations, including utilities and project-specific sample code. See our Publications<\/a> and Downloads<\/a> tabs for more details.<\/p>\n\n\n\n

Learning to understand programs<\/h3>\n\n\n\n

Building \u201csmart\u201d software engineering tools requires learning to analyse and understand existing code and related artefacts such as documentation and online resources (e.g., StackOverflow). One of our primary concerns is the integration of standard static analysis methods with machine learning methods to create learning-based program analyses that can be used within software engineering tools. Such tools can then be used to find bugs, automatically retrieve or produce relevant documentation, or verify programs.<\/p>\n\n\n\n

Highlighted publications<\/h4>\n\n\n\n