Skip to main content

Showing 1–9 of 9 results for author: Smaragdakis, Y

Searching in archive cs. Search in all archives.
.
  1. Deep Static Modeling of invokedynamic

    Authors: George Fourtounis, Yannis Smaragdakis

    Abstract: Java 7 introduced programmable dynamic linking in the form of the invokedynamic framework. Static analysis of code containing programmable dynamic linking has often been cited as a significant source of unsoundness in the analysis of Java programs. For example, Java lambdas, introduced in Java 8, are a very popular feature, which is, however, resistant to static analysis, since it mixes invokedyna… ▽ More

    Submitted 8 January, 2020; originally announced January 2020.

    ACM Class: F.3.2

    Journal ref: ECOOP 2019

  2. Heaps Don't Lie: Countering Unsoundness with Heap Snapshots

    Authors: Neville Grech, George Fourtounis, Adrian Francalanza, Yannis Smaragdakis

    Abstract: Static analyses aspire to explore all possible executions in order to achieve soundness. Yet, in practice, they fail to capture common dynamic behavior. Enhancing static analyses with dynamic information is a common pattern, with tools such as Tamiflex. Past approaches, however, miss significant portions of dynamic behavior, due to native code, unsupported features (e.g., invokedynamic or lambdas… ▽ More

    Submitted 6 May, 2019; originally announced May 2019.

    Comments: OOPSLA 2017

    Journal ref: Proceedings of the ACM on Programming Languages archive Volume 1 Issue OOPSLA, October 2017 Article No. 68

  3. arXiv:1905.00402  [pdf, ps, other

    cs.PL cs.SE

    Next-Paradigm Programming Languages: What Will They Look Like and What Changes Will They Bring?

    Authors: Yannis Smaragdakis

    Abstract: The dream of programming language design is to bring about orders-of-magnitude productivity improvements in software development tasks. Designers can endlessly debate on how this dream can be realized and on how close we are to its realization. Instead, I would like to focus on a question with an answer that can be, surprisingly, clearer: what will be the common principles behind next-paradigm, hi… ▽ More

    Submitted 1 May, 2019; originally announced May 2019.

  4. arXiv:1804.02503  [pdf, other

    cs.PL

    Symbolic Reasoning for Automatic Signal Placement (Extended Version)

    Authors: Kostas Ferles, Jacob Van Geffen, Isil Dillig, Yannis Smaragdakis

    Abstract: Explicit signaling between threads is a perennial cause of bugs in concurrent programs. While there are several run-time techniques to automatically notify threads upon the availability of some shared resource, such techniques are not widely-adopted due to their run-time overhead. This paper proposes a new solution based on static analysis for automatically generating a performant explicit-signal… ▽ More

    Submitted 6 April, 2018; originally announced April 2018.

  5. arXiv:1709.01609  [pdf, other

    cs.DL cs.GL cs.SE

    Effectiveness of Anonymization in Double-Blind Review

    Authors: Claire Le Goues, Yuriy Brun, Sven Apel, Emery Berger, Sarfraz Khurshid, Yannis Smaragdakis

    Abstract: Double-blind review relies on the authors' ability and willingness to effectively anonymize their submissions. We explore anonymization effectiveness at ASE 2016, OOPSLA 2016, and PLDI 2016 by asking reviewers if they can guess author identities. We find that 74%-90% of reviews contain no correct guess and that reviewers who self-identify as experts on a paper's topic are more likely to attempt to… ▽ More

    Submitted 5 September, 2017; originally announced September 2017.

    Comments: Effectiveness of Anonymization in Double-Blind Review. Communications of the ACM. 2017

    Journal ref: Communications of the ACM, vol. 61, no. 6, June 2018, pp. 34-37

  6. Stream Fusion, to Completeness

    Authors: Oleg Kiselyov, Aggelos Biboudis, Nick Palladinos, Yannis Smaragdakis

    Abstract: Stream processing is mainstream (again): Widely-used stream libraries are now available for virtually all modern OO and functional languages, from Java to C# to Scala to OCaml to Haskell. Yet expressivity and performance are still lacking. For instance, the popular, well-optimized Java 8 streams do not support the zip operator and are still an order of magnitude slower than hand-written loops. We… ▽ More

    Submitted 20 December, 2016; originally announced December 2016.

  7. arXiv:1506.05270  [pdf, other

    cs.PL

    jUCM: Universal Class Morphing (position paper)

    Authors: Aggelos Biboudis, George Fourtounis, Yannis Smaragdakis

    Abstract: We extend prior work on class-morphing to provide a more expressive pattern-based compile-time reflection language. Our MorphJ language offers a disciplined form of metaprogramming that produces types by statically iterating over and pattern-matching on fields and methods of other types. We expand such capabilities with "universal morphing", which also allows pattern-matching over types (e.g., all… ▽ More

    Submitted 17 June, 2015; originally announced June 2015.

  8. arXiv:1406.6631  [pdf, other

    cs.PL

    Clash of the Lambdas

    Authors: Aggelos Biboudis, Nick Palladinos, Yannis Smaragdakis

    Abstract: The introduction of lambdas in Java 8 completes the slate of statically-typed, mainstream languages with both object-oriented and functional features. The main motivation for lambdas in Java has been to facilitate stream-based declarative APIs, and, therefore, easier parallelism. In this paper, we evaluate the performance impact of lambda abstraction employed in stream processing, for a variety of… ▽ More

    Submitted 14 July, 2014; v1 submitted 25 June, 2014; originally announced June 2014.

    Comments: In the revised version: 1) we used a fixed heap with 3GB. The GC throughput was improved and results are more balanced, 2) we discussed briefly why we chose not to use targeted JVM flags, 3) we discussed @specialized and miniboxing, 4) we added a new benchmark that tests a streaming operation that avoids automatic boxing of our input data and 5) a subtitle was added

  9. arXiv:1311.4231  [pdf, other

    cs.PL

    Resolving and Exploiting the $k$-CFA Paradox

    Authors: Matthew Might, Yannis Smaragdakis, David Van Horn

    Abstract: Low-level program analysis is a fundamental problem, taking the shape of "flow analysis" in functional languages and "points-to" analysis in imperative and object-oriented languages. Despite the similarities, the vocabulary and results in the two communities remain largely distinct, with limited cross-understanding. One of the few links is Shivers's $k$-CFA work, which has advanced the concept of… ▽ More

    Submitted 17 November, 2013; originally announced November 2013.

    Comments: Appears in the ACM SIGPLAN 2010 Conference on Programming Language Design and Implementation (PLDI'10)