Concept

Io (programming language)

Summary
Io is a pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript. Io has a prototype-based object model similar to the ones in Self and NewtonScript, eliminating the distinction between instance and class. Like Smalltalk, everything is an object and it uses dynamic typing. Like Lisp, programs are just data trees. Io uses actors for concurrency. Remarkable features of Io are its minimal size and openness to using external code resources. Io is executed by a small, portable virtual machine. The language was created by Steve Dekorte in 2002, after trying to help a friend, Dru Nelson, with his language, Cel. He found out that he really didn't know much about how languages worked, and set out to write a tiny language to understand the problems better. Io's goal is to explore conceptual unification and dynamic languages, so the tradeoffs tend to favor simplicity and flexibility over performance. Pure object-oriented based on prototypes Code-as-data / homoiconic Lazy evaluation of function parameters Higher-order functions Introspection, reflection and metaprogramming Actor-based concurrency Coroutines Exception handling Incremental garbage collecting supporting weak links Highly portable DLL/shared library dynamic loading on most platforms Small virtual machine In its simplest form, it is composed of a single identifier: doStuff Assuming the above doStuff is a method, it is being called with zero arguments and as a result, explicit parentheses are not required. If doStuff had arguments, it would look like this: doStuff(42) Io is a message passing language, and since everything in Io is a message (excluding comments), each message is sent to a receiver. The above example demonstrates this well, but not fully. To describe this point better, let's look at the next example: System version The above example demonstrates message passing in Io; the "version" message is sent to the "System" object. Operators are a special case where the syntax is not as cut-and-dried as the above examples.
About this result
This page is automatically generated and may contain information that is not correct, complete, up-to-date, or relevant to your search query. The same applies to every other page on this website. Please make sure to verify the information with EPFL's official sources.