Something NEW?.....Naaa...Not much.

↑ Grab this Headline Animator

Friday 7 December 2007

X++...

X++. What's this?
The World's First Full XML-Based Programming Language.

Work on X++ began in 2001 and the language was released in beta. Real programming logic was implemented using other languages/frameworks, such as Java, .NET etc. Then there were the XML technologies like XSLT and XPATH, used for manipulating/transforming XML. There is a reason for the proliferation of tranditional language XML-manipulation implementations. This is one of the needs that X++ aims to fill.

Every X++ object is an XML node and every XML node is an X++ object. By default all classes and objects inherit from the Node class which provides tree and node access and manipulation methods. The group of these methods comprises most methods that you will need for a typical program. X++ supports both single and multiple inheritance.

XML serialization is done at zero-cost to the program and the programmer in terms of complexity or performance. In Java, .NET and other languages/frameworks that implement XML serialization, it is necessary to use some special means: usually this requires the use of special clases. With X++, XML serialization is achieved by merely invoking the save method on the object which you want to serialize. Deserialization is achieved by loading an XML file into an object-- also a single instruction.

XML Memory
X++ is very tightly bound to XML in its syntax and also in its constructs. This idea is extended to something that has never been modelled before as XML. X++ presents the programmer with a metaphor of the run-time memory of an X++ program as an XML document. When objects are instantiated they are appended as children of the root node. All the objects that they contain are placed as their children in the object tree of the run-time memory XML document. The beauty of this move is that you can access and manipulate the run-time memory in exactly the same way as you can individual objects. Yes, the run time memory object also inherits from the Node class.

Each X++ process maintains its own run-time memory which it uses to keep track of the instantiated objects. No process can encroach upon another's run-time memory.In addition, there is the class run-time memory which keeps track of the current definition of classes.

XML-based Adaptive Programming
X++ is an adaptive language in that it allows you to write adaptive programs. X++ implements adaptive behaviour by supporting class redefinition as well as self-modifying programs. Class redefinition is the ability of a class to be redefined at run-time, thereby changing the behaviour of existing objects of the class. It is therefore necessary to keep track of the current definition of a class - that is where the class run-time memory comes in.

X++ also allows programs to modify themselves. As a safety net, a program can also save its state at run-time which produces a state file. The format of this state file is XML. This state file can be processed by the X++ interpreter at a later time, which has the effect of resuming the execution of the program from the point at which the state file as saved.

X++ is an open source project to use it freely. Get from here., MSDN

No comments: