Io (bahasa pengaturcaraan)

(Dilencongkan dari Bahasa pengaturcaraan Io)

Io merupakan bahasa pengaturcaraan berorientasi objek sepenuhnya yang diilhamkan oleh Smalltalk, Self, Lua, Lisp, Act1, dan NewtonScript. Io mempunyai model objek berasaskan prototaip serupa dengan yang terdapat pada Self dan NewtonScript, menghapuskan perbezaan antara Objek (computer science) dan kelas (computer science). Sebagaimana Smalltalk, semuabenda adalah objek dan ia menggunakan sistem Taip. Sebagaimana Lisp, tidak terdapat kenyataan (statement), kawalan aliran dicapai dengan menggunakan fungsi, dan aturcara hanyalah pokok data. Io menggunakan model aktor bagi serentak (concurrency), teknik yang jarang digunakan dalam bahasa pengaturcaraan moden.

Ciri-ciri hebat Io adalah keberkesanannya, saiz minima dan terbuka bagi menggunakan sumber kod luar. Io dilaksanakan oleh mesin maya, ketil mudah alih.

Sejarah sunting

Bahasa Li dicipta oleh Steve Dekorte sekitar 7 March 2002, selepas membantu kawannya mengoptima bahasanya. Dia mendapati bahawa dia tidak tahu banyak mengenai bagaimana bahasa komputer berfungsi dan mula menulis bahasa komputer kecil bagi memahami masalah tersebut dengan lebih mendalam.

Falsafah sunting

Matlamat Io adalah mengkaji konsep penyatuan dan bahasa pengaturcaraan Dinamik, dengan itu tolak ansur cenderung kepada mudah dan lentur berbanding prestasi.

Contoh sunting

Atur cara hello world:

"Hello world!" println

Objek baru dihasilkan oleh objek klon. Bagi Io khususnya, objek kosong baru dicipta dan perbezaan antaranya dan keluarganya disimpan dalam objek baru; tabiat ini dikenali sebagai differential inheritance. Contoh tabiat ini ditunjukkan sebegini:

A := Object clone // creates a new, empty object named "A"

Sebuah funcgsi faktorial yang tidak rekursif dalam Io:

factorial := method(n,
  if(n == 0, return 1)
  res := 1
  n to(1) foreach(i, res = res * i)
  res
)

Demostrasi di atas menggunakan julat, dan tidak menggunakan gelung for() yang lebih pantas.

Pautan luar sunting

 
Wikibooks
Programming Wikibooks mempunyai maklumat lanjut mengenai: