Io (первая буква — заглавная «i») — скриптовый, чисто объектно-ориентированный язык программирования с динамической типизацией. Язык был разработан Стивом Декортом (англ. Steve Dekorte) в 2002 году[1]. Реализация является кроссплатформенной, открытой (лицензия BSD) и рассчитана на лёгкость встраивания в качестве скриптового языка.
Io | |
---|---|
![]() | |
Класс языка | объектно-ориентированный, прототипный |
Появился в | 2002 |
Автор | Стив Декорте |
Разработчик | Стив Декорте, Джонатан Райт, Джереми Трегунна |
Расширение файлов |
.io |
Выпуск | 2017.09.06 (11 августа 2017; 5 лет назад (2017-08-11)) |
Тестовая версия | 2019.05.22-alpha (22 сентября 2018; 4 года назад (2018-09-22)) |
Система типов | динамическая |
Основные реализации | Io, Io.Net |
Испытал влияние | Smalltalk, NewtonScript[en], Self, Lua, Lisp, Act1 |
Повлиял на | Ioke, Restricted Io |
Лицензия | модифицированная лицензия BSD[d] |
Сайт | iolanguage.org |
В отличие от Perl и PHP, в Io класс не имеет принципиального отличия от объекта, является первоклассным объектом языка. Наследование реализовано прототипами, как в Self, Lua и JavaScript. Поддерживается множественное наследование.
Таким образом, для экземпляров объектов, классов и пространств имён в Io используются прототипы. Для операторов, вызовов методов, присваивания и доступа к переменным используются сообщения.
Следующий код печатает в консоли «Hello world!» посредством передачи строке сообщения println:
"Hello world!" println
Реализация шаблона проектирования «одиночка»:
Singleton := Object clone //Объекты создаются (":=") клонированием существующих объектов
Singleton clone = Singleton //Значение слота clone заменяется ("=") ссылкой на сам объект
![]() | Это «статья-заготовка» о компьютерных языках. Вы можете помочь проекту, дополнив эту статью, как и любую другую в Википедии. Нажмите и узнайте подробности. |
![]() | Для улучшения этой статьи желательно:
|
![]() Языки программирования | |
---|---|
| |
|
![]() Объектно-ориентированные языки | |
---|---|
Компилируемые | |
Скриптовые |
|
Оба исполнения |