Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming 2015
DOI: 10.1145/2784731.2784758
|View full text |Cite
|
Sign up to set email alerts
|

HLIO: mixing static and dynamic typing for information-flow control in Haskell

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
38
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
6

Relationship

0
6

Authors

Journals

citations
Cited by 51 publications
(38 citation statements)
references
References 34 publications
0
38
0
Order By: Relevance
“…The scheduler can therefore find the thread with the highest priority by following the left spine of the tree and backtracking to the right if a thread has no residual budget. 8 We write Q[ n b ] to mean the first thread encountered via this traversal is n with budget b. As a result, given the slice Q[ n 1+b ], thread n is the next thread to run, and Q[ n 0 ] occurs only if all threads in the queue have zero residual budget.…”
Section: Core Schedulermentioning
confidence: 99%
See 1 more Smart Citation
“…The scheduler can therefore find the thread with the highest priority by following the left spine of the tree and backtracking to the right if a thread has no residual budget. 8 We write Q[ n b ] to mean the first thread encountered via this traversal is n with budget b. As a result, given the slice Q[ n 1+b ], thread n is the next thread to run, and Q[ n 0 ] occurs only if all threads in the queue have zero residual budget.…”
Section: Core Schedulermentioning
confidence: 99%
“…In Sect. 5.1, we describe our proof technique based on term erasure, which has been used to verify security guarantees of functional programming languages [30], IFC libraries [8,17,54,56,61], and an IFC runtime system [59]. In Sect.…”
Section: Security Guaranteesmentioning
confidence: 99%
“…However, the function in Figure 5 can easily be generalized to a function working on an arbitrary data structure containing files with different labels from an arbitrary lattice. Similar to the approach taken by Buiras et al [11] that hide the label of a labeled value using a data type definition, we hide the label of a secure file with a dependent pair GenFile : Type -> Type GenFile label = (l : label ** SecFile l) that abstracts away the concrete sensitivity level of the file. Moreover, we introduce a specialized join function joinOfFiles : BoundedJoinSemilattice label => List (GenFile label) -> label that folds the join function over a list of file sensitivity labels.…”
Section: Policy-parameterized Functionsmentioning
confidence: 99%
“…Pure functional programming languages, like Haskell, have something to offer with respect to information security as they strictly separate side-effect free and side-effectful code. This makes it possible to enforce lightweight information-flow control through libraries [11,19,33,34,41] by constructing an embedded domain-specific security sub-language. Such libraries enforce a secure-by-construction programming model as any program written against the library interface is not capable of leaking secrets.…”
Section: Introductionmentioning
confidence: 99%
“…We have included two larger examples in the extended version [12]. One builds from recent work on deferring constraints until runtime [2] and the other on translating a dependently typed program from Agda [16] into Haskell.…”
Section: Why Visible Type Application?mentioning
confidence: 99%