Io (language)

Io is pure Computer programming language object based on the prototype S and distributed under License BSD. It was created in 2002 by Steve Dekorte.

Presentation

When Steve Dekorte imagined its language, he wanted it light, simple, Multi-platform and easy to embark in another program. Thus was born Io (of which the name must reflect its simplicity).

It takes as a starting point different language while drawing started from their respective qualities:

  • Smalltalk : all the values are objects;
  • Coil;
  • NewtonScript ;
  • Act1 : differential heritage of the prototypes, actors and promises of answer for competition between tasks;
  • LISP : the code is an environment of execution based on an accessible tree in reading and writing;
  • and LUA: light and being able to be embarked.

Io is a Langage of script having several extensions in various fields such as the Chiffrement of the data, the programming network, the Graphisme or the databases.

Virtual machines

Io is declined under three virtual machines what brings a great portability to him since this one (as all language interpreted) can be carried out under any architecture in so far as the virtual machine is available for this one.

IoVM

IoVM is the base of the language; majority of the functionalities being in IoServer and IoDesktop . It can be used independently or as a language embarked in more a great project.

IoServer

IoServer brings many functionalities compared to the design of applications waiters such as the applications Web.

IoDesktop

And finally, IoDesktop , wants to be to be a solution of development Multimédia. It is thus possible by its intermediary to exploit images, OpenGL and all that is in connection with the multi-media one.

These three virtual machines make it possible Io scripts to it function in an identical way does not matter the system. They are currently available under Mac OS X, Linux, BSD, Irix, Win32 and Symbian. However, written in C ANSI, they can be easily related to many others platform S.

Characteristics of the language

  • Based on the prototype S : heritage carried out by the Cloning of the objects and the maintenance of a dynamic bond between the clone and the original.
  • Pure object: all the entities handled by Io derive from the same prototype Object .
  • Table tidy: the objects are automatically allocated and removed.
  • Standard dynamic : Although Io has a concept of the types, the Variable S do not have types defines just as the operations on the prototypes. There exist however methods making it possible to check the type of an object.
  • Strongly typified : all the interactions are done using messages towards the objects. One never reaches the memory directly.
  • Interpreted : the Source code produced is not not compiled towards a Bytecode but rather converted towards a representation in the memory.
  • the code is a data : the blocks of code are reinjected in the objects and can be to modify and created dynamically.
  • Reflects : consequence of the re-injection of the code, it is possible to invest the properties of each object (in the same way for the source code) during the execution.
  • Dynamique' : since the code is a data, it is possible to change a logical program during its execution. It is also possible to dynamically change the attributes and the operations on an object during the execution. Combined with the prototypes, Io authorizes the dynamic modification of a class of objects.

Examples of code

Io is a language which wants to be simple and powerful. Here some examples of code.

Comments

//Les comments C++ can be used # just like those of scripts Bash /* or comments on several lines *

Hello everyone

The following line of code will reveal the message Hello everyone! with the screen. " Hello everyone! " println

To count the sheep

for (I, 1,100, sheep: = block (I, yew (I == 1, return " 1 mouton") return " " . I. " moutons" )

For more examples, you can visit the page of examples on the official site.

See too

External bond

  • Official site of Io

  • Wikibooks: tutoriel for the beginners

Random links:The Verdon (river) | Axylia | Obersteigen | Line D of the subway of New York | Center Interpretation of the Nature of the Lake Boivin | Rumford_(pdc),_Maine