36,671 research outputs found
The C++0x "Concepts" Effort
C++0x is the working title for the revision of the ISO standard of the C++
programming language that was originally planned for release in 2009 but that
was delayed to 2011. The largest language extension in C++0x was "concepts",
that is, a collection of features for constraining template parameters. In
September of 2008, the C++ standards committee voted the concepts extension
into C++0x, but then in July of 2009, the committee voted the concepts
extension back out of C++0x.
This article is my account of the technical challenges and debates within the
"concepts" effort in the years 2003 to 2009. To provide some background, the
article also describes the design space for constrained parametric
polymorphism, or what is colloquially know as constrained generics. While this
article is meant to be generally accessible, the writing is aimed toward
readers with background in functional programming and programming language
theory. This article grew out of a lecture at the Spring School on Generic and
Indexed Programming at the University of Oxford, March 2010
A Context-Oriented Extension of F#
Context-Oriented programming languages provide us with primitive constructs
to adapt program behaviour depending on the evolution of their operational
environment, namely the context. In previous work we proposed ML_CoDa, a
context-oriented language with two-components: a declarative constituent for
programming the context and a functional one for computing. This paper
describes the implementation of ML_CoDa as an extension of F#.Comment: In Proceedings FOCLASA 2015, arXiv:1512.0694
Relay: A New IR for Machine Learning Frameworks
Machine learning powers diverse services in industry including search,
translation, recommendation systems, and security. The scale and importance of
these models require that they be efficient, expressive, and portable across an
array of heterogeneous hardware devices. These constraints are often at odds;
in order to better accommodate them we propose a new high-level intermediate
representation (IR) called Relay. Relay is being designed as a
purely-functional, statically-typed language with the goal of balancing
efficient compilation, expressiveness, and portability. We discuss the goals of
Relay and highlight its important design constraints. Our prototype is part of
the open source NNVM compiler framework, which powers Amazon's deep learning
framework MxNet
Beyond Good and Evil: Formalizing the Security Guarantees of Compartmentalizing Compilation
Compartmentalization is good security-engineering practice. By breaking a
large software system into mutually distrustful components that run with
minimal privileges, restricting their interactions to conform to well-defined
interfaces, we can limit the damage caused by low-level attacks such as
control-flow hijacking. When used to defend against such attacks,
compartmentalization is often implemented cooperatively by a compiler and a
low-level compartmentalization mechanism. However, the formal guarantees
provided by such compartmentalizing compilation have seen surprisingly little
investigation.
We propose a new security property, secure compartmentalizing compilation
(SCC), that formally characterizes the guarantees provided by
compartmentalizing compilation and clarifies its attacker model. We reconstruct
our property by starting from the well-established notion of fully abstract
compilation, then identifying and lifting three important limitations that make
standard full abstraction unsuitable for compartmentalization. The connection
to full abstraction allows us to prove SCC by adapting established proof
techniques; we illustrate this with a compiler from a simple unsafe imperative
language with procedures to a compartmentalized abstract machine.Comment: Nit
Recola2: REcursive Computation of One-Loop Amplitudes 2
We present the Fortran95 program Recola2 for the perturbative computation of
next-to-leading-order transition amplitudes in the Standard Model of particle
physics and extended Higgs sectors. New theories are implemented via model
files in the 't Hooft-Feynman gauge in the conventional formulation of quantum
field theory and in the Background-Field method. The present version includes
model files for the Two-Higgs-Doublet Model and the Higgs-Singlet Extension of
the Standard Model. We support standard renormalization schemes for the
Standard Model as well as many commonly used renormalization schemes in
extended Higgs sectors. Within these models the computation of
next-to-leading-order polarized amplitudes and squared amplitudes, optionally
summed over spin and colour, is fully automated for any process. Recola2 allows
the computation of colour- and spin-correlated leading-order squared amplitudes
that are needed in the dipole subtraction formalism. Recola2 is publicly
available for download at http://recola.hepforge.org.Comment: 48 pages, 1 figure, matches published versio
Types For Modules
The programming language Standard ML is an amalgam of two, largely orthogonal, languages. The Core language expresses details of algorithms and data structures. The Modules language expresses the modular architecture of a software system. Both languages are statically typed, with their static and dynamic semantics specified by a formal definition.
Over the past decade, Standard ML Modules has been the source of inspiration for much research into the type-theoretic foundations of modules languages. Despite these efforts, a proper type-theoretic understanding of its static semantics has remained elusive. In this thesis, we use Type Theory as a guideline to reformulate the unconventional static semantics of Modules, providing a basis for useful extensions to the Modules language.
Our starting point is a stylised presentation of the existing static semantics of Modules, parameterised by an arbitrary Core language. We claim that the type-theoretic concepts underlying Modules are type parameterisation, type quantification and subtyping. We substantiate this claim by giving a provably equivalent semantics with an alternative, more type-theoretic presentation. In particular, we show that the notion of type generativity corresponds to existential quantification over types. In contrast to previous accounts, our analysis does not involve first-order dependent types.
Our first extension generalises Modules to higher-order, allowing modules to take parameterised modules as arguments, and return them as results. We go beyond previous proposals for higher-order Modules by supporting a notion of type generativity. We give a sound and complete algorithm for type-checking higher-order Modules. Our second extension permits modules to be treated as first-class citizens of an ML-like Core language, greatly extending the range of computations on modules. Each extension arises from a natural generalisation of our type-theoretic semantics.
This thesis also addresses two pragmatic concerns. First, we propose a simple approach to the separate compilation of Modules, which is adequate in practice but has theoretical limitations. We suggest a modified syntax and semantics that alleviates these limitations. Second, we study the type inference problem posed by uniting our extensions to higher-order and first-class modules with an implicitly-typed, ML-like Core language. We present a hybrid type inference algorithm that integrates the classical algorithm for ML with the type-checking algorithm for Modules
Phosphorylation by Akt within the ST loop of AMPK-α1 down-regulates its activation in tumour cells
The insulin/IGF-1 (insulin-like growth factor 1)-activated protein kinase Akt (also known as protein kinase B) phosphorylates Ser(487) in the ‘ST loop’ (serine/threonine-rich loop) within the C-terminal domain of AMPK-α1 (AMP-activated protein kinase-α1), leading to inhibition of phosphorylation by upstream kinases at the activating site, Thr(172). Surprisingly, the equivalent site on AMPK-α2, Ser(491), is not an Akt target and is modified instead by autophosphorylation. Stimulation of HEK (human embryonic kidney)-293 cells with IGF-1 caused reduced subsequent Thr(172) phosphorylation and activation of AMPK-α1 in response to the activator A769662 and the Ca(2+) ionophore A23187, effects we show to be dependent on Akt activation and Ser(487) phosphorylation. Consistent with this, in three PTEN (phosphatase and tensin homologue deleted on chromosome 10)-null tumour cell lines (in which the lipid phosphatase PTEN that normally restrains the Akt pathway is absent and Akt is thus hyperactivated), AMPK was resistant to activation by A769662. However, full AMPK activation could be restored by pharmacological inhibition of Akt, or by re-expression of active PTEN. We also show that inhibition of Thr(172) phosphorylation is due to interaction of the phosphorylated ST loop with basic side chains within the αC-helix of the kinase domain. Our findings reveal that a previously unrecognized effect of hyperactivation of Akt in tumour cells is to restrain activation of the LKB1 (liver kinase B1)–AMPK pathway, which would otherwise inhibit cell growth and proliferation
Strategic polymorphism requires just two combinators!
In previous work, we introduced the notion of functional strategies:
first-class generic functions that can traverse terms of any type while mixing
uniform and type-specific behaviour. Functional strategies transpose the notion
of term rewriting strategies (with coverage of traversal) to the functional
programming paradigm. Meanwhile, a number of Haskell-based models and
combinator suites were proposed to support generic programming with functional
strategies.
In the present paper, we provide a compact and matured reconstruction of
functional strategies. We capture strategic polymorphism by just two primitive
combinators. This is done without commitment to a specific functional language.
We analyse the design space for implementational models of functional
strategies. For completeness, we also provide an operational reference model
for implementing functional strategies (in Haskell). We demonstrate the
generality of our approach by reconstructing representative fragments of the
Strafunski library for functional strategies.Comment: A preliminary version of this paper was presented at IFL 2002, and
included in the informal preproceedings of the worksho
- …