Light-industry-up.ru

Экосистема промышленности

Io

10-10-2023

Io
Класс языка:

объектно-ориентированный, прототипный

Появился в:

2002

Автор(ы):

Стив Декорте

Расширение файлов:

.io

Типизация данных:

динамическая

Основные реализации:

Io, Io.NET

Испытал влияние:

Smalltalk, NewtonScript, Self, Lua, Lisp, Act1

Повлиял на:

Ioke, Restricted Io

Сайт:

www.iolanguage.com

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

Особенности

В отличие от Perl, PHP, Python и Руби, в Io не существует такого понятия, как класс объекта. Вместо этого применены прототипы, как в Lua и JavaScript.

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

Примеры

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

"Hello world!" println

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

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

Ссылки

  • iolanguage.com  (англ.) — Оф. сайт языка
  • dekorte.com (англ.) — Блог автора
  • Руководство по программированию на языке Io (2004). Зеркало.
  • Язык программирования Io. synrc research center.(недоступная ссылка — история) Проверено 19 апреля 2009.
  • Io programming language. Блог «Ненормальное программирование» (27 июня 2008). Архивировано из первоисточника 19 мая 2012. Проверено 19 апреля 2009.
    • Часть 2. Синтаксис IO
    • Часть 3. Объектная система
    • Часть 4. Система сообщений
  • Io в блоге С. Новикова (рус.)


Io.

© 2014–2023 light-industry-up.ru, Россия, Краснодар, ул. Листопадная 53, +7 (861) 501-67-06