142,833 research outputs found
Indefinites, negation and Jespersen's Cycle in the history of Low German
This paper offers a formal account of the diachronic changes in the interaction between indefinites in the scope of negation and the expression of sentential negation in the history of Low German. Different types of negative concord develop at the different historical stages. Parallel to that, the language underwent Jespersen's Cycle. In addition, I argue that, against common belief, Jespersen's Cycle is at best indirectly related to the type of interaction between indefinites and negation. Changes in the type of indefinites used in the scope of negation arise due to changes in the lexical properties of the indefinites involved, not as a result of changes in the expression of negation. Conversely, changes in the type of indefinites do not trigger changes in the expression of negation
Koka: Programming with Row Polymorphic Effect Types
We propose a programming model where effects are treated in a disciplined
way, and where the potential side-effects of a function are apparent in its
type signature. The type and effect of expressions can also be inferred
automatically, and we describe a polymorphic type inference system based on
Hindley-Milner style inference. A novel feature is that we support polymorphic
effects through row-polymorphism using duplicate labels. Moreover, we show that
our effects are not just syntactic labels but have a deep semantic connection
to the program. For example, if an expression can be typed without an exn
effect, then it will never throw an unhandled exception. Similar to Haskell's
`runST` we show how we can safely encapsulate stateful operations. Through the
state effect, we can also safely combine state with let-polymorphism without
needing either imperative type variables or a syntactic value restriction.
Finally, our system is implemented fully in a new language called Koka and has
been used successfully on various small to medium-sized sample programs ranging
from a Markdown processor to a tier-splitted chat application. You can try out
Koka live at www.rise4fun.com/koka/tutorial.Comment: In Proceedings MSFP 2014, arXiv:1406.153
Functional programming languages for verification tools: experiences with ML and Haskell
We compare Haskell with ML as programming languages for verification tools, based on our experience developing TRUTH in Haskell and the Edinburgh Concurrency Workbench (CWB) in ML. We discuss not only technical language features but also the "worlds" of the languages, for example, the availability of tools and libraries
Information Flow Control in WebKit's JavaScript Bytecode
Websites today routinely combine JavaScript from multiple sources, both
trusted and untrusted. Hence, JavaScript security is of paramount importance. A
specific interesting problem is information flow control (IFC) for JavaScript.
In this paper, we develop, formalize and implement a dynamic IFC mechanism for
the JavaScript engine of a production Web browser (specifically, Safari's
WebKit engine). Our IFC mechanism works at the level of JavaScript bytecode and
hence leverages years of industrial effort on optimizing both the source to
bytecode compiler and the bytecode interpreter. We track both explicit and
implicit flows and observe only moderate overhead. Working with bytecode
results in new challenges including the extensive use of unstructured control
flow in bytecode (which complicates lowering of program context taints),
unstructured exceptions (which complicate the matter further) and the need to
make IFC analysis permissive. We explain how we address these challenges,
formally model the JavaScript bytecode semantics and our instrumentation, prove
the standard property of termination-insensitive non-interference, and present
experimental results on an optimized prototype
The Parma Polyhedra Library: Toward a Complete Set of Numerical Abstractions for the Analysis and Verification of Hardware and Software Systems
Since its inception as a student project in 2001, initially just for the
handling (as the name implies) of convex polyhedra, the Parma Polyhedra Library
has been continuously improved and extended by joining scrupulous research on
the theoretical foundations of (possibly non-convex) numerical abstractions to
a total adherence to the best available practices in software development. Even
though it is still not fully mature and functionally complete, the Parma
Polyhedra Library already offers a combination of functionality, reliability,
usability and performance that is not matched by similar, freely available
libraries. In this paper, we present the main features of the current version
of the library, emphasizing those that distinguish it from other similar
libraries and those that are important for applications in the field of
analysis and verification of hardware and software systems.Comment: 38 pages, 2 figures, 3 listings, 3 table
EUās civil society bias in the neighbourhood : a case study on culture
This article attempts to analyse the European Union's (EU) financial and technical support to cultural actors in EU Neighbourhood countries. In particular, it enquires whether the boundaries of what cultural sector means for the EU are based on a Eurocentric understanding of civil society or rather on a more inclusive definition mediated with partner countries' societies. The work hypothesises that the EU tends to support cultural civil society organisations on the basis of their closeness to European standards, norms and values. Findings highlight a mixed picture. On the one hand. a Eurocentric understanding of civil society tends to prevail in EU discourses and is enforced by technical means addressing the status and capacity of the organisations involved, with some exceptions. On the other hand, the EU does not seem to impose strong prerequisites concerning the agenda of organisations and aims to be as inclusive as possible
- ā¦