2,159 research outputs found
Information Cost Tradeoffs for Augmented Index and Streaming Language Recognition
This paper makes three main contributions to the theory of communication
complexity and stream computation. First, we present new bounds on the
information complexity of AUGMENTED-INDEX. In contrast to analogous results for
INDEX by Jain, Radhakrishnan and Sen [J. ACM, 2009], we have to overcome the
significant technical challenge that protocols for AUGMENTED-INDEX may violate
the "rectangle property" due to the inherent input sharing. Second, we use
these bounds to resolve an open problem of Magniez, Mathieu and Nayak [STOC,
2010] that asked about the multi-pass complexity of recognizing Dyck languages.
This results in a natural separation between the standard multi-pass model and
the multi-pass model that permits reverse passes. Third, we present the first
passive memory checkers that verify the interaction transcripts of priority
queues, stacks, and double-ended queues. We obtain tight upper and lower bounds
for these problems, thereby addressing an important sub-class of the memory
checking framework of Blum et al. [Algorithmica, 1994]
Linear Haskell: practical linearity in a higher-order polymorphic language
Linear type systems have a long and storied history, but not a clear path
forward to integrate with existing languages such as OCaml or Haskell. In this
paper, we study a linear type system designed with two crucial properties in
mind: backwards-compatibility and code reuse across linear and non-linear users
of a library. Only then can the benefits of linear types permeate conventional
functional programming. Rather than bifurcate types into linear and non-linear
counterparts, we instead attach linearity to function arrows. Linear functions
can receive inputs from linearly-bound values, but can also operate over
unrestricted, regular values.
To demonstrate the efficacy of our linear type system - both how easy it can
be integrated in an existing language implementation and how streamlined it
makes it to write programs with linear types - we implemented our type system
in GHC, the leading Haskell compiler, and demonstrate two kinds of applications
of linear types: mutable data with pure interfaces; and enforcing protocols in
I/O-performing functions
SystemC Through the Looking Glass : Non-Intrusive Analysis of Electronic System Level Designs in SystemC
Due to the ever increasing complexity of hardware and hardware/software co-designs, developers strive for higher levels of abstractions in the early stages of the design flow. To address these demands, design at the Electronic System Level (ESL) has been introduced. SystemC currently is the de-facto standard for ESL design. The extraction of data from system designs written in SystemC is thereby crucial e.g. for the proper understanding of a given system. However, no satisfactory support of reflection/introspection of SystemC has been provided yet. Previously proposed methods for this purpose %introduced to achieve the goal nonetheless either focus on static aspects only, restrict the language means of SystemC, or rely on modifications of the compiler and/or parser. In this thesis, approaches that overcome these limitations are introduced, allowing the extraction of information from a given SystemC design without changing the SystemC library or the compiler. The proposed approaches retrieve both, static and dynamic (i.e. run-time) information
Beam instrumentation for the Tevatron Collider
The Tevatron in Collider Run II (2001-present) is operating with six times
more bunches and many times higher beam intensities and luminosities than in
Run I (1992-1995). Beam diagnostics were crucial for the machine start-up and
the never-ending luminosity upgrade campaign. We present the overall picture of
the Tevatron diagnostics development for Run II, outline machine needs for new
instrumentation, present several notable examples that led to Tevatron
performance improvements, and discuss the lessons for future colliders
Everything You Want to Know About Pointer-Based Checking
Lack of memory safety in C/C++ has resulted in numerous security vulnerabilities and serious bugs in large software systems. This paper highlights the challenges in enforcing memory safety for C/C++ programs and progress made as part of the SoftBoundCETS project. We have been exploring memory safety enforcement at various levels - in hardware, in the compiler, and as a hardware-compiler hybrid - in this project. Our research has identified that maintaining metadata with pointers in a disjoint metadata space and performing bounds and use-after-free checking can provide comprehensive memory safety. We describe the rationale behind the design decisions and its ramifications on various dimensions, our experience with the various variants that we explored in this project, and the lessons learned in the process. We also describe and analyze the forthcoming Intel Memory Protection Extensions (MPX) that provides hardware acceleration for disjoint metadata and pointer checking in mainstream hardware, which is expected to be available later this year
- …