~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 60B54223420CD7D3A993E29F2E61B9E0__1687917660 ✰
Заголовок документа оригинал.:
✰ Io (programming language) - Wikipedia ✰
Заголовок документа перевод.:
✰ Ио (язык программирования) — Википедия, бесплатная энциклопедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Io_(programming_language) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/60/e0/60b54223420cd7d3a993e29f2e61b9e0.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/60/e0/60b54223420cd7d3a993e29f2e61b9e0__translat.html ✰
Дата и время сохранения документа:
✰ 11.06.2024 06:01:29 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 28 June 2023, at 05:01 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Ио (язык программирования) — Википедия, бесплатная энциклопедия Jump to content

Ио (язык программирования)

Из Википедии, бесплатной энциклопедии
Этот
Парадигма объектно-ориентированный на основе прототипов
Разработано Стив Декорте
Разработчик Стив Декорте, Джонатан Райт, Джереми Трегунна
Впервые появился 2002 год ; 22 года назад ( 2002 )
Стабильная версия
20170906 / 11 августа 2017 г .; 6 лет назад ( 11.08.2017 ) [1]
Дисциплина набора текста динамичный , сильный
Веб-сайт иоязык .org
Основные реализации
Io Io.NET
Под влиянием
Smalltalk , NewtonScript , Self , Lua , Lisp , Python , Act1
Под влиянием
Иго , Зелье

Io — чистый объектно-ориентированный язык программирования, вдохновленный Smalltalk , Self , Lua , Lisp , Act1 и NewtonScript . [2] Io имеет объектную модель на основе прототипов, аналогичную моделям Self и NewtonScript, устраняющую различие между экземпляром и классом . Как и в Smalltalk, все является объектом и использует динамическую типизацию . Как и Lisp, программы — это просто деревья данных. Io использует актеров для параллелизма.

Замечательными особенностями Io являются его минимальный размер и открытость для использования внешних ресурсов кода. [3] Io выполняется небольшой портативной виртуальной машиной .

История [ править ]

Язык был создан Стивом Декорте в 2002 году после попытки помочь другу Дрю Нельсону с его языком Cel. Он обнаружил, что на самом деле мало что знает о том, как работают языки, и решил написать крошечный язык, чтобы лучше понять проблемы. [4]

Философия [ править ]

Целью Io является исследование концептуальной унификации и динамических языков , поэтому компромиссы имеют тенденцию отдавать предпочтение простоте и гибкости, а не производительности.

Особенности [ править ]

Синтаксис [ править ]

В своей простейшей форме он состоит из одного идентификатора: [5]

 делать вещи 

Предполагая, что приведенный выше метод doStuff является методом , он вызывается с нулевыми аргументами и, как следствие, явные круглые скобки не требуются.

Если бы у doStuff были аргументы, это выглядело бы так:

 делать вещи  (  42  ) 

Io — это язык передачи сообщений , и поскольку все в Io является сообщением (за исключением комментариев ), каждое сообщение отправляется получателю. Приведенный выше пример демонстрирует это хорошо, но не в полной мере. Чтобы лучше описать этот момент, давайте посмотрим на следующий пример:

  системы  Версия 

Приведенный выше пример демонстрирует передачу сообщений в Io; сообщение «версия» отправляется объекту «Система».

Операторы — это особый случай, когда синтаксис не такой шаблонный, как в приведенных выше примерах. Io Анализатор перехватывает набор операторов, определенных интерпретатором, и преобразует их в вызовы методов. Например, следующее:

 1  +  5  *  8  +  1 

переводится как:

 1  +( 5  *( 8 ))  +( 1 ) 

Все операторы в Io являются методами; тот факт, что они не требуют явных круглых скобок, является удобством. Как вы можете видеть, здесь также происходит небольшой приоритет операторов , и уровни приоритета такие же, как и для уровней приоритета C.

Методы и блоки [ править ]

В Io есть два способа создания анонимных функций : методы и блоки. Между собой они практически идентичны, за исключением области применения . В то время как блоки имеют лексическую область видимости , методы имеют динамическую область видимости .

И метод , и блок являются функциями более высокого порядка .

Примеры [ править ]

Вездесущая программа Hello world :

 "Привет, мир!"    println 

Новые объекты создаются путем клонирования объектов. В частности, в Io создается новый пустой объект, и внутри нового объекта сохраняются только различия между ним и его родителем; такое поведение известно как дифференциальное наследование . Показан пример такого поведения:

 A   :=   Object   clone           // создает новый пустой объект с именем «A» 

Простая нерекурсивная функция факториала в Io:

факториал   :=   метод  (  n  , 
     if  (  n   ==   0  ,   return   1  ) 
     res   :=   1 
     Диапазон   от 1   до  (  n  )   foreach  (  i  ,   res   =   res   *   i  ) 
 ) 

Поскольку назначение res * i к res— это последнее выполненное действие, функция неявно возвращает результат, поэтому явное выражение возврата не требуется. Вышеприведенное демонстрирует использование диапазонов и не использует for() цикл, что было бы быстрее.

Ссылки [ править ]

  1. ^ «Ио Релизы» . Гитхаб . Проверено 6 февраля 2020 г.
  2. ^ Руководство по программированию Io
  3. ^ «Дополнения к программированию и написанию Io — Wikibooks, открытые книги для открытого мира» . ru.wikibooks.org . Проверено 22 июня 2023 г.
  4. ^ Тейт, Брюс (2010). «Глава 3: Ио» . Семь языков за семь недель: прагматическое руководство по изучению языков программирования (1-е изд.). Роли, Северная Каролина: Прагматичная книжная полка . п. 60, 72 . ISBN  978-1934356593 .
  5. ^ «Ио-руководство» . iolanguage.org . Проверено 22 июня 2023 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 60B54223420CD7D3A993E29F2E61B9E0__1687917660
URL1:https://en.wikipedia.org/wiki/Io_(programming_language)
Заголовок, (Title) документа по адресу, URL1:
Io (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)