Vecchiola C., Coccoli M. and Gozzi A.
University of Genova
Department of Computer, Communication, and Systems Science
Via Opera Pia, 13 – 16145 Genova
Italy
e-mail: capsule@email.it {coccoli, gozzi}@dist.unige.it | http://www.lido.dist.unige.it |
Keywords:“Agent Programming Language”, “Microsoft CLR”, ".NET Reflection"
Abstract
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.