Advances in computer technology in general and computer networks in particular have significantly affected the requirements of modern applications, where the need to operate in decentralised environments is of primary importance. The conceptual models of the applications are also becoming complex and semantically rich.A promising technology towards the design and development of systems of such domains is agent based systems. Agents, having a knowledge component, act and interact with other agents and information sources in order to achieve some goals. Platforms intended for supporting the development of such systems should offer a number of features, including communication, concurrency, mobility, high level data structures, object orientation etc.This book describes the design and implementation of such a language platform called April++ and its use on a number of applications. Methodologically, in designing and implementing the language, a layered approach has been adopted. April++ has been developed as a series of macro defined layers on top of the relatively primitive features of a pre-existing language called April.On top of April++, an agent layer has been built (as a set of pre-defined classes) for constructing agent based systems. This layer has been customised for specific application domains considered. This includes a mobile agent application, a distributed database application and a network management one.