Io (lenguaje de programación)

Io
Desarrollador(es)
Steve Dekorte, Jonathan Wright, Jeremy Tregunna
https://iolanguage.org/
Información general
Paradigma POO, basada en prototipos
Apareció en 2002
Diseñado por Steve Dekorte
Sistema de tipos Tipado duro o fuerte, Estático y dinámico
Implementaciones Io Io.NET Acute
Dialectos Europa Metis
Influido por Smalltalk, NewtonScript, Self, Lua, Lisp
Ha influido a Ioke, Restricted Io, Fancy, Luna
Licencia BSD

Io es un lenguaje de programación del tipo orientada a objetos inspirado en Smalltalk, Self, Lua, Lisp, Act1, y NewtonScript.[1]

Io usa un paradigma de objetos basada en prototipos tal como lenguajes como Self y NewtonScript, eliminando las diferencias entre clases e instancias.

Tal como Smalltalk, absolutamente todo es un objeto y como en el caso de Lisp, los programas son árboles de datos. Io también usa actores para la concurrencia.

También es destacable que Io corre sobre una ligera y portable Máquina virtual.

Historia

Este lenguaje fue creado por Steve Dekorte el 7 de marzo de 2002, después de intentar ayudar a un amigo, Dru Nelson, con en lenguaje Cel. Él se encontró con que sabía mucho de como funcionaban los lenguajes y decicio escribir un pequeño lenguaje para entender mejor los problemas.

Filosofía

Io intenta explorar la unificación conceptual y el dinamismo del lenguaje, priorizando la simplicidad y flexibilidad sobre el rendimiento.

Características

Sintaxis

En su forma más simple, un programa Io está compuesto por un identificador simple:

 hacerAlgo

Si hacerAlgo es un método, está siendo invocado con cero argumentos, y por ser cero, los paréntesis explícitos no son necesarios.

Si hacerAlgo recibiera argumentos, se vería así:

 hacerAlgo(42)

Io es un lenguaje de paso de mensajes, y como todo en Io es un mensaje (excepto los comentarios), cada mensaje es enviado a un recipiente. El ejemplo de arriba lo demuestra bien, pero no por completo. Para describir este punto mejor, aquí hay otro ejemplo:

 System version

Este ejemplo demuestra el paso de mensajes en Io: el mensaje version es enviado al objeto System.

Los operadores son un caso especial en donde la sintaxis no es "simple y llana" como en los ejemplos anteriores. El parser de Io detecta un conjunto de operadores definidos por el intérprete, y los convierte en invocación de métodos. Por ejemplo:

 1 + 5 * 8 + 1

traduce a:

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

Como se puede observar, hay precedencia de operadores de la que el parser se encarga. Los niveles de precedencia son los mismos que en C.

Los operadores también se convirtieron en invocación de métodos. De hecho, todos los operadores son métodos, el hecho de que no necesitan paréntesis es solo por conveniencia.

Métodos y Bloques

En Io hay dos formas de crear funciones anónimas: métodos y bloques. Son casi idénticos excepto por el contexto en que se ejecutan, los bloques tienen un contexto léxico y los métodos un contexto dinámico.

Ambos, métodos y bloques, son funciones de primera clase.

Ejemplos

El clásico Hola Mundo:

 "Hola Mundo!" println

Nuevos objetos son creados clonando otros objetos. Específicamente en Io, cuando un nuevo objeto vacío se crea, lo único que se guarda en el objeto son sus diferencias con sus padres. Este comportamiento se conoce como herencia diferencial. El siguiente ejemplo demuestra este comportamiento:

 A := Object clone         // crea un nuevo objeto vacío, llamado "A"

Una función factorial simple, no recursiva:

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

Como la última acción es la asignación de res * i a la variable res, la función implícitamente devuelve el valor asignado, de modo que no hace falta un return explícito. Este ejemplo también demuestra el uso de rangos (en vez de usar bucles for, que pueden ser más rápidos).

Referencias

Enlaces externos

Read other articles:

Bohuslav Sobotka Perdana Menteri Ceko Ke - 11Masa jabatan17 Januari 2014 – 13 Desember 2017PresidenMiloš ZemanWakilAndrej Babiš (2014-17)Pavel BělobrádekRichard Brabec PendahuluJiří RusnokPenggantiAndrej BabišPemimpin Partai Demokrat SosialMasa jabatan29 Mei 2010 – 15 June 2017Penjabat: 29 Mei 2010 – 21 Maret 2011 PendahuluJiří ParoubekPenggantiMilan Chovanec (Penjabat)Masa jabatan26 April 2005 – 13 Mei 2006Acting PendahuluStanislav GrossPenggan...

 

Religious demographic in Saudi Arabia Christianity by country Africa Algeria Angola Benin Botswana Burkina Faso Burundi Cameroon Cape Verde Central African Republic Chad Comoros Democratic Republic of the Congo Republic of the Congo Djibouti Egypt Equatorial Guinea Eritrea Eswatini Ethiopia Gabon Gambia Ghana Guinea Guinea-Bissau Ivory Coast Kenya Lesotho Liberia Libya Madagascar Malawi Mali Mauritania Mauritius Morocco Mozambique Namibia Niger Nigeria Rwanda São Tomé and Príncipe Senegal ...

 

