(Imperative and) Declarative Programming Languages for Multi-Agent Systems João Alexandre Leite CENTRIA - New University of Lisbon Ljubljana, March 1st, 2005
Ljubljana, March 1st, Declarative vs Imperative ► Declarative description A grandchild to x is a child of one of x’s children. ► Imperative description I To find a grandchild of x, first find a child of x. Then find a child of that child. ► Imperative description II To find a grandchild of x, first find a parent-child pair and then check if the parent is a child of x. ► Imperative description III To find a grandchild of x, compute the factorial of 123, then find a child of x. Then find a child of that child. Imperative implementation read(person); for i := 1 to maxp do if p[i;1] = person then for j := 1 to maxp do if p[j;1] = p[i;2] then write(p[j;2]); fi od fi od Declarative implementation gc(X,Z) :- c(X,Y), c(Y,Z).
March 1st, Declarative vs Imperative ImperativeDeclarative Paradigm Describe HOW to solve the problem Describe WHAT the problem is Program A sequence of commands A set of statements Examples C, Fortran, Ada, JAVA PROLOG, LISP, OZ HASKELL, ASP Advantages Fast, Specialized programs General, Readable, Correct (?) programs
March 1st, Logic Based MAS ► ConGolog [De Giacomo et al.] ► 3APL [Dastani et al.] ► IMPACT [Subrahmanian et al.] ► Conc. MetateM [Fisher et al.] ► AgentSpeak(L) [Rao et al.] ► DyLog [Baldoni et al.] ► hhf [Delzanno et al.] ► AGENT 0 [Shoham] ► FLUX [Thielscher et al.] ► JASON [Bordini et al.] ► DALI [Costantini et al.] ► KARO [van Linder et al.] ► PROSOCS [Stathis et al.] ► MINERVA [Leite et al.] ► ALIAS [Ciampolini et al.] ►...
March 1st, CLIMA & DALT ► Constantly increasing number of submitted papers (35 papers each in last editions) ► Covering most topics seen in current MAS research: Negotiaton Planning Protocols Learning Adaptation Cooperation Communication Verification Reasoning Institutions Social Norms Architectures and Environments Trust Belief Revision and Update Programming Languages Software Engineering
March 1st, Implementations PROLOG ► ConGolog ► Conc. MetateM ► DyLog ► hhf ► FLUX ► DALI ► MINERVA ► ALIAS JAVA & PROLOG ► 3APL ► PROSOCS How are these systems implemented? JAVA ► IMPACT ► JASON Common LISP ► AGENT 0
March 1st, Some thoughts... ► On the opportunities MAS provides to DLs... The high (and increasing) complexity of MAS calls for DLs Declarative Languages are guilty until proven innocent!! ► On speed of DLs... Drop the “it’s only for prototyping” excuse Tackle “proper” implementations Work together with major DL implementation groups (e.g. XSB...) ► On ease of programming DLs and training costs... Train students at undergraduate level
March 1st, Proposed Questions... ► Generic DLs (not developed ad-hoc for MAS development) such as PROLOG, Oz, Haskell, Scheme,... could be used to develop such systems, but is it really more helpful? ► Pure declarative implementations or hybrid? ► How can DLs be used together with imperative ones? ► How can DLs facilitate the MAS development? ► It seems that DLs can be applied to define the high-level behavior of an agent. Where else?