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 <http://www.eros-os.org/pipermail/e-lang/2001-August/005539.html>.

For patterns useful in CapabilityOrientedProgramming, see CategorySecurityPatterns.

The following discussion comes from http://www.combex.com/papers/darpa-report/html/index.html#unchecked , 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] { E.call(innerObj, verb, args) } } 
		def revoker { to revoke() { innerObj := null } }
		[revoker, forwarder] 
	} 


Also see ObjectCapabilityModel, CapabilitySecurityModel.


CategorySecurity

EditText of this page (last edited April 6, 2010) or FindPage with title or text search