Indigenous pygmy groups in the Congo region of Africa For the 1956 documentary, see Bambuti (film). MbutiA group of Mbuti, with American traveller Osa Johnson, in 1930Total population30,000 to 40,000[1]Regions with significant populations DR CongoLanguagesEfe, Asoa, Kango, FrenchReligionBambuti mythology, ChristianityRelated ethnic groupsAfrican Pygmies The Mbuti people, or Bambuti, are one of several indigenous pygmy groups in the Congo region of Africa. Their languages are Cent...

Artikel bermasalah Ini adalah artikel yang memenuhi kriteria penghapusan cepat artikel yang membahas rekaman musik: album, singel, EP, film dan yang dapat dipersamakan dengan itu yang tidak mengindikasikan kepentingan atau signifikansi subjek, dan saat artis tersebut tidak memiliki artikel. Ingat bahwa produk atau karya seni selain daripada yang disebutkan di atas tidak memenuhi kriteria KPC A9. Lihat KPC A9.%5B%5BWP%3ACSD%23A9%7CA9%5D%5D%3A+Tidak+mengindikasikan+kepentingan+rekaman+...

 

追晉陸軍二級上將趙家驤將軍个人资料出生1910年 大清河南省衛輝府汲縣逝世1958年8月23日(1958歲—08—23)(47—48歲) † 中華民國福建省金門縣国籍 中華民國政党 中國國民黨获奖 青天白日勳章(追贈)军事背景效忠 中華民國服役 國民革命軍 中華民國陸軍服役时间1924年-1958年军衔 二級上將 (追晉)部队四十七師指挥東北剿匪總司令部參謀長陸軍�...

 

ロバート・デ・ニーロRobert De Niro 2011年のデ・ニーロ生年月日 (1943-08-17) 1943年8月17日(80歳)出生地 アメリカ合衆国・ニューヨーク州ニューヨーク市身長 177 cm職業 俳優、映画監督、映画プロデューサージャンル 映画、テレビドラマ活動期間 1963年 -配偶者 ダイアン・アボット(1976年 - 1988年)グレイス・ハイタワー(1997年 - )主な作品 『ミーン・ストリート』(1973年)...

Vaccine candidate against COVID-19 Razi Cov ParsVaccine descriptionTargetSARS-CoV-2Vaccine typeProtein subunitClinical dataRoutes ofadministrationIntramuscular, IntranasalLegal statusLegal status Full list of Razi Cov Pars authorizations Part of a series on theCOVID-19 pandemicScientifically accurate atomic model of the external structure of SARS-CoV-2. Each ball is an atom. COVID-19 (disease) SARS-CoV-2 (virus) Cases Deaths Timeline 2019 2020 January responses February responses March respon...

 

Species of plant Ashoka tree Ashoka flower cluster Conservation status Vulnerable  (IUCN 2.3)[1] Scientific classification Kingdom: Plantae Clade: Tracheophytes Clade: Angiosperms Clade: Eudicots Clade: Rosids Order: Fabales Family: Fabaceae Genus: Saraca Species: S. asoca Binomial name Saraca asoca(Roxb.) Willd.[2] Synonyms[2] Jonesia asoca Roxb. Jonesia confusa Hassk. Jonesia pinnata Willd. Saraca confusa (Hassk.) Backer Saraca indica sensu Bedd., non L. Sa...

 

Міністерство оборони України (Міноборони) Емблема Міністерства оборони та Прапор Міністерства оборони Будівля Міністерства оборони у КиєвіЗагальна інформаціяКраїна  УкраїнаДата створення 24 серпня 1991Попередні відомства Міністерство оборони СРСР Народний комісарі...

Dogon language of Mali YandaYanda DomRegionMaliNative speakers2,000 (2005)[1]Language familyNiger–Congo? DogonNanga?YandaLanguage codesISO 639-3dymGlottologyand1257ELPYanda Dom PeopleYanda BɔlɔmCountryYanda Dom Yanda Dogon is a Dogon language spoken in Mali. It is reported to be lexically similar to Nanga, which is only known from one report from 1953. References ^ Yanda at Ethnologue (18th ed., 2015) (subscription required) Sources Blench, Roger (2005). A survey of Dogon lan...

 

Galguduud (bahasa Somali: Galguduud, bahasa Arab: جلجدود, bahasa Italia: Galgudud atau Ghelgudud) adalah sebuah wilayah administratif (gobol) negara bagian Galmudug di Somalia bagian tengah.[1] Ibukota administratifnya adalah Dusmareb. Kota terbesar di wilayah ini adalah Abudwak, yang terletak di titik paling barat laut wilayah tersebut. Galguduud Galgudud, GhelgududDaerahLocation in central SomaliaKoordinat: 5°20′13″N 46°37′13″E / 5.33694°...

 

