Io

У этого термина существуют и другие значения, см. IO.
Io
Изображение логотипа
Класс языка объектно-ориентированный, прототипный
Появился в 2002
Автор Стив Декорте
Разработчик Стив Декорте, Джонатан Райт, Джереми Трегунна
Расширение файлов .io
Выпуск 2017.09.06 (11 августа 2017; 7 лет назад (2017-08-11))
Тестовая версия 2019.05.22-alpha (22 сентября 2018; 6 лет назад (2018-09-22))
Система типов динамическая
Основные реализации Io, Io.Net
Испытал влияние Smalltalk, NewtonScript[англ.], Self, Lua, Lisp, Act1
Повлиял на Ioke, Restricted Io
Лицензия модифицированная лицензия BSD[вд]
Сайт iolanguage.org

Io (первая буква — заглавная «i») — скриптовый, чисто объектно-ориентированный язык программирования с динамической типизацией. Язык был разработан Стивом Декортом (англ. Steve Dekorte) в 2002 году[1]. Реализация является кроссплатформенной, открытой (лицензия BSD) и рассчитана на лёгкость встраивания в качестве скриптового языка.

Особенности

  • минималистический синтаксис;
  • абсолютно каждая сущность является объектом;
  • всё основано на передаче сообщений (даже арифметические операции и присваивание — это передача сообщения объекту);
  • параллелизм, основанный на модели акторов.

В отличие от Perl и PHP, в Io класс не имеет принципиального отличия от объекта, является первоклассным объектом языка. Наследование реализовано прототипами, как в Self, Lua и JavaScript. Поддерживается множественное наследование.

Таким образом, для экземпляров объектов, классов и пространств имён в Io используются прототипы. Для операторов, вызовов методов, присваивания и доступа к переменным используются сообщения.

Примеры

Следующий код печатает в консоли «Hello world!» посредством передачи строке сообщения println:

"Hello world!" println

Реализация шаблона проектирования «одиночка»:

Singleton := Object clone //Объекты создаются (":=") клонированием существующих объектов
Singleton clone = Singleton //Значение слота clone заменяется ("=") ссылкой на сам объект

Примечания

  1. Io — компактный объектно-ориентированный язык программирования Архивная копия от 24 сентября 2015 на Wayback Machine (www.ibm.com)

Литература

  • Bruce Tate. Io // Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages. — Pragmatic Bookshelf, mar 2010. — P. 60-96. — 336 p. — ISBN 9781934356593.
  • Object-Oriented Implementation Approaches of Pure Object-Oriented Languages: A Comparison among Smalltalk, Eiffel, Ruby and Io, Christopher Bowen, Kevin Desmond, Jesse Kurtz, Jack Myers

Ссылки

  • iolanguage.com  (англ.) — официальный сайт языка
  • dekorte.com Архивная копия от 29 ноября 2012 на Wayback Machine (англ.) — блог автора
  • Язык программирования Io  (неопр.). synrc research center. Дата обращения: 9 июля 2012. Архивировано из оригинала 5 августа 2012 года.