Browse by Author "Dig, Danny"

  • Radoi, Cosmin; Herhut, Stephan; Sreeram, Jaswanth; Dig, Danny (2014-12-20)
    In recent years, web applications have become pervasive. Their backbone is JavaScript, the only programming language supported by all major web browsers. Most browsers run on desktop or mobile devices with parallel hardware. ...

    application/pdf

    application/pdfPDF (369Kb)
  • Dig, Danny; Comertoglu, Can; Marinov, Darko; Johnson, Ralph (2005-12)
    One of the costs of reusing software components is migrating applications to use the new version of the components. Migrating an application can be error-prone, tedious, and disruptive of the development process. Our ...

    application/pdf

    application/pdfPDF (329Kb)
  • Daniel, Brett; Dig, Danny; Garcia, Kely; Marinov, Darko (2007-03)
    Refactorings are behavior-preserving program transformations that improve the design of a program. Refactoring engines are tools that automate the application of refactorings: first the user chooses a refactoring to apply, ...

    application/pdf

    application/pdfPDF (151Kb)
  • Dig, Danny (2007-11)
    Software developers like to reuse software components such as libraries or frameworks because it lets them build a system more quickly, but then the system depends on the components that they reused. Ideally, the programming ...

    application/pdf

    application/pdfPDF (1Mb)
  • Lin, Yu; Dig, Danny (2012)
    Concurrent collections provide thread-safe, highly-scalable operations, and are widely used in practice. However, programmers can misuse these concurrent collections by composing one operation that checks a condition ...

    application/pdf

    application/pdfPDF (497Kb)
  • Okur, Semih; Erdogan, Cansu; Dig, Danny (2014)
    Parallel libraries continuously evolve from low-level to higher-level abstractions. However, developers are not up-to-date with these higher-level abstractions, thus their parallel code might be hard to read, slow, and ...

    application/pdf

    application/pdfPDF (468Kb)
  • Okur, Semih; Dig, Danny (ACM, 2012-11)
    Parallel programming is hard. The industry leaders hope to convert the hard problem of using parallelism into the easier problem of using a parallel library. Yet, we know little about how programmers adopt these libraries ...

    application/pdf

    application/pdfPDF (958Kb)
  • Vakilian, Mohsen; Dig, Danny; Bocchino, Robert L., Jr.; Overbey, Jeffrey; Adve, Vikram S.; Johnson, Ralph (2009)
    Effect systems are important for reasoning about the side effects of a program. Although effect systems have been around for decades, they have not been widely adopted in practice because of the large number of annotations ...

    application/pdf

    application/pdfPDF (205Kb)
  • Negara, Stas; Codoban, Mihai; Dig, Danny; Johnson, Ralph E. (2013-04-27)
    Identifying repetitive code changes benefits developers, tool builders, and researchers. Tool builders can automate the popular code changes, thus improving the productivity of developers. Researchers would better understand ...

    application/pdf

    application/pdfPDF (669Kb)
  • Negara, Stas; Codoban, Mihai; Dig, Danny; Johnson, Ralph E. (2013-09-25)
    Identifying repetitive code changes benefits developers, tool builders, and researchers. Tool builders can automate the popular code changes, thus improving the productivity of developers. Researchers can better understand ...

    application/pdf

    application/pdfPDF (482Kb)
  • Radoi, Cosmin; Dig, Danny (2012-11-12)
    Despite significant progress in recent years, the im- portant problem of static race detection remains open. Previous techniques took a general approach and looked for races by analyzing the effects induced by low-level ...

    application/pdf

    application/pdfPDF (415Kb)
  • Radoi, Cosmin; Dig, Danny (2013-02-05)
    Despite significant progress in recent years, the important problem of static race detection remains open. Previous techniques took a general approach and looked for races by analyzing the effects induced by low-level ...

    application/pdf

    application/pdfPDF (500Kb)
  • Daniel, Brett; Jagannath, Vilas; Dig, Danny; Marinov, Darko (IEEE/ACM, 2009-08-23)
    Developers often change software in ways that cause tests to fail. When this occurs, developers must determine whether failures are caused by errors in the code under test or in the test code itself. In the latter case, ...

    application/pdf

    application/pdfPDF (385Kb)
  • Dig, Danny; Negara, Stas; Johnson, Ralph; Mohindra, Vibhu (2007-09)
    Although in theory the APIs of software libraries and frameworks should be stable, they change in practice. This forces clients of the library API to change as well, making software maintenance expensive. Changing a client ...

    application/pdf

    application/pdfPDF (377Kb)
  • Dig, Danny (2010-07-01)
    In the multicore era, a major programming task will be to make programs more parallel. This is tedious because it requires changing many lines of code, and it is error-prone and non-trivial because programmers need to ...

    application/pdf

    application/pdfPDF (280Kb)
  • Kjolstad, Fredrik Berg; Dig, Danny; Acevedo, Gabriel; Snir, Marc (2010-06-07)
    It is common for Object-Oriented programs to contain mutable and immutable classes. Immutable classes simplify sequential programing because the programmer does not have to reason about side-effects. Immutable classes ...

    application/pdf

    application/pdfPDF (476Kb)
  • Dig, Danny; Manzoor, Kashif; Johnson, Ralph; Nguyen, Tien N. (2006-09)
    Current text based Software Configuration Management (SCM) systems have trouble with refactorings. Refactorings result in global changes and lead to merge conflicts. A refactoring-aware SCM system reduces merge conflicts, ...

    application/pdf

    application/pdfPDF (215Kb)
  • Dig, Danny; Nguyen, Tien N.; Johnson, Ralph (2006-04)
    Refactoring tools allow programmers to change source code much quicker than before. However, the complexity of these changes cause versioning tools that operate at a file level to lose the history of components. This problem ...

    application/pdf

    application/pdfPDF (247Kb)
  • Dig, Danny; Radoi, Cosmin; Tarce, Mihai; Minea, Marius; Johnson, Ralph (2009-09-10)
    In the multicore era, sequential programs need to be refactored for parallelism. The next version of Java provides ParallelArray, an array data structure that supports parallel operations over the array elements. For ...

    application/pdf

    application/pdfPDF (305Kb)
  • Lin, Yu; Radoi, Cosmin; Dig, Danny (2014-06-03)
    Running compute-intensive or blocking I/O operations in the UI event thread of smartphone apps can severely degrade responsiveness. Despite the fact that Android supports writing concurrent code via AsyncTask, we know ...

    application/pdf

    application/pdfPDF (511Kb)