Capability Oriented Programming

Programming in the ObjectCapabilityModel requires a style very similar to normal ObjectOrientedProgramming, but there are differences. Some comments on this are at <>.

For patterns useful in CapabilityOrientedProgramming, see CategorySecurityPatterns.

The following discussion comes from , and is written in the context of a security review of a system using EeLanguage.

Explicit Differences between CapabilityOrientedProgramming and ObjectOrientedProgramming include:

	def makeRevokableForwarderPair(obj) :any { 
		var innerObj := obj 
		def forwarder { match [verb, args] {, verb, args) } } 
		def revoker { to revoke() { innerObj := null } }
		[revoker, forwarder] 

Also see ObjectCapabilityModel, CapabilitySecurityModel.


View edit of April 6, 2010 or FindPage with title or text search