• Publications
  • Influence
Typestate-oriented programming
Objects model the world, and state is fundamental to a faithful modeling. Engineers use state machines to understand and reason about state transitions, but programming languages provide littleExpand
  • 110
  • 9
  • Open Access
CAMEL: A Tool for Collaborative Distributed Software Design
Software design activities require rich communication channels where developers can exchange information in multiple ways. It is well established that geographic distribution impacts negatively onExpand
  • 42
  • 2
Plaid: a permission-based programming language
Access permissions (permissions for short) are a lightweight way to specify how an object may be aliased and whether aliases allow mutation. Prior work has demonstrated the value of permissions forExpand
  • 6
  • 2
The Plaid Language: Typed Core Specification
Abstract : Plaid is an object oriented programming language built on two paradigms. First, Plaid is typestate-oriented. Programmers can directly encode the abstract states of objects and use theExpand
  • 7
  • 1
A theory of typestate-oriented programming
Engineers in many disciplines use state machines to reason about system changes, and many object-oriented libraries require their clients to follow state machine protocols. No existing language,Expand
  • 7
  • Open Access
Permission-based programming languages: NIER track
Linear permissions have been proposed as a lightweight way to specify how an object may be aliased, and whether those aliases allow mutation. Prior work has demonstrated the value of permissions forExpand
  • 5
  • Open Access
Permission-based programming languages.
  • 2
A Language-based Approach to Specification and Enforcement of Architectural Protocols
Abstract : Software architecture research has proposed using protocols for specifying the interactions between components through ports. Enforcing these protocols in an implementation is difficult.Expand
  • 4
  • Open Access
Language support for distributed proxies
Proxies are ubiquitous in distributed systems. They are mainly used to provide transparent access to server objects, and in some cases for additional functions such as caching, message routing,Expand
E-business System Development: Review on Methods, Design Factors, Techniques and Tools with an Extensive Case Study for Secure Online Retail Selling Industry
The potential of the internet economy demands newer business models and all-round information systems. The cross-enterprise business process requires high co-ordination of the customers and theExpand
  • 6