Skip to content

Io

Io is a prototype-based programming language inspired by Smalltalk (all values are objects, all messages are dynamic), Self (prototype-based), NewtonScript (differential inheritance), Act1 (actors and futures for concurrency), LISP (code is a runtime inspectable/modifiable tree) and Lua (small, embeddable).

아이오(Io)는 스몰토크, 셀프, 루아, 리스프, 뉴톤스크립트의 영향을 받은 순수 객체 지향 프로그래밍 언어다. 아이오는 셀프나 뉴톤스크립트의 객체 모델과 비슷하게 실체와 클래스의 차이를 없앤 원형 타입 객체 모델을 지닌다. 스몰토크와 비슷하게 모든 것은 객체이며 동적 형을 가진다. 리스프처럼 문장이 없으며 함수의 집합으로 프로그램 흐름이 이룬다. 모든 코드는 지연 평가되도록 메시지 객체로 전달되며, 필요할 경우에 평가한다. 따라서, 프로그램은 데이터 트리에 불과하다. 아이오는 근대 프로그래밍 언어에서는 흔하지 않는 기술인 행위 모형를 이용하여 병행 처리를 한다.

간단한 Io 특징

  • 모든 것이 객체다.
  • 모든 상호작용은 객체에 메시지를 보내는 방식으로 이루어진다.
  • 클래스를 이용하여 인스턴스를 만들지 않는다. 프로토타입이라는 객체를 복제함으로서 만든다.
  • 객체는 자신의 프로토타입을 기억한다.
  • 객체는 슬롯의 컬렉션이다.
  • 슬롯은 객체를 담는다. 메서드 객체도 포함된다.
  • 메시지는 슬롯에 담긴 값을 리턴하거나 그 안에 있는 메서드를 호출한다.
  • 객체가 자신에게 전달된 메시지에게 응답할 수 없으면, 자신의 프로토타입에 메시지를 전송한다.

ETC

  • Io는 관습에 따라, 타입은 대문자로 시작해야 한다.

Example

Hello Io

"Hello, Io" print

New object

Io에서 아래와 같은 방법으로 새로운 객체를 생성할 수 있다.

Car := Object clone

// Show slot list:
Car slotNames

// Show prototype:
Car proto

Favorite site