SPLASH Companion 2015 – Author Index |
Contents -
Abstracts -
Authors
|
Aotani, Tomoyuki |
SPLASH Companion '15-DEMO: "Making Live Programming Practical ..."
Making Live Programming Practical by Bridging the Gap between Trial-and-Error Development and Unit Testing
Tomoki Imai, Hidehiko Masuhara , and Tomoyuki Aotani (Tokyo Institute of Technology, Japan) Live programming environments are powerful experimental tools that enable programmers to write programs in a trial-and-error way thanks to its quick feedback. Since the feedback includes intermediate data such as a control flow and a history of variable bindings, the live programming environments integrate debugging into editing. One of the disadvantages of such interactive systems is that tests are transient. If we wrote persistent tests using an automated testing framework like JUnit, we could not fully enjoy "liveness." This is because we need to write proper parameters and expected values in advance. We develop Shiranui, a live programming environment with unit testing features. In Shiranui, the programmers can check functions' behaviors in a lively manner and then convert the results into persistent test cases. One of the features enables the programmers to make a test case from an intermediate result that are found in a debugging process. It makes constructing error-reproducing-tests easier. @InProceedings{SPLASH Companion15p11, author = {Tomoki Imai and Hidehiko Masuhara and Tomoyuki Aotani}, title = {Making Live Programming Practical by Bridging the Gap between Trial-and-Error Development and Unit Testing}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {11--12}, doi = {}, year = {2015}, } |
|
Ayrapetyan, Ruben |
SPLASH Companion '15-DEMO: "Ultra Lightweight JavaScript ..."
Ultra Lightweight JavaScript Engine for Internet of Things
Evgeny Gavrin, Sung-Jae Lee, Ruben Ayrapetyan, and Andrey Shitov (Samsung, Russia; Samsung, South Korea) The demonstration aims to present JerryScript, a JavaScript engine for the Internet of Things (IoT). This is a lightweight JavaScript engine intended to run on very constrained devices such as microcontrollers, which have only a few kilobytes of RAM available to the engine (<64 KB RAM) and constrained ROM space for the code of the engine (<200 KB ROM). The engine is ECMA-262 5.1 compliant, supports on-device compilation, execution, and provides access to peripherals from JavaScript. It powers the IoT.js project, which provides an interoperable service platform in the world of web-based IoT. This demonstration proves that usage of JavaScript on every constrained device is reasonable and profitable. @InProceedings{SPLASH Companion15p19, author = {Evgeny Gavrin and Sung-Jae Lee and Ruben Ayrapetyan and Andrey Shitov}, title = {Ultra Lightweight JavaScript Engine for Internet of Things}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {19--20}, doi = {}, year = {2015}, } |
|
Binder, Walter |
SPLASH Companion '15-DEMO: "Custom Full-Coverage Dynamic ..."
Custom Full-Coverage Dynamic Program Analysis for Android
Haiyang Sun, Yudi Zheng, Lubomír Bulej, Walter Binder , and Stephen Kell (University of Lugano, Switzerland; University of Cambridge, UK) Dynamic analysis tools often perform instrumentation via interfaces that are implementation-specific, so are not supported by alternative implementations of a given source language. The Android mobile platform is one example: its Dalvik virtual machine executes an alternative, register-based bytecode, and lacks debugging and instrumentation interfaces that Java analysis developers rely upon. In this demonstration, we present a framework for dynamic program analysis development on Android, based on the existing ShadowVM framework for Java. By re-creating the latter's abstractions in the impoverished Android environment, it offers a high-level programming interface, load-time instrumentation, full bytecode coverage, and strong isolation, thereby avoiding common problems suffered by existing dynamic analyses on Android (offline-only instrumentation, lack of support for dynamic loading, and risk of unsound results owing to gaps in coverage). We will demonstrate our system with an Android-specific network traffic analysis, deployed on both an ARM/Intel-based emulator and a real device. @InProceedings{SPLASH Companion15p7, author = {Haiyang Sun and Yudi Zheng and Lubomír Bulej and Walter Binder and Stephen Kell}, title = {Custom Full-Coverage Dynamic Program Analysis for Android}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {7--8}, doi = {}, year = {2015}, } |
|
Bulej, Lubomír |
SPLASH Companion '15-DEMO: "Custom Full-Coverage Dynamic ..."
Custom Full-Coverage Dynamic Program Analysis for Android
Haiyang Sun, Yudi Zheng, Lubomír Bulej, Walter Binder , and Stephen Kell (University of Lugano, Switzerland; University of Cambridge, UK) Dynamic analysis tools often perform instrumentation via interfaces that are implementation-specific, so are not supported by alternative implementations of a given source language. The Android mobile platform is one example: its Dalvik virtual machine executes an alternative, register-based bytecode, and lacks debugging and instrumentation interfaces that Java analysis developers rely upon. In this demonstration, we present a framework for dynamic program analysis development on Android, based on the existing ShadowVM framework for Java. By re-creating the latter's abstractions in the impoverished Android environment, it offers a high-level programming interface, load-time instrumentation, full bytecode coverage, and strong isolation, thereby avoiding common problems suffered by existing dynamic analyses on Android (offline-only instrumentation, lack of support for dynamic loading, and risk of unsound results owing to gaps in coverage). We will demonstrate our system with an Android-specific network traffic analysis, deployed on both an ARM/Intel-based emulator and a real device. @InProceedings{SPLASH Companion15p7, author = {Haiyang Sun and Yudi Zheng and Lubomír Bulej and Walter Binder and Stephen Kell}, title = {Custom Full-Coverage Dynamic Program Analysis for Android}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {7--8}, doi = {}, year = {2015}, } |
|
Byalik, Antuan |
SPLASH Companion '15-DEMO: "Heterogeneous Device Hopping: ..."
Heterogeneous Device Hopping: Bridging the Mobile Cross-Platform Gap via a Declarative Query Language
Sanchit Chadha, Antuan Byalik, and Eli Tilevich (Virginia Tech, USA) A typical mobile user employs multiple devices (e.g., a smartphone, a tablet, wearables, etc.). These devices are powered by varying mobile platforms. Enabling such cross-platform devices to seamlessly share their computational, network, and sensing resources has great potential benefit. However, sharing resources across platforms is challenging due to a number of difficulties. First, the varying communication protocols used by major mobile vendors tend to overlap minimally, making it impossible for the devices to communicate through a single protocol. Second, the host platforms' underlying architectural differences lead to drastically dissimilar application architectures and programming support. In this demo, we present Heterogeneous Device Hopping, a novel approach that systematically empowers heterogeneous mobile devices to seamlessly, reliably, and efficiently share their resources. The approach comprises 1) a declarative domain-specific language for device-to-device communication based on the RESTful architecture; 2) a powerful runtime infrastructure that supports the language's programming model. In this demo, we show how our approach can be used to implement a multi-device animation across heterogeneous nearby devices. The animation starts on one device and moves across the device boundaries, irrespective of the underlying mobile platform. @InProceedings{SPLASH Companion15p9, author = {Sanchit Chadha and Antuan Byalik and Eli Tilevich}, title = {Heterogeneous Device Hopping: Bridging the Mobile Cross-Platform Gap via a Declarative Query Language}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {9--10}, doi = {}, year = {2015}, } |
|
Chadha, Sanchit |
SPLASH Companion '15-DEMO: "Heterogeneous Device Hopping: ..."
Heterogeneous Device Hopping: Bridging the Mobile Cross-Platform Gap via a Declarative Query Language
Sanchit Chadha, Antuan Byalik, and Eli Tilevich (Virginia Tech, USA) A typical mobile user employs multiple devices (e.g., a smartphone, a tablet, wearables, etc.). These devices are powered by varying mobile platforms. Enabling such cross-platform devices to seamlessly share their computational, network, and sensing resources has great potential benefit. However, sharing resources across platforms is challenging due to a number of difficulties. First, the varying communication protocols used by major mobile vendors tend to overlap minimally, making it impossible for the devices to communicate through a single protocol. Second, the host platforms' underlying architectural differences lead to drastically dissimilar application architectures and programming support. In this demo, we present Heterogeneous Device Hopping, a novel approach that systematically empowers heterogeneous mobile devices to seamlessly, reliably, and efficiently share their resources. The approach comprises 1) a declarative domain-specific language for device-to-device communication based on the RESTful architecture; 2) a powerful runtime infrastructure that supports the language's programming model. In this demo, we show how our approach can be used to implement a multi-device animation across heterogeneous nearby devices. The animation starts on one device and moves across the device boundaries, irrespective of the underlying mobile platform. @InProceedings{SPLASH Companion15p9, author = {Sanchit Chadha and Antuan Byalik and Eli Tilevich}, title = {Heterogeneous Device Hopping: Bridging the Mobile Cross-Platform Gap via a Declarative Query Language}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {9--10}, doi = {}, year = {2015}, } |
|
Chiş, Andrei |
SPLASH Companion '15-DEMO: "GTInspector: A Moldable Domain-Aware ..."
GTInspector: A Moldable Domain-Aware Object Inspector
Andrei Chiş, Oscar Nierstrasz, Aliaksei Syrel, and Tudor Gîrba (University of Bern, Switzerland; tudorgirba.com, Switzerland) Understanding the run-time behaviour of object-oriented applications entails the comprehension of run-time objects. Traditional object inspectors favor generic views that focus on the low-level details of the state of single objects. While universally applicable, this generic approach does not take into account the varying needs of developers that could benefit from tailored views and exploration possibilities. GTInspector is a novel moldable object inspector that provides different high-level ways to visualize and explore objects, adapted to both the object and the current developer need. More information about the GTInspector can be found at: scg.unibe.ch/research/moldableinspector @InProceedings{SPLASH Companion15p15, author = {Andrei Chiş and Oscar Nierstrasz and Aliaksei Syrel and Tudor Gîrba}, title = {GTInspector: A Moldable Domain-Aware Object Inspector}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {15--16}, doi = {}, year = {2015}, } Info |
|
Dyer, Robert |
SPLASH Companion '15-DEMO: "Demonstrating Programming ..."
Demonstrating Programming Language Feature Mining using Boa
Robert Dyer, Hridesh Rajan , Tien N. Nguyen, and Hoan Anh Nguyen (Bowling Green State University, USA; Iowa State University, USA) Programming language researchers often study real-world projects to see how language features have been adopted and are being used. Typically researchers choose a small number of projects to study, due to the immense challenges associated with finding, downloading, storing, processing, and querying large amounts of data. The Boa programming language and infrastructure was designed to solve these challenges and allow researchers to focus on simply asking the right questions. Boa provides a domain-specific language to abstract details of how to mine hundreds of thousands of projects and also abstracts how to efficiently query that data. We have previously used this platform to perform a large study of the adoption of Java's language features over time. In this demonstration, we will show you how we used Boa to quickly analyze billions of AST nodes and study the adoption of Java's language features. @InProceedings{SPLASH Companion15p13, author = {Robert Dyer and Hridesh Rajan and Tien N. Nguyen and Hoan Anh Nguyen}, title = {Demonstrating Programming Language Feature Mining using Boa}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {13--14}, doi = {}, year = {2015}, } Info SPLASH Companion '15-DEMO: "Consensus-Based Mining of ..." Consensus-Based Mining of API Preconditions in Big Code Hoan Anh Nguyen, Robert Dyer, Tien N. Nguyen, and Hridesh Rajan (Iowa State University, USA; Bowling Green State University, USA) Formal specifications for APIs help developers correctly use them and enable checker tools automatically verify their uses. However, formal specifications are not always available with released APIs. In this work, we demonstrate an approach for mining API preconditions from a large-scale corpus of open-source software. It considers conditions guarding API calls in client code as potential preconditions of the corresponding APIs. Then it uses consensus among a large number of API usages to keep the ones appearing in the majority. Finally, the mined preconditions are ranked based on their frequencies and reported to users. @InProceedings{SPLASH Companion15p5, author = {Hoan Anh Nguyen and Robert Dyer and Tien N. Nguyen and Hridesh Rajan}, title = {Consensus-Based Mining of API Preconditions in Big Code}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {5--6}, doi = {}, year = {2015}, } Info |
|
Gavrin, Evgeny |
SPLASH Companion '15-DEMO: "Ultra Lightweight JavaScript ..."
Ultra Lightweight JavaScript Engine for Internet of Things
Evgeny Gavrin, Sung-Jae Lee, Ruben Ayrapetyan, and Andrey Shitov (Samsung, Russia; Samsung, South Korea) The demonstration aims to present JerryScript, a JavaScript engine for the Internet of Things (IoT). This is a lightweight JavaScript engine intended to run on very constrained devices such as microcontrollers, which have only a few kilobytes of RAM available to the engine (<64 KB RAM) and constrained ROM space for the code of the engine (<200 KB ROM). The engine is ECMA-262 5.1 compliant, supports on-device compilation, execution, and provides access to peripherals from JavaScript. It powers the IoT.js project, which provides an interoperable service platform in the world of web-based IoT. This demonstration proves that usage of JavaScript on every constrained device is reasonable and profitable. @InProceedings{SPLASH Companion15p19, author = {Evgeny Gavrin and Sung-Jae Lee and Ruben Ayrapetyan and Andrey Shitov}, title = {Ultra Lightweight JavaScript Engine for Internet of Things}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {19--20}, doi = {}, year = {2015}, } |
|
Gîrba, Tudor |
SPLASH Companion '15-DEMO: "GTInspector: A Moldable Domain-Aware ..."
GTInspector: A Moldable Domain-Aware Object Inspector
Andrei Chiş, Oscar Nierstrasz, Aliaksei Syrel, and Tudor Gîrba (University of Bern, Switzerland; tudorgirba.com, Switzerland) Understanding the run-time behaviour of object-oriented applications entails the comprehension of run-time objects. Traditional object inspectors favor generic views that focus on the low-level details of the state of single objects. While universally applicable, this generic approach does not take into account the varying needs of developers that could benefit from tailored views and exploration possibilities. GTInspector is a novel moldable object inspector that provides different high-level ways to visualize and explore objects, adapted to both the object and the current developer need. More information about the GTInspector can be found at: scg.unibe.ch/research/moldableinspector @InProceedings{SPLASH Companion15p15, author = {Andrei Chiş and Oscar Nierstrasz and Aliaksei Syrel and Tudor Gîrba}, title = {GTInspector: A Moldable Domain-Aware Object Inspector}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {15--16}, doi = {}, year = {2015}, } Info |
|
Imai, Tomoki |
SPLASH Companion '15-DEMO: "Making Live Programming Practical ..."
Making Live Programming Practical by Bridging the Gap between Trial-and-Error Development and Unit Testing
Tomoki Imai, Hidehiko Masuhara , and Tomoyuki Aotani (Tokyo Institute of Technology, Japan) Live programming environments are powerful experimental tools that enable programmers to write programs in a trial-and-error way thanks to its quick feedback. Since the feedback includes intermediate data such as a control flow and a history of variable bindings, the live programming environments integrate debugging into editing. One of the disadvantages of such interactive systems is that tests are transient. If we wrote persistent tests using an automated testing framework like JUnit, we could not fully enjoy "liveness." This is because we need to write proper parameters and expected values in advance. We develop Shiranui, a live programming environment with unit testing features. In Shiranui, the programmers can check functions' behaviors in a lively manner and then convert the results into persistent test cases. One of the features enables the programmers to make a test case from an intermediate result that are found in a debugging process. It makes constructing error-reproducing-tests easier. @InProceedings{SPLASH Companion15p11, author = {Tomoki Imai and Hidehiko Masuhara and Tomoyuki Aotani}, title = {Making Live Programming Practical by Bridging the Gap between Trial-and-Error Development and Unit Testing}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {11--12}, doi = {}, year = {2015}, } |
|
Kell, Stephen |
SPLASH Companion '15-DEMO: "Custom Full-Coverage Dynamic ..."
Custom Full-Coverage Dynamic Program Analysis for Android
Haiyang Sun, Yudi Zheng, Lubomír Bulej, Walter Binder , and Stephen Kell (University of Lugano, Switzerland; University of Cambridge, UK) Dynamic analysis tools often perform instrumentation via interfaces that are implementation-specific, so are not supported by alternative implementations of a given source language. The Android mobile platform is one example: its Dalvik virtual machine executes an alternative, register-based bytecode, and lacks debugging and instrumentation interfaces that Java analysis developers rely upon. In this demonstration, we present a framework for dynamic program analysis development on Android, based on the existing ShadowVM framework for Java. By re-creating the latter's abstractions in the impoverished Android environment, it offers a high-level programming interface, load-time instrumentation, full bytecode coverage, and strong isolation, thereby avoiding common problems suffered by existing dynamic analyses on Android (offline-only instrumentation, lack of support for dynamic loading, and risk of unsound results owing to gaps in coverage). We will demonstrate our system with an Android-specific network traffic analysis, deployed on both an ARM/Intel-based emulator and a real device. @InProceedings{SPLASH Companion15p7, author = {Haiyang Sun and Yudi Zheng and Lubomír Bulej and Walter Binder and Stephen Kell}, title = {Custom Full-Coverage Dynamic Program Analysis for Android}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {7--8}, doi = {}, year = {2015}, } |
|
Khatchadourian, Raffi |
SPLASH Companion '15-DEMO: "Fraglight: Shedding Light ..."
Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software
Raffi Khatchadourian, Awais Rashid, Hidehiko Masuhara , and Takuya Watanabe (City University of New York, USA; Lancaster University, UK; Tokyo Institute of Technology, Japan; Edirium, Japan) Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. Deciding which pointcuts have broken due to base-code changes is a daunting venture, especially in large and complex systems. We demonstrate an automated tool called FRAGLIGHT that recommends a set of pointcuts that are likely to require modification due to a particular base-code change. The underlying approach is rooted in harnessing unique and arbitrarily deep structural commonality between program elements corresponding to join points selected by a pointcut in a particular software version. Patterns describing such commonality are used to recommend pointcuts that have potentially broken with a degree of confidence as the developer is typing. Our tool is implemented as an extension to the Mylyn Eclipse IDE plug-in, which maintains focused contexts of entities relevant to a task. @InProceedings{SPLASH Companion15p17, author = {Raffi Khatchadourian and Awais Rashid and Hidehiko Masuhara and Takuya Watanabe}, title = {Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {17--18}, doi = {}, year = {2015}, } Video Info |
|
Lee, Sung-Jae |
SPLASH Companion '15-DEMO: "Ultra Lightweight JavaScript ..."
Ultra Lightweight JavaScript Engine for Internet of Things
Evgeny Gavrin, Sung-Jae Lee, Ruben Ayrapetyan, and Andrey Shitov (Samsung, Russia; Samsung, South Korea) The demonstration aims to present JerryScript, a JavaScript engine for the Internet of Things (IoT). This is a lightweight JavaScript engine intended to run on very constrained devices such as microcontrollers, which have only a few kilobytes of RAM available to the engine (<64 KB RAM) and constrained ROM space for the code of the engine (<200 KB ROM). The engine is ECMA-262 5.1 compliant, supports on-device compilation, execution, and provides access to peripherals from JavaScript. It powers the IoT.js project, which provides an interoperable service platform in the world of web-based IoT. This demonstration proves that usage of JavaScript on every constrained device is reasonable and profitable. @InProceedings{SPLASH Companion15p19, author = {Evgeny Gavrin and Sung-Jae Lee and Ruben Ayrapetyan and Andrey Shitov}, title = {Ultra Lightweight JavaScript Engine for Internet of Things}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {19--20}, doi = {}, year = {2015}, } |
|
Masuhara, Hidehiko |
SPLASH Companion '15-DEMO: "Fraglight: Shedding Light ..."
Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software
Raffi Khatchadourian, Awais Rashid, Hidehiko Masuhara , and Takuya Watanabe (City University of New York, USA; Lancaster University, UK; Tokyo Institute of Technology, Japan; Edirium, Japan) Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. Deciding which pointcuts have broken due to base-code changes is a daunting venture, especially in large and complex systems. We demonstrate an automated tool called FRAGLIGHT that recommends a set of pointcuts that are likely to require modification due to a particular base-code change. The underlying approach is rooted in harnessing unique and arbitrarily deep structural commonality between program elements corresponding to join points selected by a pointcut in a particular software version. Patterns describing such commonality are used to recommend pointcuts that have potentially broken with a degree of confidence as the developer is typing. Our tool is implemented as an extension to the Mylyn Eclipse IDE plug-in, which maintains focused contexts of entities relevant to a task. @InProceedings{SPLASH Companion15p17, author = {Raffi Khatchadourian and Awais Rashid and Hidehiko Masuhara and Takuya Watanabe}, title = {Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {17--18}, doi = {}, year = {2015}, } Video Info SPLASH Companion '15-DEMO: "Making Live Programming Practical ..." Making Live Programming Practical by Bridging the Gap between Trial-and-Error Development and Unit Testing Tomoki Imai, Hidehiko Masuhara , and Tomoyuki Aotani (Tokyo Institute of Technology, Japan) Live programming environments are powerful experimental tools that enable programmers to write programs in a trial-and-error way thanks to its quick feedback. Since the feedback includes intermediate data such as a control flow and a history of variable bindings, the live programming environments integrate debugging into editing. One of the disadvantages of such interactive systems is that tests are transient. If we wrote persistent tests using an automated testing framework like JUnit, we could not fully enjoy "liveness." This is because we need to write proper parameters and expected values in advance. We develop Shiranui, a live programming environment with unit testing features. In Shiranui, the programmers can check functions' behaviors in a lively manner and then convert the results into persistent test cases. One of the features enables the programmers to make a test case from an intermediate result that are found in a debugging process. It makes constructing error-reproducing-tests easier. @InProceedings{SPLASH Companion15p11, author = {Tomoki Imai and Hidehiko Masuhara and Tomoyuki Aotani}, title = {Making Live Programming Practical by Bridging the Gap between Trial-and-Error Development and Unit Testing}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {11--12}, doi = {}, year = {2015}, } |
|
Nguyen, Hoan Anh |
SPLASH Companion '15-DEMO: "Demonstrating Programming ..."
Demonstrating Programming Language Feature Mining using Boa
Robert Dyer, Hridesh Rajan , Tien N. Nguyen, and Hoan Anh Nguyen (Bowling Green State University, USA; Iowa State University, USA) Programming language researchers often study real-world projects to see how language features have been adopted and are being used. Typically researchers choose a small number of projects to study, due to the immense challenges associated with finding, downloading, storing, processing, and querying large amounts of data. The Boa programming language and infrastructure was designed to solve these challenges and allow researchers to focus on simply asking the right questions. Boa provides a domain-specific language to abstract details of how to mine hundreds of thousands of projects and also abstracts how to efficiently query that data. We have previously used this platform to perform a large study of the adoption of Java's language features over time. In this demonstration, we will show you how we used Boa to quickly analyze billions of AST nodes and study the adoption of Java's language features. @InProceedings{SPLASH Companion15p13, author = {Robert Dyer and Hridesh Rajan and Tien N. Nguyen and Hoan Anh Nguyen}, title = {Demonstrating Programming Language Feature Mining using Boa}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {13--14}, doi = {}, year = {2015}, } Info SPLASH Companion '15-DEMO: "Consensus-Based Mining of ..." Consensus-Based Mining of API Preconditions in Big Code Hoan Anh Nguyen, Robert Dyer, Tien N. Nguyen, and Hridesh Rajan (Iowa State University, USA; Bowling Green State University, USA) Formal specifications for APIs help developers correctly use them and enable checker tools automatically verify their uses. However, formal specifications are not always available with released APIs. In this work, we demonstrate an approach for mining API preconditions from a large-scale corpus of open-source software. It considers conditions guarding API calls in client code as potential preconditions of the corresponding APIs. Then it uses consensus among a large number of API usages to keep the ones appearing in the majority. Finally, the mined preconditions are ranked based on their frequencies and reported to users. @InProceedings{SPLASH Companion15p5, author = {Hoan Anh Nguyen and Robert Dyer and Tien N. Nguyen and Hridesh Rajan}, title = {Consensus-Based Mining of API Preconditions in Big Code}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {5--6}, doi = {}, year = {2015}, } Info |
|
Nguyen, Tien N. |
SPLASH Companion '15-DEMO: "Demonstrating Programming ..."
Demonstrating Programming Language Feature Mining using Boa
Robert Dyer, Hridesh Rajan , Tien N. Nguyen, and Hoan Anh Nguyen (Bowling Green State University, USA; Iowa State University, USA) Programming language researchers often study real-world projects to see how language features have been adopted and are being used. Typically researchers choose a small number of projects to study, due to the immense challenges associated with finding, downloading, storing, processing, and querying large amounts of data. The Boa programming language and infrastructure was designed to solve these challenges and allow researchers to focus on simply asking the right questions. Boa provides a domain-specific language to abstract details of how to mine hundreds of thousands of projects and also abstracts how to efficiently query that data. We have previously used this platform to perform a large study of the adoption of Java's language features over time. In this demonstration, we will show you how we used Boa to quickly analyze billions of AST nodes and study the adoption of Java's language features. @InProceedings{SPLASH Companion15p13, author = {Robert Dyer and Hridesh Rajan and Tien N. Nguyen and Hoan Anh Nguyen}, title = {Demonstrating Programming Language Feature Mining using Boa}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {13--14}, doi = {}, year = {2015}, } Info SPLASH Companion '15-DEMO: "Consensus-Based Mining of ..." Consensus-Based Mining of API Preconditions in Big Code Hoan Anh Nguyen, Robert Dyer, Tien N. Nguyen, and Hridesh Rajan (Iowa State University, USA; Bowling Green State University, USA) Formal specifications for APIs help developers correctly use them and enable checker tools automatically verify their uses. However, formal specifications are not always available with released APIs. In this work, we demonstrate an approach for mining API preconditions from a large-scale corpus of open-source software. It considers conditions guarding API calls in client code as potential preconditions of the corresponding APIs. Then it uses consensus among a large number of API usages to keep the ones appearing in the majority. Finally, the mined preconditions are ranked based on their frequencies and reported to users. @InProceedings{SPLASH Companion15p5, author = {Hoan Anh Nguyen and Robert Dyer and Tien N. Nguyen and Hridesh Rajan}, title = {Consensus-Based Mining of API Preconditions in Big Code}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {5--6}, doi = {}, year = {2015}, } Info |
|
Nierstrasz, Oscar |
SPLASH Companion '15-DEMO: "GTInspector: A Moldable Domain-Aware ..."
GTInspector: A Moldable Domain-Aware Object Inspector
Andrei Chiş, Oscar Nierstrasz, Aliaksei Syrel, and Tudor Gîrba (University of Bern, Switzerland; tudorgirba.com, Switzerland) Understanding the run-time behaviour of object-oriented applications entails the comprehension of run-time objects. Traditional object inspectors favor generic views that focus on the low-level details of the state of single objects. While universally applicable, this generic approach does not take into account the varying needs of developers that could benefit from tailored views and exploration possibilities. GTInspector is a novel moldable object inspector that provides different high-level ways to visualize and explore objects, adapted to both the object and the current developer need. More information about the GTInspector can be found at: scg.unibe.ch/research/moldableinspector @InProceedings{SPLASH Companion15p15, author = {Andrei Chiş and Oscar Nierstrasz and Aliaksei Syrel and Tudor Gîrba}, title = {GTInspector: A Moldable Domain-Aware Object Inspector}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {15--16}, doi = {}, year = {2015}, } Info |
|
Rajan, Hridesh |
SPLASH Companion '15-DEMO: "Demonstrating Programming ..."
Demonstrating Programming Language Feature Mining using Boa
Robert Dyer, Hridesh Rajan , Tien N. Nguyen, and Hoan Anh Nguyen (Bowling Green State University, USA; Iowa State University, USA) Programming language researchers often study real-world projects to see how language features have been adopted and are being used. Typically researchers choose a small number of projects to study, due to the immense challenges associated with finding, downloading, storing, processing, and querying large amounts of data. The Boa programming language and infrastructure was designed to solve these challenges and allow researchers to focus on simply asking the right questions. Boa provides a domain-specific language to abstract details of how to mine hundreds of thousands of projects and also abstracts how to efficiently query that data. We have previously used this platform to perform a large study of the adoption of Java's language features over time. In this demonstration, we will show you how we used Boa to quickly analyze billions of AST nodes and study the adoption of Java's language features. @InProceedings{SPLASH Companion15p13, author = {Robert Dyer and Hridesh Rajan and Tien N. Nguyen and Hoan Anh Nguyen}, title = {Demonstrating Programming Language Feature Mining using Boa}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {13--14}, doi = {}, year = {2015}, } Info SPLASH Companion '15-DEMO: "Consensus-Based Mining of ..." Consensus-Based Mining of API Preconditions in Big Code Hoan Anh Nguyen, Robert Dyer, Tien N. Nguyen, and Hridesh Rajan (Iowa State University, USA; Bowling Green State University, USA) Formal specifications for APIs help developers correctly use them and enable checker tools automatically verify their uses. However, formal specifications are not always available with released APIs. In this work, we demonstrate an approach for mining API preconditions from a large-scale corpus of open-source software. It considers conditions guarding API calls in client code as potential preconditions of the corresponding APIs. Then it uses consensus among a large number of API usages to keep the ones appearing in the majority. Finally, the mined preconditions are ranked based on their frequencies and reported to users. @InProceedings{SPLASH Companion15p5, author = {Hoan Anh Nguyen and Robert Dyer and Tien N. Nguyen and Hridesh Rajan}, title = {Consensus-Based Mining of API Preconditions in Big Code}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {5--6}, doi = {}, year = {2015}, } Info |
|
Rashid, Awais |
SPLASH Companion '15-DEMO: "Fraglight: Shedding Light ..."
Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software
Raffi Khatchadourian, Awais Rashid, Hidehiko Masuhara , and Takuya Watanabe (City University of New York, USA; Lancaster University, UK; Tokyo Institute of Technology, Japan; Edirium, Japan) Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. Deciding which pointcuts have broken due to base-code changes is a daunting venture, especially in large and complex systems. We demonstrate an automated tool called FRAGLIGHT that recommends a set of pointcuts that are likely to require modification due to a particular base-code change. The underlying approach is rooted in harnessing unique and arbitrarily deep structural commonality between program elements corresponding to join points selected by a pointcut in a particular software version. Patterns describing such commonality are used to recommend pointcuts that have potentially broken with a degree of confidence as the developer is typing. Our tool is implemented as an extension to the Mylyn Eclipse IDE plug-in, which maintains focused contexts of entities relevant to a task. @InProceedings{SPLASH Companion15p17, author = {Raffi Khatchadourian and Awais Rashid and Hidehiko Masuhara and Takuya Watanabe}, title = {Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {17--18}, doi = {}, year = {2015}, } Video Info |
|
Shitov, Andrey |
SPLASH Companion '15-DEMO: "Ultra Lightweight JavaScript ..."
Ultra Lightweight JavaScript Engine for Internet of Things
Evgeny Gavrin, Sung-Jae Lee, Ruben Ayrapetyan, and Andrey Shitov (Samsung, Russia; Samsung, South Korea) The demonstration aims to present JerryScript, a JavaScript engine for the Internet of Things (IoT). This is a lightweight JavaScript engine intended to run on very constrained devices such as microcontrollers, which have only a few kilobytes of RAM available to the engine (<64 KB RAM) and constrained ROM space for the code of the engine (<200 KB ROM). The engine is ECMA-262 5.1 compliant, supports on-device compilation, execution, and provides access to peripherals from JavaScript. It powers the IoT.js project, which provides an interoperable service platform in the world of web-based IoT. This demonstration proves that usage of JavaScript on every constrained device is reasonable and profitable. @InProceedings{SPLASH Companion15p19, author = {Evgeny Gavrin and Sung-Jae Lee and Ruben Ayrapetyan and Andrey Shitov}, title = {Ultra Lightweight JavaScript Engine for Internet of Things}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {19--20}, doi = {}, year = {2015}, } |
|
Sun, Haiyang |
SPLASH Companion '15-DEMO: "Custom Full-Coverage Dynamic ..."
Custom Full-Coverage Dynamic Program Analysis for Android
Haiyang Sun, Yudi Zheng, Lubomír Bulej, Walter Binder , and Stephen Kell (University of Lugano, Switzerland; University of Cambridge, UK) Dynamic analysis tools often perform instrumentation via interfaces that are implementation-specific, so are not supported by alternative implementations of a given source language. The Android mobile platform is one example: its Dalvik virtual machine executes an alternative, register-based bytecode, and lacks debugging and instrumentation interfaces that Java analysis developers rely upon. In this demonstration, we present a framework for dynamic program analysis development on Android, based on the existing ShadowVM framework for Java. By re-creating the latter's abstractions in the impoverished Android environment, it offers a high-level programming interface, load-time instrumentation, full bytecode coverage, and strong isolation, thereby avoiding common problems suffered by existing dynamic analyses on Android (offline-only instrumentation, lack of support for dynamic loading, and risk of unsound results owing to gaps in coverage). We will demonstrate our system with an Android-specific network traffic analysis, deployed on both an ARM/Intel-based emulator and a real device. @InProceedings{SPLASH Companion15p7, author = {Haiyang Sun and Yudi Zheng and Lubomír Bulej and Walter Binder and Stephen Kell}, title = {Custom Full-Coverage Dynamic Program Analysis for Android}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {7--8}, doi = {}, year = {2015}, } |
|
Syrel, Aliaksei |
SPLASH Companion '15-DEMO: "GTInspector: A Moldable Domain-Aware ..."
GTInspector: A Moldable Domain-Aware Object Inspector
Andrei Chiş, Oscar Nierstrasz, Aliaksei Syrel, and Tudor Gîrba (University of Bern, Switzerland; tudorgirba.com, Switzerland) Understanding the run-time behaviour of object-oriented applications entails the comprehension of run-time objects. Traditional object inspectors favor generic views that focus on the low-level details of the state of single objects. While universally applicable, this generic approach does not take into account the varying needs of developers that could benefit from tailored views and exploration possibilities. GTInspector is a novel moldable object inspector that provides different high-level ways to visualize and explore objects, adapted to both the object and the current developer need. More information about the GTInspector can be found at: scg.unibe.ch/research/moldableinspector @InProceedings{SPLASH Companion15p15, author = {Andrei Chiş and Oscar Nierstrasz and Aliaksei Syrel and Tudor Gîrba}, title = {GTInspector: A Moldable Domain-Aware Object Inspector}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {15--16}, doi = {}, year = {2015}, } Info |
|
Tilevich, Eli |
SPLASH Companion '15-DEMO: "Heterogeneous Device Hopping: ..."
Heterogeneous Device Hopping: Bridging the Mobile Cross-Platform Gap via a Declarative Query Language
Sanchit Chadha, Antuan Byalik, and Eli Tilevich (Virginia Tech, USA) A typical mobile user employs multiple devices (e.g., a smartphone, a tablet, wearables, etc.). These devices are powered by varying mobile platforms. Enabling such cross-platform devices to seamlessly share their computational, network, and sensing resources has great potential benefit. However, sharing resources across platforms is challenging due to a number of difficulties. First, the varying communication protocols used by major mobile vendors tend to overlap minimally, making it impossible for the devices to communicate through a single protocol. Second, the host platforms' underlying architectural differences lead to drastically dissimilar application architectures and programming support. In this demo, we present Heterogeneous Device Hopping, a novel approach that systematically empowers heterogeneous mobile devices to seamlessly, reliably, and efficiently share their resources. The approach comprises 1) a declarative domain-specific language for device-to-device communication based on the RESTful architecture; 2) a powerful runtime infrastructure that supports the language's programming model. In this demo, we show how our approach can be used to implement a multi-device animation across heterogeneous nearby devices. The animation starts on one device and moves across the device boundaries, irrespective of the underlying mobile platform. @InProceedings{SPLASH Companion15p9, author = {Sanchit Chadha and Antuan Byalik and Eli Tilevich}, title = {Heterogeneous Device Hopping: Bridging the Mobile Cross-Platform Gap via a Declarative Query Language}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {9--10}, doi = {}, year = {2015}, } |
|
Watanabe, Takuya |
SPLASH Companion '15-DEMO: "Fraglight: Shedding Light ..."
Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software
Raffi Khatchadourian, Awais Rashid, Hidehiko Masuhara , and Takuya Watanabe (City University of New York, USA; Lancaster University, UK; Tokyo Institute of Technology, Japan; Edirium, Japan) Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. Deciding which pointcuts have broken due to base-code changes is a daunting venture, especially in large and complex systems. We demonstrate an automated tool called FRAGLIGHT that recommends a set of pointcuts that are likely to require modification due to a particular base-code change. The underlying approach is rooted in harnessing unique and arbitrarily deep structural commonality between program elements corresponding to join points selected by a pointcut in a particular software version. Patterns describing such commonality are used to recommend pointcuts that have potentially broken with a degree of confidence as the developer is typing. Our tool is implemented as an extension to the Mylyn Eclipse IDE plug-in, which maintains focused contexts of entities relevant to a task. @InProceedings{SPLASH Companion15p17, author = {Raffi Khatchadourian and Awais Rashid and Hidehiko Masuhara and Takuya Watanabe}, title = {Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {17--18}, doi = {}, year = {2015}, } Video Info |
|
Zheng, Yudi |
SPLASH Companion '15-DEMO: "Custom Full-Coverage Dynamic ..."
Custom Full-Coverage Dynamic Program Analysis for Android
Haiyang Sun, Yudi Zheng, Lubomír Bulej, Walter Binder , and Stephen Kell (University of Lugano, Switzerland; University of Cambridge, UK) Dynamic analysis tools often perform instrumentation via interfaces that are implementation-specific, so are not supported by alternative implementations of a given source language. The Android mobile platform is one example: its Dalvik virtual machine executes an alternative, register-based bytecode, and lacks debugging and instrumentation interfaces that Java analysis developers rely upon. In this demonstration, we present a framework for dynamic program analysis development on Android, based on the existing ShadowVM framework for Java. By re-creating the latter's abstractions in the impoverished Android environment, it offers a high-level programming interface, load-time instrumentation, full bytecode coverage, and strong isolation, thereby avoiding common problems suffered by existing dynamic analyses on Android (offline-only instrumentation, lack of support for dynamic loading, and risk of unsound results owing to gaps in coverage). We will demonstrate our system with an Android-specific network traffic analysis, deployed on both an ARM/Intel-based emulator and a real device. @InProceedings{SPLASH Companion15p7, author = {Haiyang Sun and Yudi Zheng and Lubomír Bulej and Walter Binder and Stephen Kell}, title = {Custom Full-Coverage Dynamic Program Analysis for Android}, booktitle = {Proc.\ SPLASH Companion}, publisher = {ACM}, pages = {7--8}, doi = {}, year = {2015}, } |
26 authors
proc time: 1.08