Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Flemming Nielson

dblp:n/FlemmingNielson · DBLP profile ↗
← Back
107ranked-venue papers
32as first author
0since 2021 · last 2020
0000-0001-7362-6176ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 62 · 19 first-authorTheory of computation · 31 · 14 first-authorSecurity and privacy · 11Computer networks · 5Databases, data management, data science and information retrieval · 2 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 2Artificial intelligence and machine learning · 1Systems, architecture and hardware · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
10 papers
Program analysis · 59% Concurrent programming · 21% Programming languages and type systems · 14%
Theoretical computer science
3 papers
Automated reasoning and model checking · 92% Logic in computer science · 8%
Computer networks
1 paper
Network management and operations · 100%

Topics — the 25 heaviest of 27, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Network management and operations
network verification
0.112010
Static analysis of topology-dependent broadcast networks · Inf. Comput. 2010
Program analysis
static analysis
0.022001
Static Analysis for the pi-Calculus with Applications to Security · Inf. Comput. 2001
Bounded Fixed Point Iteration · POPL 1992
Concurrent programming › concurrency theory › process calculi
pi-calculus
0.012001
Static Analysis for the pi-Calculus with Applications to Security · Inf. Comput. 2001
Concurrent programming › concurrency theory › process calculi
mobile ambients
0.012000
Shape Analysis for Mobile Ambients · POPL 2000
Program analysis › static analysis
pointer analysis
0.012000
Shape Analysis for Mobile Ambients · POPL 2000
Program analysis › static analysis › pointer analysis
shape analysis
0.012000
Shape Analysis for Mobile Ambients · POPL 2000
Program analysis › static analysis
abstract interpretation
0.051997
Bounded Fixed Point Iteration · POPL 1992
Infinitary Control Flow Analysis: a Collecting Semantics for Closure Analysis · POPL 1997
Strictness Analysis and Denotational Abstract Interpretation · Inf. Comput. 1988
Program analysis
control flow analysis
0.011997
Infinitary Control Flow Analysis: a Collecting Semantics for Closure Analysis · POPL 1997
Program analysis › static analysis › abstract interpretation
strictness analysis
0.031992
Strictness Analysis and Denotational Abstract Interpretation · Inf. Comput. 1988
Strictness Analysis and Denotational Abstract Interpretation · POPL 1987
Bounded Fixed Point Iteration · POPL 1992
Programming languages and type systems › concurrent programming languages
concurrent functional languages
0.011994
Higher-Order Concurrent Programs with Finite Communication Topology · POPL 1994
Program analysis › static analysis › abstract interpretation
denotational abstract interpretation
0.021988
Strictness Analysis and Denotational Abstract Interpretation · Inf. Comput. 1988
Strictness Analysis and Denotational Abstract Interpretation · POPL 1987
Programming languages and type systems › lambda calculus
typed lambda calculus
0.021988
Automatic Binding Time Analysis for a Typed Lambda-Calculus · POPL 1988
Strictness Analysis and Denotational Abstract Interpretation · POPL 1987
Program analysis › static analysis › abstract interpretation
fixpoint iteration
0.011992
Bounded Fixed Point Iteration · POPL 1992
Logic in computer science › process algebra
ambient calculus
0.012000
Shape Analysis for Mobile Ambients · POPL 2000
Programming languages and type systems
coinduction
0.011997
Infinitary Control Flow Analysis: a Collecting Semantics for Closure Analysis · POPL 1997
Compilers and program optimization › partial evaluation
binding-time analysis
0.011988
Automatic Binding Time Analysis for a Typed Lambda-Calculus · POPL 1988
Compilers and program optimization
partial evaluation
0.011988
Automatic Binding Time Analysis for a Typed Lambda-Calculus · POPL 1988
Programming languages and type systems › concurrent programming languages
Concurrent ML
0.011994
Higher-Order Concurrent Programs with Finite Communication Topology · POPL 1994
Programming languages and type systems
functional programming
0.011994
Higher-Order Concurrent Programs with Finite Communication Topology · POPL 1994
Compilers and program optimization
program transformation
0.011985
Program Transformations in a Denotational Setting · ACM Trans. Program. Lang. Syst. 1985
Compilers and program optimization › program transformation
semantics-preserving transformation
0.011985
Program Transformations in a Denotational Setting · ACM Trans. Program. Lang. Syst. 1985
Programming languages and type systems › language semantics › formal semantics › denotational semantics › domain theory
power domains
0.011983
Strong Abstract Interpretation Using Power Domains (Extended Abstract) · ICALP 1983
Logic in computer science › semantics
denotational semantics
0.011983
Strong Abstract Interpretation Using Power Domains (Extended Abstract) · ICALP 1983
Programming languages and type systems › language semantics › formal semantics
denotational semantics
0.011987
Strictness Analysis and Denotational Abstract Interpretation · POPL 1987
Program analysis
data flow analysis
0.011985
Program Transformations in a Denotational Setting · ACM Trans. Program. Lang. Syst. 1985

Methods — techniques the papers use, named apart from their topics

