Pages

Saturday, August 7, 2010

Software Tools: Programming Language Theory Meets Usability

Software Tools: Programming Language Theory Meets Usability

Abstract

Software tools provide essential assistance to software engineering activities by supporting the comprehension, manipulation, and management of various software artifacts. Successful tools achieve this by (i) automating some analysis and/or transformation operation upon those artifacts; and (ii) doing so via an appropriate and effective user interface. Programming language theory (e.g., grammars, semantics) is often brought to bear when building software tools, but this only addresses the first part of the problem: a clear appreciation of the subtleties of human-computer interaction is also required. In this talk I will argue that the key to constructing effective software tools lies at the nexus between these two (radically different) disciplines. I will illustrate this viewpoint by discussing my Ph.D. work, which involved the development of incremental compilation techniques as a foundation technology for interactive software development environments. I will also discuss some future research directions in the area of usability issues in formal software development environments.

Evolutionary Computation for Learning Rules to Trade Financial Markets

Evolutionary Computation for Learning Rules to Trade Financial Markets

Abstract

Evolutionary Computation and other biologically inspired learning algorithms are particularly suitable for the task of modelling financial markets. Financial markets are complex, ever changing environments with no fixed set of driving factors; but rather there is a varying set of interacting factors with dynamic effects over time. The adaptive search capabilities of evolutionary algorithms, in defining flexible and changing models, have been used in both real world forecasting applications and research to develop insight into the nature of financial markets. In this talk we discuss an application of Evolutionary Computation to learning trading rules together with some initial results of the system describing performance in deriving risk-adjusted returns from stocks in the Morgan Stanley Capital International (MSCI) Europe Index.

Non-Delegatable Authorities in Capability Systems

Non-Delegatable Authorities in Capability Systems

Abstract

Unlike more conventional access control systems, such as Access Control Lists (ACLs), capability systems are inherently suited to controlling access in very large distributed systems. Capability systems scale easily and provide natural support for the Principle of Least Authority (POLA). However, many people have argued that the inability to prevent delegation (capability passing) in capability systems hinders security. We show that it is possible, in some capability systems, to distribute authority while ensuring it cannot be delegated. We present a technique, which we call the Non-Delegatable Authority (NDA), that prevents subjects from sharing the exact same authority that they have been given with anyone else. This is a feature present in other access control systems, such as those based on ACLs that has been thought impossible to implement in capability systems. Our implementation is presented within the context of the object-capability model, which accurately reflects many capability implementations, including the Annex capability system. We show how NDAs can be wielded as if they were ordinary capabilities without breaking the non-delegatability constraint. We also show how NDAs may be used to implement ACL-like constructs and how their basic pattern can be applied to build Multi-Level Security identity-based access controls within the Annex testbed.