4,788 research outputs found
Many-core compiler fuzzing
We address the compiler correctness problem for many-core systems through novel applications of fuzz testing to OpenCL compilers. Focusing on two methods from prior work, random differential testing and testing via equivalence modulo inputs (EMI), we present several strategies for random generation of deterministic, communicating OpenCL kernels, and an injection mechanism that allows EMI testing to be applied to kernels that otherwise exhibit little or no dynamically-dead code. We use these methods to conduct a large, controlled testing campaign with respect to 21 OpenCL (device, compiler) configurations, covering a range of CPU, GPU, accelerator, FPGA and emulator implementations. Our study provides independent validation of claims in prior work related to the effectiveness of random differential testing and EMI testing, proposes novel methods for lifting these techniques to the many-core setting and reveals a significant number of OpenCL compiler bugs in commercial implementations
Acceleration and Time Pathologies
In his Contributions to Philosophy, Martin Heidegger (1999) introduces ‘acceleration’ as one of the three symptoms – along with ‘calculation’ and the ‘outbreak of massiveness’ – of our technological way of ‘being-in-the-world’. In this article, I unpack the relationship between these symptoms and draw a twofold conclusion. First, interpreting acceleration in terms of time pathologies, I suggest the self is becoming increasingly fragmented and emotionally overwhelmed from chronic sensory arousal and time pressure. This experience makes it difficult for us to qualitatively distinguish what matters to us in our everyday lives, resulting in a pervasive cultural mood of indifference, what Heidegger (1995) calls ‘profound boredom’. Second, by drawing on Heidegger's hermeneutic method, I argue that the practice of mainstream psychology, by adopting the reductive methodology of the empirical sciences, largely ignores our accelerated socio-historical situation, resulting in therapeutic models that have a tendency to construct and perpetuate the very pathologies the psychologist is seeking to treat
Synthesizing Imperative Programs from Examples Guided by Static Analysis
We present a novel algorithm that synthesizes imperative programs for
introductory programming courses. Given a set of input-output examples and a
partial program, our algorithm generates a complete program that is consistent
with every example. Our key idea is to combine enumerative program synthesis
and static analysis, which aggressively prunes out a large search space while
guaranteeing to find, if any, a correct solution. We have implemented our
algorithm in a tool, called SIMPL, and evaluated it on 30 problems used in
introductory programming courses. The results show that SIMPL is able to solve
the benchmark problems in 6.6 seconds on average.Comment: The paper is accepted in Static Analysis Symposium (SAS) '17. The
submission version is somewhat different from the version in arxiv. The final
version will be uploaded after the camera-ready version is read
Community detection in complex networks using Extremal Optimization
We propose a novel method to find the community structure in complex networks
based on an extremal optimization of the value of modularity. The method
outperforms the optimal modularity found by the existing algorithms in the
literature. We present the results of the algorithm for computer simulated and
real networks and compare them with other approaches. The efficiency and
accuracy of the method make it feasible to be used for the accurate
identification of community structure in large complex networks.Comment: 4 pages, 4 figure
Linear Parsing Expression Grammars
PEGs were formalized by Ford in 2004, and have several pragmatic operators
(such as ordered choice and unlimited lookahead) for better expressing modern
programming language syntax. Since these operators are not explicitly defined
in the classic formal language theory, it is significant and still challenging
to argue PEGs' expressiveness in the context of formal language theory.Since
PEGs are relatively new, there are several unsolved problems.One of the
problems is revealing a subclass of PEGs that is equivalent to DFAs. This
allows application of some techniques from the theory of regular grammar to
PEGs. In this paper, we define Linear PEGs (LPEGs), a subclass of PEGs that is
equivalent to DFAs. Surprisingly, LPEGs are formalized by only excluding some
patterns of recursive nonterminal in PEGs, and include the full set of ordered
choice, unlimited lookahead, and greedy repetition, which are characteristic of
PEGs. Although the conversion judgement of parsing expressions into DFAs is
undecidable in general, the formalism of LPEGs allows for a syntactical
judgement of parsing expressions.Comment: Parsing expression grammars, Boolean finite automata, Packrat parsin
Decision Problems For Convex Languages
In this paper we examine decision problems associated with various classes of
convex languages, studied by Ang and Brzozowski (under the name "continuous
languages"). We show that we can decide whether a given language L is prefix-,
suffix-, factor-, or subword-convex in polynomial time if L is represented by a
DFA, but that the problem is PSPACE-hard if L is represented by an NFA. In the
case that a regular language is not convex, we prove tight upper bounds on the
length of the shortest words demonstrating this fact, in terms of the number of
states of an accepting DFA. Similar results are proved for some subclasses of
convex languages: the prefix-, suffix-, factor-, and subword-closed languages,
and the prefix-, suffix-, factor-, and subword-free languages.Comment: preliminary version. This version corrected one typo in Section
2.1.1, line
A Computational Interpretation of Context-Free Expressions
We phrase parsing with context-free expressions as a type inhabitation
problem where values are parse trees and types are context-free expressions. We
first show how containment among context-free and regular expressions can be
reduced to a reachability problem by using a canonical representation of
states. The proofs-as-programs principle yields a computational interpretation
of the reachability problem in terms of a coercion that transforms the parse
tree for a context-free expression into a parse tree for a regular expression.
It also yields a partial coercion from regular parse trees to context-free
ones. The partial coercion from the trivial language of all words to a
context-free expression corresponds to a predictive parser for the expression
- …