Skip to main content

Showing 1–14 of 14 results for author: Vitek, J

Searching in archive cs. Search in all archives.
.
  1. Deoptless: Speculation with Dispatched On-Stack Replacement and Specialized Continuations

    Authors: Olivier Flückiger, Jan Ječmen, Sebastián Krynski, Jan Vitek

    Abstract: Just-in-time compilation provides significant performance improvements for programs written in dynamic languages. These benefits come from the ability of the compiler to speculate about likely cases and generate optimized code for these. Unavoidably, speculations sometimes fail and the optimizations must be reverted. In some pathological cases, this can leave the program stuck with suboptimal code… ▽ More

    Submitted 5 April, 2022; v1 submitted 4 March, 2022; originally announced March 2022.

    Journal ref: 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2022)

  2. Type Stability in Julia: Avoiding Performance Pathologies in JIT Compilation (Extended Version)

    Authors: Artem Pelenitsyn, Julia Belyakova, Benjamin Chung, Ross Tate, Jan Vitek

    Abstract: As a scientific programming language, Julia strives for performance but also provides high-level productivity features. To avoid performance pathologies, Julia users are expected to adhere to a coding discipline that enables so-called type stability. Informally, a function is type stable if the type of the output depends only on the types of the inputs, not their values. This paper provides a form… ▽ More

    Submitted 17 November, 2021; v1 submitted 4 September, 2021; originally announced September 2021.

    Comments: OOPSLA '21, extended version

  3. arXiv:2010.07516  [pdf, other

    cs.PL

    World Age in Julia: Optimizing Method Dispatch in the Presence of Eval (Extended Version)

    Authors: Julia Belyakova, Benjamin Chung, Jack Gelinas, Jameson Nash, Ross Tate, Jan Vitek

    Abstract: Dynamic programming languages face semantic and performance challenges in the presence of features, such as eval, that can inject new code into a running program. The Julia programming language introduces the novel concept of world age to insulate optimized code from one of the most disruptive side-effects of eval: changes to the definition of an existing function. This paper provides the first fo… ▽ More

    Submitted 15 October, 2020; v1 submitted 15 October, 2020; originally announced October 2020.

    Comments: OOPSLA 2020 (Extended version with proofs)

  4. Sampling Optimized Code for Type Feedback

    Authors: Olivier Flückiger, Andreas Wälchli, Sebastián Krynski, Jan Vitek

    Abstract: To efficiently execute dynamically typed languages, many language implementations have adopted a two-tier architecture. The first tier aims for low-latency startup times and collects dynamic profiles, such as the dynamic types of variables. The second tier provides high-throughput using an optimizing compiler that specializes code to the recorded type information. If the program behavior changes t… ▽ More

    Submitted 5 October, 2020; originally announced October 2020.

    Journal ref: Proceedings of the 16th ACM SIGPLAN International Symposium on Dynamic Languages (DLS 2020)

  5. arXiv:1911.11894  [pdf, other

    cs.SE cs.PL

    FSE/CACM Rebuttal$^2$: Correcting A Large-Scale Study of Programming Languages and Code Quality in GitHub

    Authors: Emery D. Berger, Petr Maj, Olga Vitek, Jan Vitek

    Abstract: Ray, Devanbu and Filkov issued a rebuttal of our TOPLAS paper "On the Impact of Programming Languages on Code Quality: A Reproduction Study". Our paper reproduced "A Large-Scale Study of Programming Languages and Code Quality in GitHub", which appeared at FSE 2014 and was subsequently republished as a CACM research highlight in 2017. This article is a rebuttal to that rebuttal.

    Submitted 26 November, 2019; originally announced November 2019.

  6. arXiv:1910.12935  [pdf, other

    cs.PL

    Precise Dataflow Analysis of Event-Driven Applications

    Authors: Ming-Ho Yee, Ayaz Badouraly, Ondřej Lhoták, Frank Tip, Jan Vitek

    Abstract: Event-driven programming is widely used for implementing user interfaces, web applications, and non-blocking I/O. An event-driven program is organized as a collection of event handlers whose execution is triggered by events. Traditional static analysis techniques are unable to reason precisely about event-driven code because they conservatively assume that event handlers may execute in any order.… ▽ More

    Submitted 28 October, 2019; originally announced October 2019.

  7. On the Design, Implementation, and Use of Laziness in R

    Authors: Aviral Goel, Jan Vitek

    Abstract: The R programming language has been lazy for over twenty-five years. This paper presents a review of the design and implementation of call-by-need in R, and a data-driven study of how generations of programmers have put laziness to use in their code. We analyze 16,707 packages and observe the creation of 270.9 B promises. Our data suggests that there is little supporting evidence to assert that pr… ▽ More

    Submitted 19 September, 2019; originally announced September 2019.

    Comments: 27 pages, 4 tables, 21 figures

    ACM Class: D.3

    Journal ref: Object-Oriented Programming, Systems, Languages & Applications. October 2019, Pages 153:1--153:27

  8. arXiv:1908.07883  [pdf, other

    cs.PL cs.SE

    Scala Implicits are Everywhere: A large-scale study of the use of Implicits in the wild

    Authors: Filip Křikava, Heather Miller, Jan Vitek

    Abstract: The Scala programming language offers two distinctive language features implicit parameters and implicit conversions, often referred together as implicits. Announced without fanfare in 2004, implicits have quickly grown to become a widely and pervasively used feature of the language. They provide a way to reduce the boilerplate code in Scala programs. They are also used to implement certain langua… ▽ More

    Submitted 12 September, 2019; v1 submitted 21 August, 2019; originally announced August 2019.

  9. R Melts Brains -- An IR for First-Class Environments and Lazy Effectful Arguments

    Authors: Olivier Flückiger, Guido Chari, Jan Ječmen, Ming-Ho Yee, Jakob Hain, Jan Vitek

    Abstract: The R programming language combines a number of features considered hard to analyze and implement efficiently: dynamic ty**, reflection, lazy evaluation, vectorized primitive types, first-class closures, and extensive use of native code. Additionally, variable scopes are reified at runtime as first-class environments. The combination of these features renders most static program analysis techniq… ▽ More

    Submitted 5 September, 2019; v1 submitted 11 July, 2019; originally announced July 2019.

    Journal ref: Proceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages (DLS 2019)

  10. On the Impact of Programming Languages on Code Quality

    Authors: Emery D. Berger, Celeste Hollenbeck, Petr Maj, Olga Vitek, Jan Vitek

    Abstract: This paper is a reproduction of work by Ray et al. which claimed to have uncovered a statistically significant association between eleven programming languages and software defects in projects hosted on GitHub. First we conduct an experimental repetition, repetition is only partially successful, but it does validate one of the key claims of the original work about the association of ten programmin… ▽ More

    Submitted 24 April, 2019; v1 submitted 29 January, 2019; originally announced January 2019.

    Comments: Accepted, to appear in TOPLAS (ACM Transactions of Programming Languages and Systems)

  11. arXiv:1809.04151  [pdf, other

    cs.PL cs.PF

    Feature-Specific Profiling

    Authors: Leif Andersen, Vincent St-Amour, Jan Vitek, Matthias Felleisen

    Abstract: While high-level languages come with significant readability and maintainability benefits, their performance remains difficult to predict. For example, programmers may unknowingly use language features inappropriately, which cause their programs to run slower than expected. To address this issue, we introduce feature-specific profiling, a technique that reports performance costs in terms of lingui… ▽ More

    Submitted 11 September, 2018; originally announced September 2018.

  12. Correctness of Speculative Optimizations with Dynamic Deoptimization

    Authors: Olivier Flückiger, Gabriel Scherer, Ming-Ho Yee, Aviral Goel, Amal Ahmed, Jan Vitek

    Abstract: High-performance dynamic language implementations make heavy use of speculative optimizations to achieve speeds close to statically compiled languages. These optimizations are typically performed by a just-in-time compiler that generates code under a set of assumptions about the state of the program and its environment. In certain cases, a program may execute code compiled under assumptions that a… ▽ More

    Submitted 15 November, 2017; v1 submitted 8 November, 2017; originally announced November 2017.

    Journal ref: Proceedings of the ACM on Programming Languages (POPL 2018)

  13. arXiv:0712.1189  [pdf, ps, other

    cs.PL cs.SE

    Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems - Report on the Workshop ICOOOLPS'2007 at ECOOP'07

    Authors: Olivier Zendra, Eric Jul, Roland Ducournau, Etienne Gagnon, Richard E. Jones, Chandra Krintz, Philippe Mulet, Jan Vitek

    Abstract: ICOOOLPS'2007 was the second edition of the ECOOP-ICOOOLPS workshop. ICOOOLPS intends to bring researchers and practitioners both from academia and industry together, with a spirit of openness, to try and identify and begin to address the numerous and very varied issues of optimization. After a first successful edition, this second one put a stronger emphasis on exchanges and discussions amongst… ▽ More

    Submitted 7 December, 2007; originally announced December 2007.

    Journal ref: ECOOP 2007 Workshop Reader Springer (Ed.) (2008)

  14. Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems - Report on the Workshop ICOOOLPS'2006 at ECOOP'06

    Authors: Roland Ducournau, Etienne Gagnon, Chandra Krintz, Philippe Mulet, Jan Vitek, Olivier Zendra

    Abstract: ICOOOLPS'2006 was the first edition of ECOOP-ICOOOLPS workshop. It intended to bring researchers and practitioners both from academia and industry together, with a spirit of openness, to try and identify and begin to address the numerous and very varied issues of optimization. This succeeded, as can be seen from the papers, the attendance and the liveliness of the discussions that took place dur… ▽ More

    Submitted 15 October, 2007; originally announced October 2007.

    Comments: The original publication is available at http://www.springerlink.com

    Journal ref: Object-Oriented Technology. ECOOP 2006 Workshop Reader - ECOOP 2006 Workshops, Nantes, France, July 3-7, 2006, Final Reports Springer Berlin / Heidelberg (Ed.) (2007) 1-14