abstract interpretation · 0.1regular tree grammars · 0.0regular tree grammar · 0.0greatest fixed point · 0.0coinduction · 0.0static analysis · 0.0fixed point theory · 0.0denotational semantics · 0.0type inference · 0.0forward data flow analysis · 0.0backward data flow analysis · 0.0
YearPublicationVenuePosition
2020 Adaptive Security Policies
Flemming Nielson, René Rydhof Hansen, Hanne Riis Nielson
ISoLA (2)1
2019 Timing Leaks and Coarse-Grained Clocks
abstract
Timing-based side-channel attacks have matured from an academic exercise to a powerful attack vector in the hand of real-world adversaries. A widely deployed countermeausure against such attacks is to reduce the accuracy of the clocks that are available to adversaries. While a number of high-profile attacks show that this mitigation can be side-stepped, there has not been a principled analysis of the degree of security it provides until now. In this paper, we perform the first information-flow analysis with respect to adversaries with coarse-grained clocks. To this end, we define an adversary model that is parametric in the granularity of the clock and connect it with a system model based on timed automata. We present algorithms for translating such a system to an information-theoretic channel, which enables us to analyze the leakage using standard techniques from quantitative information-flow analysis. We use our techniques to derive insights about the effect of reducing clock resolution on security. In particular, (1) we show that a coarse-grained clock might leak more than a fine-grained one, (2) we give a sufficient condition for when increasing the grain of the clock we achieve better security, and (3) we show that the attack techniques used in the literature form a strict hierarchy in terms of the information an adversary can extract using them. Finally, we illustrate the expressiveness of our development on a case study of a system that uses RSA signatures.
Panagiotis Vasilikos, Hanne Riis Nielson, Flemming Nielson, Boris Köpf
CSF3
2018 Process-Local Static Analysis of Synchronous Processes
Jan Midtgaard, Flemming Nielson, Hanne Riis Nielson
SAS2
2017 Time Dependent Policy-Based Access Control
abstract
Access control policies are essential to determine who is allowed to access data in a system without compromising the data's security. However, applications inside a distributed environment may require those policies to be dependent on the actual content of the data, the flow of information, while also on other attributes of the environment such as the time. In this paper, we use systems of Timed Automata to model distributed systems and we present a logic in which one can express time-dependent policies for access control. We show how a fragment of our logic can be reduced to a logic that current model checkers for Timed Automata such as UPPAAL can handle and we present a translator that performs this reduction. We then use our translator and UPPAAL to enforce time-dependent policy-based access control on an example application from the aerospace industry.
Panagiotis Vasilikos, Flemming Nielson, Hanne Riis Nielson
TIME2
2017 Modelling and Verifying Communication Failure of Hybrid Systems in HCSP
abstract
Hybrid systems are dynamic systems with interacting discrete computation and continuous physical processes. They have become ubiquitous in our daily life, e.g. automotive, aerospace and medical systems, and in particular, many of them are safety-critical. For a safety-critical hybrid system, the physical process evolves continuously with respect to time, and the discrete controller monitors and controls the physical process in a correct way such that the whole system satisfies the given safety requirements. The safety of hybrid systems depends heavily on the control from the controllers. However, in the presence of communication failure, the expected control from the controller will get lost and as a consequence the physical process cannot behave as expected. In this paper, we mainly consider the communication failure caused by the non-engagement of one party in communication action, i.e. the communication itself fails to occur. To address this issue, this paper proposes a formal framework by extending HCSP, a formal modeling language for hybrid systems, for modeling and verifying hybrid systems in the absence of receiving messages due to communication failure. We present two inference systems for verifying the models in the framework by leveraging the expressivity of the assertion languages and the efficiency of proofs, and correspondingly implement two theorem provers in Isabelle/HOL. To illustrate our approach, we consider a case study on train on-board control system originating from Chinese Train Control System, for which the two provers are applied separately and the proof results are compared.
Shuling Wang 0003, Flemming Nielson, Hanne Riis Nielson, Naijun Zhan
Comput. J.2
2017 Atomistic Galois insertions for flow sensitive integrity
Flemming Nielson, Hanne Riis Nielson
Comput. Lang. Syst. Struct.1
2017 Effect-driven QuickChecking of compilers
abstract
How does one test a language implementation with QuickCheck (aka. property-based testing)? One approach is to generate programs following the grammar of the language. But in a statically-typed language such as OCaml too many of these candidate programs will be rejected as ill-typed by the type checker. As a refinement Pałka et al. propose to generate programs in a goal-directed, bottom-up reading up of the typing relation. We have written such a generator. However many of the generated programs has output that depend on the evaluation order, which is commonly under-specified in languages such as OCaml, Scheme, C, C++, etc. In this paper we develop a type and effect system for conservatively detecting evaluation-order dependence and propose its goal-directed reading as a generator of programs that are independent of evaluation order. We illustrate the approach by generating programs to test OCaml's two compiler backends against each other and report on a number of bugs we have found doing so.
Jan Midtgaard, Mathias Nygaard Justesen, Patrick Kasting, Flemming Nielson, Hanne Riis Nielson
Proc. ACM Program. Lang.4
2016 Quantitative Verification and Synthesis of Attack-Defence Scenarios
abstract
Attack-defence trees are a powerful technique for formally evaluating attack-defence scenarios. They represent in an intuitive, graphical way the interaction between an attacker and a defender who compete in order to achieve conflicting objectives. We propose a novel framework for the formal analysis of quantitative properties of complex attack-defence scenarios, using an extension of attack-defence trees which models temporal ordering of actions and allows explicit dependencies in the strategies adopted by attackers and defenders. We adopt a game-theoretic approach, translating attack-defence trees to two-player stochastic games, and then employ probabilistic model checking techniques to formally analyse these models. This provides a means to both verify formally specified security properties of the attack-defence scenarios and, dually, to synthesise strategies for attackers or defenders which guarantee or optimise some quantitative property, such as the probability of a successful attack, the expected cost incurred, or some multi-objective trade-off between the two. We implement our approach, building upon the PRISM-games model checker, and apply it to a case study of an RFID goods management system.
Zaruhi Aslanyan, Flemming Nielson, David Parker 0001
CSF2
2016 Enforcing Availability in Failure-Aware Communicating Systems
Hugo A. López 0001, Flemming Nielson, Hanne Riis Nielson
FORTE2
2016 Towards Static Analysis of Policy-Based Self-adaptive Computing Systems
Andrea Margheri, Hanne Riis Nielson, Flemming Nielson, Rosario Pugliese
ISoLA (1)3
2016 Iterated process analysis over lattice-valued regular expressions
abstract
We present an iterated approach to statically analyze programs of two processes communicating by message passing. Our analysis operates over a domain of lattice-valued regular expressions, and computes increasingly better approximations of each process's communication behavior. Overall the work extends traditional semantics-based program analysis techniques to automatically reason about message passing in a manner that can simultaneously analyze both values of variables as well as message order, message content, and their interdependencies.
Jan Midtgaard, Flemming Nielson, Hanne Riis Nielson
PPDP2
2016 A Parametric Abstract Domain for Lattice-Valued Regular Expressions
Jan Midtgaard, Flemming Nielson, Hanne Riis Nielson
SAS2
2015 Klaim-DB: A Modeling Language for Distributed Database Applications
Xi Wu 0005, Ximeng Li 0001, Alberto Lluch-Lafuente, Flemming Nielson, Hanne Riis Nielson
COORDINATION4
2015 Set-Pi: Set Membership p-Calculus
abstract
Communication protocols often rely on stateful mechanisms to ensure certain security properties. For example, counters and timestamps can be used to ensure authentication, or the security of communication can depend on whether a particular key is registered to a server or it has been revoked. ProVerif, like other state of the art tools for protocol analysis, achieves good performance by converting a formal protocol specification into a set of Horn clauses, that represent a monotonically growing set of facts that a Dolev-Yao attacker can derive from the system. Since this set of facts is not state-dependent, the category of protocols of our interest cannot be precisely analysed by such tools, as they would report false attacks due to the over-approximation. In this paper we present Set-π, an extension of the Applied π-calculus that includes primitives for handling databases of objects, and propose a translation from Set-π into Horn clauses that employs the set-membership abstraction to capture the non-monotonicity of the state. Furthermore, we give a characterisation of authentication properties in terms of the set properties in the language, and prove the correctness of our approach. Finally we showcase our method with three examples, a simple authentication protocol based on counters, a key registration protocol, and a model of the Yubikey security device.
Alessandro Bruni, Sebastian Mödersheim, Flemming Nielson, Hanne Riis Nielson
CSF3
2015 Factorization of Behavioral Integrity
Ximeng Li 0001, Flemming Nielson, Hanne Riis Nielson
ESORICS (2)2
2014 The Stochastic Quality Calculus
Kebin Zeng, Flemming Nielson, Hanne Riis Nielson
COORDINATION2
2014 Automated Generation of Attack Trees
abstract
Attack trees are widely used to represent threat scenarios in a succinct and intuitive manner, suitable for conveying security information to non-experts. The manual construction of such objects relies on the creativity and experience of specialists, and therefore it is error-prone and impracticable for large systems. Nonetheless, the automated generation of attack trees has only been explored in connection to computer networks and levering rich models, whose analysis typically leads to an exponential blow-up of the state space. We propose a static analysis approach where attack trees are automatically inferred from a process algebraic specification in a syntax-directed fashion, encompassing a great many application domains and avoiding incurring systematically an exponential explosion. Moreover, we show how the standard propositional denotation of an attack tree can be used to phrase interesting quantitative problems, that can be solved through an encoding into Satisfiability Modulo Theories. The flexibility and effectiveness of the approach is demonstrated on the study of a national-scale authentication system, whose attack tree is computed thanks to a Java implementation of the framework.
Roberto Vigo, Flemming Nielson, Hanne Riis Nielson
CSF2
2014 Uniform Protection for Multi-exposed Targets
Roberto Vigo, Flemming Nielson, Hanne Riis Nielson
FORTE2
2014 Denial-of-Service Security Attack in the Continuous-Time World
Shuling Wang 0003, Flemming Nielson, Hanne Riis Nielson
FORTE2
2014 Formal Security Analysis of the MaCAN Protocol
Alessandro Bruni, Michal Sojka, Flemming Nielson, Hanne Riis Nielson
IFM3
2014 The Guided System Development Framework: Modeling and Verifying Communication Systems
Jose Quaresma, Christian W. Probst, Flemming Nielson
ISoLA (2)3
2014 The logic of XACML
Carroline Dewi Puspa Kencana Ramli, Hanne Riis Nielson, Flemming Nielson
Sci. Comput. Program.3
2014 Quantitative modelling and analysis of a Chinese smart grid: a stochastic model checking case study
Ender Yüksel, Hanne Riis Nielson, Flemming Nielson, Huibiao Zhu
Int. J. Softw. Tools Technol. Transf.3
2013 Broadcast, Denial-of-Service, and Secure Communication
Roberto Vigo, Flemming Nielson, Hanne Riis Nielson
IFM2
2013 Predictive access control for distributed computation
Chris Hankin, Flemming Nielson, Hanne Riis Nielson
Sci. Comput. Program.3
2012 Recursive Advice for Coordination
Michal Terepeta, Hanne Riis Nielson, Flemming Nielson
COORDINATION3
2012 Model Checking as Static Analysis: Revisited
Fuyuan Zhang, Flemming Nielson, Hanne Riis Nielson
IFM2
2012 Key Update Assistant for resource-constrained networks
abstract
Key update is a challenging task in resource-constrained networks where limitations in terms of computation, memory, and energy restrict the proper use of security mechanisms. We present an automated tool that computes the optimal key update strategy for any given resource-constrained network. We developed a push-button solution - powered by stochastic model checking - that network designers can easily benefit from, and it paves the way for consumers to set up key update related security parameters. Key Update Assistant, as we named it, runs necessary model checking operations and determines the optimal key update strategy that satisfies given security and performance requirements.
Ender Yüksel, Hanne Riis Nielson, Flemming Nielson
ISCC3
2012 LBTool: A stochastic toolkit for leave-based key updates
abstract
Quantitative techniques have been successfully employed in verification of information and communication systems. However, the use of such techniques are still rare in the area of security. In this paper, we present a toolkit that implements transient analysis on a key update method for wireless sensor networks. The analysis aims to find out the probability of a network key being compromised at a specific time point, which result in fluctuations over time for a specific key update method called Leave-based key update. For such a problem, the use of current tools is limited in many ways such as rapidly constructing a compact formal model, computing the time point where the risk is maximum, or terminating the transient analysis after the fluctuations disappear and system stabilizes. Our toolkit, LBTool, is not only resolving the above-mentioned issues, but also demonstrating how to construct models in an analytical way and how to speed up the analysis by eliminating redundant computations. The toolkit can be generalized to other key update methods by replacing the analytical model construction.
Ender Yüksel, Hanne Riis Nielson, Flemming Nielson, Bo Friis Nielsen
ISCC3
2012 XACML 3.0 in Answer Set Programming
Carroline Dewi Puspa Kencana Ramli, Hanne Riis Nielson, Flemming Nielson
LOPSTR3
2012 Layered fixed point logic
abstract
We present a logic for the specification of static analysis problems that goes beyond the logics traditionally used. Its most prominent feature is the direct support for both inductive computations of behaviors as well as co-inductive specifications of properties. Two main theoretical contributions are a Moore Family result and a parametrized worst case time complexity result. We show that the logic and the associated solver can be used for rapid prototyping of analyses and illustrate a wide variety of applications within Static Analysis, Constraint Satisfaction Problems and Model Checking. In all cases the complexity result specializes to the worst case time complexity of the classical methods.
Piotr Filipiuk, Flemming Nielson, Hanne Riis Nielson
PPDP2
2012 Modelling and Analysis of Smart Grid: A Stochastic Model Checking Case Study
abstract
Cyber-physical systems integrate information and communication technology functions to the physical elements of a system for monitoring and controlling purposes. The conversion of traditional power grid into a smart grid, a fundamental example of a cyber-physical system, raises a number of issues that require novel methods and applications. In this context, an important issue is the verification of certain quantitative properties of the system. In this paper, we consider a specific Chinese Smart Grid implementation as a case study and address the verification problem for performance and energy consumption. We employ stochastic model checking approach and present our modelling and analysis study using PRISM model checker.
Ender Yüksel, Huibiao Zhu, Hanne Riis Nielson, Flemming Nielson
TASE5
2011 Combining Static Analysis and Runtime Checking in Security Aspects for Distributed Tuple Spaces
Tomoyuki Aotani, Hidehiko Masuhara, Flemming Nielson, Hanne Riis Nielson
COORDINATION4
2011 Automata-Based CSL Model Checking
Lijun Zhang 0001, David N. Jansen, Flemming Nielson, Holger Hermanns
ICALP (2)3
2011 A Secure Key Establishment Protocol for ZigBee Wireless Sensor Networks
abstract
ZigBee is a wireless sensor network standard that defines network and application layers on top of IEEE 802.15.4's physical and medium access control layers. In the latest version of ZigBee, enhancements are prescribed for the security sublayer but we show in this paper that problems persist. In particular, we show that the end-to-end application key establishment protocol is flawed and we propose a secure protocol instead. We do so by using formal verification techniques based on static program analysis and process algebras. We present a way of using formal methods in wireless network security, and propose a secure key establishment protocol for ZigBee networks.
Ender Yüksel, Hanne Riis Nielson, Flemming Nielson
Comput. J.3
2011 CaPiTo: protocol stacks for services
abstract
Abstract CaPiTo allows the modelling of service-oriented applications using process algebras at three levels of abstraction. The abstract level focuses on the key functionality of the services; the plug-in level shows how to obtain security using standardised protocol stacks; finally, the concrete level allows to consider how security is obtained using asymmetric and symmetric cryptographic primitives. The CaPiTo approach therefore caters for a variety of developers that need to cooperate on designing and implementing service-oriented applications. We show how to formally analyse CaPiTo specifications for ensuring the absence of security flaws. The method used is based on static analysis of the corresponding LySa specifications. We illustrate the development on two industrial case studies; one taken from the banking sector and the other a single sign-on protocol.
Han Gao 0002, Flemming Nielson, Hanne Riis Nielson
Formal Aspects Comput.2
2011 Modal abstractions of concurrent behavior
abstract
We present an effective algorithm for the automatic construction of finite modal transition systems as abstractions of potentially infinite concurrent processes. Modal transition systems are recognized as valuable abstractions for model checking because they allow for the validation as well as refutation of safety and liveness properties. However, the algorithmic construction of finite abstractions from potentially infinite concurrent processes is a missing link that prevents their more widespread usage for model checking of concurrent systems. Our algorithm is a worklist algorithm using concepts from abstract interpretation and operating upon mappings from sets to intervals in order to express simultaneous over- and underapproximations of the multisets of process actions available in a particular state. We obtain a finite abstraction that is 3-valued in both states and transitions and that supports the definition of a 3-valued modal logic for validating as well as refuting properties of systems. The construction is illustrated on a few examples, including the Ingemarsson-Tang-Wong key agreement protocol.
Flemming Nielson, Sebastian Nanz, Hanne Riis Nielson
ACM Trans. Comput. Log.1
2010 Model Checking Is Static Analysis of Modal Logic
Flemming Nielson, Hanne Riis Nielson
FoSSaCS1
2010 Static analysis of topology-dependent broadcast networks
Sebastian Nanz, Flemming Nielson, Hanne Riis Nielson
Inf. Comput.2
2010 From Flow Logic to static type systems for coordination languages
Rocco De Nicola, Daniele Gorla, René Rydhof Hansen, Flemming Nielson, Hanne Riis Nielson, Christian W. Probst, Rosario Pugliese
Sci. Comput. Program.4
2009 Advice from Belnap Policies
abstract
Coordination languages for mobile, distributed systems constitute a good basis for the use of aspect-oriented features for providing a clear separation between the functionality and the security policies of programs. Allowing for a distributed definition of aspects, that jointly define a security policy, provide for a number of challenges regarding how to deal with conflicts and how to demonstrate that an overall security policy is met. We adapt recent work on policy composition using Belnap Logic to provide a uniform treatment of conflicts. We further define a modal logic to allow reasoning about the overall security policy. Throughout, we illustrate the developments by examples drawn from health service policies.
Chris Hankin, Flemming Nielson, Hanne Riis Nielson
CSF2
2009 A monotone framework for CCS
Hanne Riis Nielson, Flemming Nielson
Comput. Lang. Syst. Struct.2
2008 Static Validation of Licence Conformance Policies
abstract
Policy conformance is a security property gaining importance due to commercial interest like Digital Rights Management. It is well known that static analysis can be used to validate a number of more classical security policies, such as discretionary and mandatory access control policies, as well as communication protocols using symmetric and asymmetric cryptography. In this work we show how to develop a Flow Logic for validating the conformance of client software with respect to a licence conformance policy. Our approach is sufficiently flexible that it extends to fully open systems that can admit new services on the fly.
René Rydhof Hansen, Flemming Nielson, Hanne Riis Nielson, Christian W. Probst
ARES2
2008 Advice for Coordination
Chris Hankin, Flemming Nielson, Hanne Riis Nielson
COORDINATION2
2008 From Flow Logic to Static Type Systems for Coordination Languages
Rocco De Nicola, Daniele Gorla, René Rydhof Hansen, Flemming Nielson, Hanne Riis Nielson, Christian W. Probst, Rosario Pugliese
COORDINATION4
2008 Iterative Specialisation of Horn Clauses
Christoffer Rosenkilde Nielsen, Flemming Nielson, Hanne Riis Nielson
ESOP2
2008 From generic to specific: off-line optimization for a general constraint solver
abstract
A general constraint solver simplifies the implementation of program analyses because constraint generation can then be separated from constraint solving. In return, a general solver often needs to sacrifice performance for generality. We describe a strategy that given a set of constraints first performs off-line optimizations (performed before the execution of the solver) which enable a solver to find (potential) equivalences between analysis variables so as to reduce the problem space and thus improve performance. The idea is that different analyses use different subsets of constraints. As a result, a specific property may hold for the subsets and a specific optimization can be conducted on the constraints.
Ye Zhang 0002, Torben Amtoft, Flemming Nielson
GPCE3
2008 Relational Analysis of Correlation
Jörg Kreiker, Flemming Nielson, Hanne Riis Nielson, Henrik Pilegaard
SAS2
2008 Modal Abstractions of Concurrent Behaviour
Sebastian Nanz, Flemming Nielson, Hanne Riis Nielson
SAS2
2007 Topology-Dependent Abstractions of Broadcast Networks
Sebastian Nanz, Flemming Nielson, Hanne Riis Nielson
CONCUR2
2007 A flow-sensitive analysis of privacy properties
abstract
In this paper we consider service oriented architectures where many components interact with one another using a wireless network. We are interested in questions like: ldr Can I be sure that I do not get unsolicited information from some service? - unless I give my permission? ldr Can I be sure that information I send to some service never is leaked to another service? - unless I give my permission? We shall develop a static program analysis for the pi- calculus and show how it can be used to give privacy guarantees like the ones requested above. The analysis records the explicit information flow of the system and keeps track of, not only the potential configurations of the system, but also the order in which they may be encountered.
Hanne Riis Nielson, Flemming Nielson
CSF2
2007 A Scalable Inclusion Constraint Solver Using Unification
Ye Zhang 0002, Flemming Nielson
LOPSTR2
2007 What is a free name in a process algebra?
Flemming Nielson, Hanne Riis Nielson, Henrik Pilegaard
Inf. Process. Lett.1
2006 Sandboxing in myKlaim
abstract
The /spl mu/Klaim calculus is a process algebra designed to study the programming of distributed systems consisting of a number of locations each having their own tuple space and collection of mobile processes. Previous work has explored how to incorporate a notion of capabilities to be enforced dynamically by means of a reference monitor. Our first contribution is to describe a sandboxing semantics for the remote evaluation of mobile code; we then develop a succinct flow logic for statically guaranteeing the properties enforced by the reference monitor and hence for dispensing with the overhead of a dynamic reference monitor. Our second contribution is an extension of the calculus to interact with an environment; processes enter the system from the environment and we develop an entry-condition that is sufficient for ensuring that the resulting system continues to guarantee the properties that would otherwise need to be dynamically enforced by the reference monitor. We call the resulting calculus myKlaim.
René Rydhof Hansen, Christian W. Probst, Flemming Nielson
ARES3
2005 Static validation of security protocols
abstract
We methodically expand protocol narrations into terms of a process algebra in order to specify some of the checks that need to be made in a protocol. We then apply static analysis technology to develop an automatic validation procedure for protocols.
Chiara Bodei, Mikael Buchholtz, Pierpaolo Degano, Flemming Nielson, Hanne Riis Nielson
J. Comput. Secur.4
2004 Spatial Analysis of BioAmbients
Hanne Riis Nielson, Flemming Nielson, Henrik Pilegaard
SAS2
2004 The Succinct Solver Suite
Flemming Nielson, Hanne Riis Nielson, Hongyan Sun, Mikael Buchholtz, René Rydhof Hansen, Henrik Pilegaard, Helmut Seidl
TACAS1
2003 Automatic Validation of Protocol Narration
abstract
We perform a systematic expansion of protocol narrations into terms of process algebra in order to make precise some of the detailed checks that need to be made in a protocol. We then apply static analysis technology to develop an automatic validation procedure for protocols. Finally, we demonstrate that these techniques suffice for identifying a number of authentication flaws in symmetric key protocols such as Needham-Schroeder, Otway-Rees, Yahalom and Andrew Secure RPC.
Chiara Bodei, Mikael Buchholtz, Pierpaolo Degano, Flemming Nielson, Hanne Riis Nielson
CSFW4
2003 Abstract interpretation of mobile ambients
Flemming Nielson, René Rydhof Hansen, Hanne Riis Nielson
Sci. Comput. Program.1
2002 Automatic Complexity Analysis
Flemming Nielson, Hanne Riis Nielson, Helmut Seidl
ESOP1
2002 Normalizable Horn Clauses, Strongly Recognizable Relations, and Spi
Flemming Nielson, Hanne Riis Nielson, Helmut Seidl
SAS1
2002 Flow logic for Dolev-Yao secrecy in cryptographic processes
Chiara Bodei, Pierpaolo Degano, Flemming Nielson, Hanne Riis Nielson
Future Gener. Comput. Syst.3
2002 Validating firewalls using flow logics
Flemming Nielson, Hanne Riis Nielson, René Rydhof Hansen
Theor. Comput. Sci.1
2001 Control-Flow Analysis in Cubic Time
Flemming Nielson, Helmut Seidl
ESOP1
2001 Static Analysis for the pi-Calculus with Applications to Security
Chiara Bodei, Pierpaolo Degano, Flemming Nielson, Hanne Riis Nielson
Inf. Comput.3
2001 Kleene's Logic with Equality
Flemming Nielson, Hanne Riis Nielson, Shmuel Sagiv
Inf. Process. Lett.1
2000 A Kleene Analysis of Mobile Ambients
Flemming Nielson, Hanne Riis Nielson, Shmuel Sagiv
ESOP1
2000 Shape Analysis for Mobile Ambients
abstract
The ambient calculus is a calculus of computation that allows active processes to move between sites. We present an analysis inspired by state-of-the-art pointer analyses that safety and accurately predicts which processes may turn up at what sites during the execution of a composite system. The analysis models sets of processes by sets of regular tree grammars enhanced with context-dependent counts, and it obtains its precision by combining a powerful redex materialisation with a strong redex reduction (in the manner of the strong updates performed in pointer analyses). The underlying ideas are flexible and scale up to general tree structures admitting powerful restructuring operations.
Hanne Riis Nielson, Flemming Nielson
POPL2
1999 Validating Firewalls in Mobile Ambients
Flemming Nielson, Hanne Riis Nielson, René Rydhof Hansen, Jacob Grydholt Jensen
CONCUR1
1999 Interprocedural Control Flow Analysis
Flemming Nielson, Hanne Riis Nielson
ESOP1
1999 Static Analysis of Processes for No and Read-Up nad No Write-Down
Chiara Bodei, Pierpaolo Degano, Flemming Nielson, Hanne Riis Nielson
FoSSaCS3
1999 Abstract Interpretation of Mobile Ambients
René Rydhof Hansen, Jacob Grydholt Jensen, Flemming Nielson, Hanne Riis Nielson
SAS3
1998 Flow Logics for Constraint Based Analysis
Hanne Riis Nielson, Flemming Nielson
CC2
1998 Control Flow Analysis for the pi-calculus
Chiara Bodei, Pierpaolo Degano, Flemming Nielson, Hanne Riis Nielson
CONCUR3
1998 Behaviour Analysis and Safety Conditions: A Case Study in CML
Hanne Riis Nielson, Torben Amtoft, Flemming Nielson
FASE3
1998 Flow Logic for Imperative Objects
Flemming Nielson, Hanne Riis Nielson
MFCS1
1998 Strictness and Totality Analysis
Kirsten Lackner Solberg Gasser, Hanne Riis Nielson, Flemming Nielson
Sci. Comput. Program.3
1998 Behavior Analysis for Validating Communication Patterns
Torben Amtoft, Hanne Riis Nielson, Flemming Nielson
Int. J. Softw. Tools Technol. Transf.3
1997 Systematic Realisation of Control Flow Analyses for CML
abstract
We present a methodology for the systematic realisation of control flow analyses and illustrate it for Concurrent ML. We start with an abstract specification of the analysis that is next proved semantically sound with respect to a traditional small-step operational semantics; this result holds for terminating as well as non-terminating programs. The analysis is defined coinductively and it is shown that all programs have a least analysis result (that is indeed the best one). To realise the analysis we massage the specification in three stages: (i) to explicitly record reachability of subexpressions, (ii) to be defined in a syntax-directed manner, and (iii) to generate a set of constraints that subsequently can be solved by standard techniques. We prove equivalence results between the different versions of the analysis; in particular it follows that the least solution to the constraints generated will be the least analysis result also to the initial specification. 1 Introduction Many c...
Kirsten Lackner Solberg Gasser, Flemming Nielson, Hanne Riis Nielson
ICFP2
1997 Prescriptive Frameworks for Multi-Level Lambda-Calculi
abstract
Two-level -calculi have been heavily utilised for applications such as partial evaluation, abstract interpretation and code generation. Each of these applications pose different demands on the exact details of the twolevel structure and the corresponding inference rules. In a previous paper we have developed a descriptive framework for characterising the key ingredients used in the various applications. Based on the insights offered by this characterisation we now develop a prescriptive framework that offers firm guidelines on what we regard as "good" definitions of multi-level lambda-calculi. 1 Introduction The literature has seen quite a number of multi-level languages used for different purposes: partial evaluation [5], code generation [8] and abstract interpretation [7]. At the surface, they all seem very different and in a recent paper [11] we performed a careful descriptive study of the multi-level lambda-calculi found in the literature. This allowed us to highlight a number ...
Flemming Nielson, Hanne Riis Nielson
PEPM1
1997 Infinitary Control Flow Analysis: a Collecting Semantics for Closure Analysis
abstract
Defining the collecting semantics is usually the first crucial step in adapting the general methodology of abstract interpretation to the semantic framework or programming language at hand. In this paper we show how to define a collecting semantics for control flow analysis: due to the generality of the formulation we need to appeal to coinduction (or greatest fixed points) in order to define the analysis. We then prove the semantic soundness of the collecting semantics and that all totally deterministic instantiations have a least solution; this incorporates k-CFA, polymorphic splitting and a new class of uniform-k-CFA analyses.
Hanne Riis Nielson, Flemming Nielson
POPL2
1997 Type and Behaviour Reconstruction for Higher-Order Concurrent Programs
abstract
In this paper we develop a sound and complete type and behaviour inference algorithm for a fragment of CML (Standard ML with primitives for concurrency). Behaviours resemble terms of a process algebra and yield a concise representation of the communications taking place during execution; types are mostly as usual except that function ypes and ‘delayed communication types’ are labelled by behaviours expressing the communications that will take place if the function is applied or the delayed action is activated. The development of the present paper improves a previously published algorithm in achieving completeness as well as soundness; this is due to an alternative strategy for generalising over types and behaviours.
Torben Amtoft, Flemming Nielson, Hanne Riis Nielson
J. Funct. Program.2
1996 Semantics-Directed Program Analysis: A Tool-Maker's Perspective
Flemming Nielson
SAS1
1996 From CML to its Process Algebra
Flemming Nielson, Hanne Riis Nielson
Theor. Comput. Sci.1
1994 Higher-Order Concurrent Programs with Finite Communication Topology
abstract
Concurrent ML (CML) is an extension of the functional language Standard ML(SML) with primitives for the dynamic creation of processes and channels and for the communication of values over channels. Because of the powerful abstraction mechanisms the communication topology of a given program may be very complex and therefore an efficient implementation may be facilitated by knowledge of the topology.
Hanne Riis Nielson, Flemming Nielson
POPL2
1994 The Tensor Product in Wadler's Analysis of Lists
Flemming Nielson, Hanne Riis Nielson
Sci. Comput. Program.1
1993 From CML to Process Algebras (Extended Abstract)
Flemming Nielson, Hanne Riis Nielson
CONCUR1
1992 The Tensor Product in Wadler's Analysis of Lists
Flemming Nielson, Hanne Riis Nielson
ESOP1
1992 Bounded Fixed Point Iteration
abstract
In the context of abstract interpretation we study the number of times a functional need to be unfolded in order to give the least fixed point. For the cases of the total or monotone functions we obtain an exponential bound and in the case of strict and additive (or distributive) functions we obtain a quadratic bound. These bounds are shown to be tight. Specialising the case of strict and additive functions to functionals of a form that would correspond to iterative programs we show that a linear bound is tight. We demonstrate the relation to several analyses studied in the literature (including strictness analysis).
Hanne Riis Nielson, Flemming Nielson
POPL2
1992 Forced transformation of Occam programs
Flemming Nielson, Hanne Riis Nielson
Inf. Softw. Technol.1
1992 Bounded Fixed-Point Iteration
abstract
In the context of abstract interpretation for languages without higher-order features we study the number of times a functional need to be unfolded in order to give the least fixed point. For the cases of total or monotone functions we obtain an exponential bound and in the case of strict and additive (or distributive) functions we obtain a quadratic bound. These bounds are shown to be tight in that sufficiently long chains of functions can be shown to exist. Specializing the case of strict and additive functions to functionals of a form that would correspond to iterative programs we show that a linear bound is tight. This is related to several analyses studied in the literature (including strictness analysis).
Hanne Riis Nielson, Flemming Nielson
J. Log. Comput.2
1991 Using Transformations in the Implementations of Higher-Order Functions
abstract
Abstract Traditional functional languages do not have an explicit distinction between binding times. It arises implicitly, however, as one typically instantiates a higher-order function with the arguments that are known, whereas the unknown arguments remain to be taken as parameters. The distinction between ‘ known ’ and ‘ unknown ’ is closely related to the distinction between binding times like ‘ compile-time ’ and ‘ run-time ’. This leads to the use of a combination of polymorphic type inference and binding time analysis for obtaining the required information about which arguments are known. Following the current trend in the implementation of functional languages we then transform the run-time level of the program (not the compile-time level) into categorical combinators . At this stage we have a natural distinction between two kinds of program transformations: partial evaluation , which involves the compile-time level of our notation, and algebraic transformations (i.e., the application of algebraic laws), which involves the run-time level of our notation. By reinterpreting the combinators in suitable ways we obtain specifications of abstract interpretations (or data flow analyses). In particular, the use of combinators makes it possible to use a general framework for specifying both forward and backward analyses . The results of these analyses will be used to enable program transformations that are not applicable under all circumstances. Finally, the combinators can also be reinterpreted to specify code generation for various (abstract) machines. To improve the efficiency of the code generated, one may apply abstract interpretations to collect extra information for guiding the code generation. Peephole optimizations may be used to improve the code at the lowest level.
Hanne Riis Nielson, Flemming Nielson
J. Funct. Program.2
1990 Eureka Definitions for Free! or Disagreement Points for Fold/Unford Transformations
Hanne Riis Nielson, Flemming Nielson
ESOP2
1990 Functional Completeness of the Mixed lambda-Calculus and Combinatory Logic
Hanne Riis Nielson, Flemming Nielson
Theor. Comput. Sci.2
1989 Two-Level Semantics and Abstract Interpretation
Flemming Nielson
Theor. Comput. Sci.1
1988 2-level lambda-lifting
Flemming Nielson, Hanne Riis Nielson
ESOP1
1988 Automatic Binding Time Analysis for a Typed Lambda-Calculus
abstract
For a typed λ-calculus we develop an algorithm that, given some partial information about what must happen at run-time, will work out what actually can be computed at compile-time and what must be deferred to run-time.
Hanne Riis Nielson, Flemming Nielson
POPL2
1988 Strictness Analysis and Denotational Abstract Interpretation
Flemming Nielson
Inf. Comput.1
1988 Automatic Binding Time Analysis for a Typed lambda-Calculus
Hanne Riis Nielson, Flemming Nielson
Sci. Comput. Program.2
1988 Two-Level Semantics and Code Generation
Flemming Nielson, Hanne Riis Nielson
Theor. Comput. Sci.1
1987 Strictness Analysis and Denotational Abstract Interpretation
abstract
A theory of abstract interpretation [CoCo79] is developed for a typed λ-calculus. The typed λ-calculus is the “static” part of a two-level denotational metalanguage for which abstract interpretation was developed in [Nie86]. The present development relaxes a condition imposed in [Nie86] and this suffices to make the framework applicable to strictness analysis for the λ-calculus. This shows the possibility of a general theory (and hence a system) for the analysis of functional programs. Furthermore, it gives more insight into the relative precision of the various analyses. In particular, it is shown that a collecting (static [CoCo79]) semantics exists, thus answering a problem left open in [BHA86].
Flemming Nielson
POPL1
1986 Correctness of Code Generation from a Two-Level Meta-Language
Flemming Nielson
ESOP1
1986 Pragmatic Aspects of Two-Level Denotational Meta-Languages
Hanne Riis Nielson, Flemming Nielson
ESOP2
1986 Abstract Interpretation of Denotational Definions (A Survey)
Flemming Nielson
STACS1
1985 Program Transformations in a Denotational Setting
abstract
Program transformations are frequently performed by optimizing compilers, and the correctness of applying them usually depends on data flow information. For language-to-same-language transformations, it is shown how a denotational setting can be useful for validating such program transformations. Strong equivalence is obtained for transformations that exploit information from a class of forward data flow analyses, whereas only weak equivalence is obtained for transformations that exploit information from a class of backward data flow analyses. To obtain strong equivalence, both the original and the transformed program must be data flow analysed, but consideration of a transformation-exploiting liveness of variables indicates that a more satisfactory approach may be possible.
Flemming Nielson
ACM Trans. Program. Lang. Syst.1
1983 Strong Abstract Interpretation Using Power Domains (Extended Abstract)
Alan Mycroft, Flemming Nielson
ICALP2
1982 A Denotational Framework for Data Flow Analysis
Flemming Nielson
Acta Informatica1