scispace - formally typeset
Search or ask a question

Showing papers by "Don Batory published in 2014"


Proceedings ArticleDOI
15 Sep 2014
TL;DR: A scientific justification for Dense Linear Algebra heuristics is provided by showing that only a few decisions are critical to performance; once these decisions are made, the die is cast and only relatively minor performance improvements are possible.
Abstract: How do experts navigate the huge space of implementations for a given specification to find an efficient choice with minimal searching? Answer: They use "heuristics" -- rules of thumb that are more street wisdom than scientific fact. We provide a scientific justification for Dense Linear Algebra (DLA) heuristics by showing that only a few decisions (out of many possible) are critical to performance; once these decisions are made, the die is cast and only relatively minor performance improvements are possible. The (implementation x performance) space of DLA is stair-stepped. Each stair is a set of implementations with very similar performance and (surprisingly) share key design decision(s). High-performance stairs align with heuristics that prescribe certain decisions in a particular context. Stairs also tell us how to tailor the search engine of a DLA code generator to reduce the time it needs to find implementations that are as good or better than those crafted by experts.

7 citations


01 Jan 2014
TL;DR: Reflective Refactoring (R 2) is presented, a Java package to automate the introduction of classical design patterns (Visitor, Abstract Factory, etc), their inverses and variants, and why refactoring speed and correctness are critical issues for scripting in next-generation refactororing engines.
Abstract: Introducing design patterns into a program by hand is tedious and error-prone. Refactorings help but manual tasks still remain: you must understand available refactorings, determine a precise sequence of refactorings to invoke, and perform these tasks repetitively to a laborious degree. We present Reflective Refactoring (R 2 ), a Java package to automate the introduction of classical design patterns (Visitor, Abstract Factory, etc), their inverses and variants. We encoded 78% of classical design patterns asR 2 scripts. In one application,R 2 automatically created a visitor with 276 visit methods by invoking 554 Eclipse refactorings in a few minutes ‐ an achievement that could not be done manually. We demonstrate the generality and scalability ofR 2 , illustrate its productivity potential, and explain why refactoring speed and correctness are critical issues for scripting in next-generation refactoring engines.

1 citations


01 Jan 2014
TL;DR: Customizable programs and program families provide user-selectable features allowing users to tailor the programs to the application scenario or platform, but to tailor a program to non-functional requirements, one has to know in advance which feature selection affects which non- functional properties.
Abstract: 1 Introduction. Customizable programs and program families provide user-selectable features allowing users to tailor the programs to the application scenario or platform. Beside functional requirements, users are often interested in non-functional requirements, such as a binary-size limit, a minimized energy consumption, and a maximum response time. To tailor a program to non-functional requirements, we have to know in advance which feature selection, that is, configuration, affects which non-functional properties. Due to the combinatorial explosion of possible feature selections, a direct measurement of all of them is infeasible.

1 citations