Neighborhood of Pittsburgh in Allegheny County, Pennsylvania, United StatesSummer HillNeighborhood of PittsburghCoordinates: 40°29′35″N 80°00′29″W / 40.493°N 80.008°W / 40.493; -80.008CountryUnited StatesStatePennsylvaniaCountyAllegheny CountyCityPittsburghArea[1][better source needed] • Total0.439 sq mi (1.14 km2)Population (2010)[1] • Total1,051 • Density2,400/sq...

Formation of the Alpine mountain ranges of Europe, the Middle East and northwest Africa Tectonic map of southern Europe and the Middle East, showing tectonic structures of the western Alpide mountain belt The Alpine orogeny or Alpide orogeny[dubious – discuss] is an orogenic phase in the Late Mesozoic[1] (Eoalpine) and the current Cenozoic that has formed the mountain ranges of the Alpide belt. The cause of Alpine orogeny The Alpine orogeny is caused by the continent...

 

Election of Pope Honorius IV Papal election 1285Dates and location1–2 April 1285PerugiaKey officialsDeanOrdonho AlvaresProtopriestAnchero PantaleoneProtodeaconGiacomo SavelliElectionBallots1Elected popeGiacomo SavelliName taken: Honorius IV← 1280–811287–88 →Perugia cityscape (15th century) The 1285 papal election, convened in Viterbo after the death of Pope Martin IV, elected Cardinal Giacomo Savelli, who took the name of Honorius IV. Because of the suspension of the Const...

 

Wang Chen menjabat sebagai Wakil Ketua (tingkat utama) Komite Tetap Kongres Rakyat Nasional mulai 17 Maret 2018 Wakil Ketua Komite Tetap Kongres Rakyat Nasional (Hanzi sederhana: 全国人民代表大会常务委员会副委员长; Hanzi tradisional: 全國人民代表大會常務委員會副委員長; Pinyin: Quánguó Rénmín Dàibiǎo Dàhuì Chángwù Wěiyuánhuì Fùwěiyuánzhăng) adalah jabatan politik di Tiongkok. Menurut Konstitusi Republik Rakyat Tiongkok, Wakil Ketua...

2002 anime Magical Shopping Arcade AbenobashiNorth American DVD cover of the complete seriesアベノ橋魔法☆商店街(Abenobashi Mahō Shōtengai)GenreComedy[1]Isekai[2]Parody[1]Created byGainax MangaWritten bySatoru AkahoriIllustrated byRyūsei DeguchiPublished byKodanshaEnglish publisherNA: TokyopopMagazineMonthly Magazine ZDemographicSeinenOriginal runSeptember 2001 – August 2002Volumes2 MangaManga Abenobashi Mahō ☆ ShōtengaiWritten...

 

Duca di SussexCorona araldica StemmaStemma del principe Henry, attuale duca di Sussex ParìaParìa del Regno Unito Data di creazione1801 (prima creazione) Creato daGiorgio III del Regno Unito Primo detentorePrincipe Augusto Federico Attuale detentorePrincipe Henry Cronologia1801 (I creazione) 2018 (II creazione) Titoli sussidiariConte di Inverness e Barone Arklow (1801) Conte di Dumbarton e Barone Kilkeel (2018) Trattamento d'onoreSua Altezza Reale (de facto) non utilizzato Manuale Il duca di...

 

Cuboctaèdre Éléments Faces Arêtes Sommets 14 (8 triangles, 6 carrés) 24 12 de degré 4 Données clés Type Solide d'Archimède uniforme Références d'indexation U7 – C19 – W11 Symbole de Schläfli t1{4,3} ou t0,2{3,3} Symbole de Wythoff 2 | 3 4 ou 3 3 | 2 Diagramme C-D ou Caractéristique 2 Propriétés Semi-régulier convexe quasi-régulier Volume (arête a) 5 3 2 a 3 {\displaystyle {5 \over 3}{\sqrt {2}}a^{3}} Aire de surface ( 6 + 2 3 ) a 2 {\displaystyle (6+2{\sqrt {3}})a^{2}} ...

Mayor of RichmondIncumbentLevar Stoneysince January 1, 2017StyleThe HonorableTerm lengthFour years (since 2005)Inaugural holderWilliam Foushee, Sr.FormationJuly 2, 1782WebsiteOffice of the Mayor Elections in Virginia Federal government U.S. President 1788–89 1792 1796 1800 1804 1808 1812 1816 1820 1824 1828 1832 1836 1840 1844 1848 1852 1856 1860 1872 1876 1880 1884 1888 1892 1896 1900 1904 1908 1912 1916 1920 1924 1928 1932 1936 1940 1944 1948 1952 1956 1960 1964 1968 1972 1976 1980 ...

 

Ironclad warship of the Austro-Hungarian Navy Kronprinz Erzherzog Rudolf Class overview Preceded byTegetthoff Succeeded byKronprinzessin Erzherzogin Stephanie History Austria-Hungary NameKronprinz Erzherzog Rudolf NamesakeRudolf, Crown Prince of Austria BuilderPola Navy Yard Laid down25 January 1884 Launched6 July 1887 Commissioned20 September 1889 FateTransferred to Navy of the Kingdom of Serbs, Croats and Slovenes, 1921 Kingdom of Serbs, Croats and Slovenes Acquired1921 RenamedKumbor S...