Agent Oriented Programming

The term "Agent-Oriented Programming" was coined originally by Yoav Shoham (http://robotics.stanford.edu/~shoham), who also produced a seminal agent programming language, semantics, and so on. The key paper is "Agent Oriented Programming".


See also: WhatIsAnAgent


Another view:

AgentOrientedProgramming is nothing more than a BuzzWord that builds on the ubiquity of the term ObjectOrientedProgramming. The term AgentOriented is most often used in the acronym AOIS, AgentOrientedInformationSystem. However, there are many AgentOriented programs and there are various SIGS for AgentOriented software.


I actually see a high-level similarity between AgentOrientedProgramming and ObjectOrientedProgramming: both are essentially new ways of organizing old things.

Before OOP, you had your StructuredProgramming data structures and functions. OOP told you to put the functions in the data structures with the data they used. The contents of the code remained pretty much the same, but now it was better organized (for most purposes; if not, OOP might not be applicable to your situation).

The concept of an object was the key; it was illuminated by the organizing principle: put your functions and data structures together in objects.

Before AOP, you have your code sorted into objects (I hope). AOP tells you to put objects that have the same goal together - even if they execute in different contexts. The contents of your code will remain pretty much the same, but now it's better organized (for most purposes; if not, AOP might not be applicable to your situation).

The concept of an agent is the key; it's illuminated by the organizing principle: an agent has a goal that it tries to achieve, multiple possible execution contexts, and coordinates with other agents (including humans).

Of course, a better organizational system makes some things much cheaper to do; given a fixed budget, therefore, some things might be possible that weren't possible before. Automation of the organization is helpful, too: can you imagine refactoring without the support of an OO programming language?

AOP looked like it had a narrow realm of applicability to me, until I started thinking about various pieces of code having goals, and realized most of them do. -- GeorgePaci


CategoryComparisons CategoryAgentOriented


EditText of this page (last edited November 20, 2004) or FindPage with title or text search