Source Code Evolution with Interactive Transformations

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=kd0wQzlbCxs



Duration: 1:10:27
95 views
0


Keeping up with changing requirements, designs, and specifications requires software developers to continuously modify the existing software code base.  Many conceptually simple modifications can have far-reaching effects, causing the editing process to become tedious and error-prone.  For example, a change to the argument signature of a widely used function might require a systematic modification of all calls to that function to add, remove, or combine argument expressions.  Although certain generic changes can be supported by a supplied set of canned transformations, tool providers cannot practicably anticipate all possible changes desired by the developers.   Our research enables developers to automate the editing tasks associated with source code changes through interactive creation and execution of formally-specified source-to-source transformations.  In addition to being used to describe systematic editing operations, program transformations can be used to generate stylized code derived from the linguistic structure, such as serialization or data structure initialization code.  When used interactively, transformation tools must meet unique challenges – they must be (1) sufficiently lightweight to be used “in-line” with other coding activities, (2) sufficiently powerful to deal with a broad range of code changing tasks, and (3) sufficiently understandable by programmers, despite exposing a non-textual linguistic representation of program source code.  Our system is designed to address those challenges.   In this talk, I will present iXj, a hybrid visual/textual notation for describing source-to-source transformations on Java programs, as well as an integrated environment for creating and executing iXj transformations.  I will discuss how we applied the programmer-oriented design methodology to create iXj, and how the iXj environment empowers the transformation developer through a number of carefully designed interactive techniques such as assisted pattern generation, partial result visualization, and exposure of the execution model.  Additionally, I will present the techniques that we are using for evaluating the expressiveness of the language and the usability of the iXj environment.




Other Videos By Microsoft Research


2016-09-05Self-Monitoring of Thread Interactions in Multithreaded Systems
2016-09-05Exploiting Redundancy for Robust Sensing
2016-09-05Multiple View Geometry and L-infinity Optimization
2016-09-05Pseudorandom Walks in Directed Graphs and the RL vs. L Question [1/3]
2016-09-05Applied Nonparametric Bayes and Statistical Machine Learning
2016-09-05Reliability Estimation during Architectural Design
2016-09-05Program Analysis with Binary Decision Diagrams
2016-09-05Making Wireless LANs Faster and Fairer
2016-09-05More Than Human : Embracing the Promise of Biological Enhancement
2016-09-05Using Open Specifications for XML Web Services to Build Maintainable & Secure Health Care Systems
2016-09-05Source Code Evolution with Interactive Transformations
2016-09-05Is Linux Maintainable?
2016-09-05Pastiche: decentralized, low-cost backup using untrusted, Internet storage
2016-09-05Measurement-driven Modeling and Design of Internet-scale Systems [1/2]
2016-09-05Distributed hash tables for large-scale cooperative applications
2016-09-05Talk 1: Convergence research in the UK; Talk 2: Artistic rendering in the convergence area
2016-09-05Secure content distribution using untrusted servers
2016-09-05802.11i Security Analysis: Can we build a secure WLAN?
2016-09-05Gadgets for good: How computer researchers can help save lives in poor countries
2016-09-05Inferring Information Status for Reference Generation in Open Domains [1/12]
2016-09-05Improving the Reliability of Commodity Operating Systems [1/2]



Tags:
microsoft research