Thesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2016.Cataloged from PDF version of thesis.Includes bibliographical references (pages 116-121).In this thesis, we introduce an architecture for programming productivity tools that relies on a database of execution traces. Our database enables a novel user interaction model for a programmer assistant based on short demonstrations of framework usages in applications. By matching the demonstration traces against the complete traces in the database, our system infers the code snippets for the demonstrated feature including the missing set-up steps. We develop techniques for an interactive trace matching process, and evaluate them on ...
Profiling mechanisms are an important dynamic analysis approach for source code learners and maintai...
peer-reviewedComprehending and maintaining software is one of the core software engineering activit...
Tracing is a tool frequently used in the debugging and optimization of software. While there exist d...
Paaßen B, Jensen J, Hammer B. Execution Traces as a Powerful Data Representation for Intelligent Tut...
Understanding a large execution trace is not easy task due to the size and complexity of typical tra...
Accepted version for publication in IEEE Transactions on Software Engineering. Software maintenance ...
The suggestions made by current IDE’s code completion features are based exclusively on static prope...
The suggestions made by current IDE's code completion features are based exclusively on static type ...
The need for increased computing capability and more diverse hardware with its evermore complex topo...
Software maintenance activities require a sufficient level of understanding of the software at hand ...
The need for increased computing capability and more diverse hardware with its evermore complex topo...
Programming by demonstration is an end-user programming technique that allows people to create progr...
Program synthesis is a technique for automatically deriving programs from specifications of their be...
Understanding how a program execution proceeds often helps debug the program. An execution can be se...
Performance problems observed in production environments that have their origin in program code are ...
Profiling mechanisms are an important dynamic analysis approach for source code learners and maintai...
peer-reviewedComprehending and maintaining software is one of the core software engineering activit...
Tracing is a tool frequently used in the debugging and optimization of software. While there exist d...
Paaßen B, Jensen J, Hammer B. Execution Traces as a Powerful Data Representation for Intelligent Tut...
Understanding a large execution trace is not easy task due to the size and complexity of typical tra...
Accepted version for publication in IEEE Transactions on Software Engineering. Software maintenance ...
The suggestions made by current IDE’s code completion features are based exclusively on static prope...
The suggestions made by current IDE's code completion features are based exclusively on static type ...
The need for increased computing capability and more diverse hardware with its evermore complex topo...
Software maintenance activities require a sufficient level of understanding of the software at hand ...
The need for increased computing capability and more diverse hardware with its evermore complex topo...
Programming by demonstration is an end-user programming technique that allows people to create progr...
Program synthesis is a technique for automatically deriving programs from specifications of their be...
Understanding how a program execution proceeds often helps debug the program. An execution can be se...
Performance problems observed in production environments that have their origin in program code are ...
Profiling mechanisms are an important dynamic analysis approach for source code learners and maintai...
peer-reviewedComprehending and maintaining software is one of the core software engineering activit...
Tracing is a tool frequently used in the debugging and optimization of software. While there exist d...