An Agent Oriented Programming Language Targeting the Microsoft Common Language Runtime

Vecchiola C., Coccoli M. and Gozzi A.
University of Genova
Department of Computer, Communication, and Systems Science
Via Opera Pia, 13 – 16145 Genova

e-mail:  {coccoli, gozzi}

Keywords:“Agent Programming Language”, “Microsoft CLR”, ".NET Reflection"

The aim of this paper is that of describing a new agent programming language targeting the Microsoft Common Language Runtime (CLR). The guidelines for the realization of a suited agent programming language, that is an agent-oriented language, can be derived according to the basic characteristics that software agents must have. Software agents must be:

Agent programming will still be based on object-oriented programming, even better, it can be considered an extension of object-oriented paradigm. As well as object-oriented programming fully exploits the structured programming basic concepts, agent-oriented programming will strongly benefit of both the object-oriented model and logic programming theoretical basis. Such a solution can rely on existing compilers, normally composed by:

In order to define the new paradigm, syntax, vocabulary, and a new semantic are needed; on the other hand, from the compiler point of view, no change is necessary for what concerns the code generator. By means of a slight modification to the compiler front-end aimed to the development of lexical analysis and parsing modules, a new language can be considered and then compiled.

Such a new language will be designed based on an existing language to rely on: the C# language. Adding some keywords and constructs will be enough for the definition of the new language; such newly introduced elements can be translated in items of the underlying C# language, and then “compiled”; with this term, the authors mean the activity of cross-compiling from a certain self-defined language, to the C#, whose elements are a sub-set of the elements available in the new language.

The C# language in the .NET framework, have been found to be the best solution thanks to the following reasons:

The proposed work deals with the implementation issues of a compiler targeting the CLR. Different possible solutions are treated.