Malbolge

Malbolge — езотерична мова програмування, яку вигадав Бен Олмстед 1998 року. Мова розроблена з метою бути максимально складною для написання програм[1].

Назва походить від Malebolge, восьмого кола пекла Данте.

Програмування на Malbolge

Код першої програми, яка виводить «Hello World», згенерувала інша програма мовою Lisp, що використовувала пошук у множині всіх можливих програм, через два роки після появи самої мови Malbolge.[2] Сам автор ніколи не писав програм на Malbolge.[1]

24 серпня 2000 Ентоні Юхас у своєму блогу повідомив[3] про 3 робочих програми мовою Malbolge, що виводять фрази «Hello, world.», «Malbolge sucks.» і «antwon.com rules!».

Пізніше Лу Шеффер зробив криптоаналіз мови і продемонстрував програму для копіювання вхідних даних на вихід.[4]

17 серпня 2004 Томаш Вегжановскі написав генератор програм, що виводять задані рядки. Однак програми, отримані цим шляхом, довші за програми Юхаса.

Hello world

Ця програма на Malbolge відображає «Hello, world.»:[5]

(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<

Інший варіант:

('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>

Віртуальна машина

Malbolge — це машинна мова для віртуальної машини (інтерпретатора), що працює в трійковій системі числення.

Регістри

У віртуальній машині Malbolge є три регістри: a, c і d.

Регістр c — регістр коду, що використовується як покажчик на поточну команду.

Регістр d — регістр даних, що використовується для керування даними.

Регістр a — акумулятор, також використовуваний деякими командами для маніпуляції даними.

При запуску програми всі регістри дорівнюють нулю.

Пам'ять

Розмір пам'яті віртуальної машини — 59049 (310) комірок із числами з 10 трійкових цифр. Всі комірки з адресами від 0 до 59048 мають значення від 0 до 59048. Всі зміни відбуваються за модулем 59049 (mod 59049). При запуску програми початок пам'яті заповнюється ASCII-кодами символів її початкового коду. Символи порожнього простору (пропуски, табуляція, переноси рядків тощо) нехтуються, а решта символів повинні бути командами Malbolge (див. нижче). Залишок пам'яті заповнюється з використанням операції crazy (див. нижче): [m] = crz [m-2], [m-1].

Команди

У Malbolge є 8 команд. Віртуальна машина визначає, яку команду виконувати, так: до значення комірки з адресою c ([c]) додається значення c, а командою виступає остача від ділення цього числа на 94 (оскільки у вхідному алфавіті мови 94 символи, ASCII-коди яких від 33 до 126).

Таблиця дій інтерпретатора:

Команди
Значення
([c] + c) % 94
Інструкція Пояснення
4 mov c, [d] Перехід до комірки з номером [d].
5 out a Виведення значення ASCII-символу з кодом a % 256 на екран.
23 in a Введення ASCII-символу в a. Роздільник рядків має код 10. Кінець файлу — 59048.
39 rotr [d]
mov a, [d]
Зсуває значення [d] на одну трійкову цифру вправо (0002111112 перетворюється в 2000211111). Результат зберігається в [d] і в a.
40 mov d, [d] Копіювання значення з [d] в d.
62 crz [d], a
mov a, [d]
Застосувати операцію crazy (див. нижче) до значень [d] і a. Результат зберігається в [d] і в a.
68 nop Нічого не робить.
81 end Кінець програми.
Будь-які інші значення нічого не роблять. Вони не дозволені при завантаженні програми, але дозволені після цього.

Після виконання кожної інструкції вона шифрується операцією crazy. Після цього значення c і d збільшуються на 1 і виконання продовжується з наступної інструкції.

Операція crazy

Операція є аналогом побітових операцій — вона застосовується до двох відповідних цифр.

Операція crazy
crz 2-а цифра
0 1 2
1-а цифра 0 1 0 0
1 1 0 2
2 2 2 1

Шифрування

Після того, як чергову інструкцію виконано, інструкція шифрується за допомогою такої таблиці перекладу (якщо вона є одним з можливих символів мови):

!"#$%>&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
5z]&gqtyfr$(we4{WP)H-Zn,[%\3dL+Q;>U!pJS72FhOA1CB6v^=I_0/8|jsb9m<.TVac`uY*MK'X~xDl}REokN:#?G"i@

тобто ! стає 5 тощо.

У популярній культурі

У 10-му епізоді першого сезону серіалу «Елементарно» ключовим доказом у розгадці злочину послужив клаптик паперу, на одному з боків якого роздруковано код програми на Malbolge (що є неточною копією програми «Hello World», наведеної вище), а на іншому записано замовлення кави.

Приклад

Примітки

  1. а б Temkin, Daniel (3 листопада 2014). Interview with Ben Olmstead. esoteric.codes. Архів оригіналу за 7 вересня 2021. Процитовано 7 січня 2021.
  2. Опис алгоритму пошуку на сайті Andrew Cooke. Архів оригіналу за 18 жовтня 2010. Процитовано 25 жовтня 2010. [Архівовано 2010-10-18 у Wayback Machine.]
  3. Повідомлення в блозі Ентоні, присвячене мові Malbolge
  4. Scheffer, Lou (17 квітня 2015). Introduction to Malbolge. Архів оригіналу за 6 травня 2021. Процитовано 9 червня 2017.
  5. Palaiologos (4 березня 2021), kspalaiologos/hello.mb, архів оригіналу за 5 серпня 2021, процитовано 23 березня 2021
  6. Language Malbolge. 99 Bottles of Beer. 29 грудня 2005. Архів оригіналу за 14 травня 2020. Процитовано 19 листопада 2020.

Read other articles:

Nemzeti Bajnokság INegara HungariaKonfederasiUEFADibentuk1901Jumlah tim16Tingkat pada piramida1Degradasi keKejuaraan Nasional Hungaria IIPiala domestikPiala HungariaPiala Liga HungariaPiala internasionalLiga ChampionsLiga EropaJuara bertahan ligaGyőri ETO FC (4 gelar) (2012–13)Klub tersuksesFerencváros (28 gelar)Televisi penyiarM1 & Sport1, Sport2 (live matches)M2 & Sport2, SportM (highlights)Situs webhttp://www.mlsz.hu/ Nemzeti Bajnokság I 2013–14 Nemzeti Bajnokság I (a...

 

 Nota: Para outros significados, veja Europa (desambiguação). Europa Mapa da Europa Localização da Europa no globo terrestre. Gentílico Europeu Vizinhos Ásia, África Divisões    - Países 50 (lista)  - Dependências 8 Área    - Total 10 180 000 km²  - Maior país Rússia  - Menor país Vaticano Extremos de elevação    - Ponto mais alto Monte Elbrus (5 642 m nmm), Rússia  - Ponto mais baixo Mar Cáspio (-28 m nmm), R...

 

Concept in political science This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Right of conquest – news · newspapers · books · scholar · JSTOR (June 2014) (L...

State highway in northeastern Ohio, US State Route 306Route informationMaintained by ODOTLength27.42 mi[1] (44.13 km)Existed1932–presentMajor junctionsSouth end SR 43 in AuroraMajor intersections US 422 in Bainbridge Township US 322 in Chester Township US 6 in Kirtland I-90 in Willoughby US 20 in MentorNorth end SR 283 in Mentor LocationCountryUnited StatesStateOhioCountiesPortage, Geauga, Lake Highway system Ohio State Highway ...

 

Sajadah Ka'bahPoster film Sajadah Ka'bahSutradaraRhoma IramaProduserErna PelitaDitulis olehRhoma IramaAsep KusdinarPemeranRhoma IramaIda IashaRuhut SitompulRidho RhomaMichella AdlenLeroy OsmaniZahwa AqilahNurul QomarPenata musikWiwiex SudarnoSinematograferGunung Nusa PelitaDistributorFalcon Pictures & Rk23 PicturesTanggal rilis17 November 2011Durasi107 menitNegara Indonesia Sajadah Ka'bah merupakan film drama Indonesia yang dirilis pada 17 November 2011 yang disutradarai oleh Rhoma ...

 

Buddy Guy George Buddy Guy (lahir 30 Juli 1936) merupakan seorang gitaris dan penyanyi berkebangsaan Amerika Serikat yang memenangkan nominasi lima Grammy Award. Dia dilahirkan di Lettsworth, Louisiana. Dia berkarier di dunia musik sejak tahun 1957. Diskografi Album Tahun Label Catatan Hoodoo Man Blues 1965 Delmark w/ Junior Wells band Chicago/The Blues/Today! vol. 1 1966 Vanguard w/ Junior Wells band It’s my Life, Baby! 1966 Vanguard w/ Junior Wells band I Left My Blues in San Francisco 19...

Title in the peerage of Ireland Marquessate of ElyArms: Gules, three Bars dancetty Argent. Crest: A Lion rampant Gules, armed and langued Azure. Supporters: On either side an Eagle with wings inverted Argent, beaked and legged Or, charged on the breast with a Trefoil slipped Vert.Creation date29 December 1800Created byGeorge IIIPeeragePeerage of IrelandFirst holderCharles Loftus, 1st Marquess of ElyPresent holderJohn Tottenham, 9th Marquess of ElyHeir presumptiveLord Timothy TottenhamSubsidia...

 

Forty-two Articles (predecessor to 39 Articles) The Forty-two Articles were the official doctrinal statement of the Church of England for a brief period in 1553. Written by Archbishop Thomas Cranmer and published by King Edward VI's privy council along with a requirement for clergy to subscribe to it, it represented the height of official church reformation prior to the reign of Queen Elizabeth I. It staked out a position among Protestant movements of the day, opposing Anabaptist claims and d...

 

His Excellency赫瓦贾·纳齐姆丁爵士খাজা নাজিমুদ্দীন خواجہ ناظِمُ الدّین‬‎CIE, KCIE摄于1948年第2任巴基斯坦總理任期1951年10月17日—1953年4月17日君主佐治六世伊莉沙白二世总督古拉姆·穆罕默德前任利雅卡特·阿里·汗继任Mohammad Ali Bogra(英语:Mohammad Ali Bogra)第2任巴基斯坦總督(英语:Governor-General of Pakistan)任期1948年9月14日—1951年10月17日君�...

此條目需要补充更多来源。 (2021年7月4日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:美国众议院 — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。 美國眾議院 United States House of Representatives第118届美国国会众议院徽章 众议院旗...

 

Norgesmesterskapet 2018 Competizione Norgesmesterskapet Sport Calcio Edizione 113ª Organizzatore NFF Date 3 marzo 20182 novembre 2018 Luogo  Norvegia Sito web Fotball.no - NM 2018 Risultati Vincitore Rosenborg(12º titolo) Secondo Strømsgodset Statistiche Incontri disputati 128 Gol segnati 419 (3,27 per incontro) Ullevaal Stadion di Oslo, sede della finale. Cronologia della competizione 2017 2019 Manuale Il Norgesmesterskapet 2018 di calcio è stata la 113ª edizione del torneo. ...

 

This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (January 2013) (Learn how and when to remove this message) Chevallaz after retiring from the Federal Council Georges-André Chevallaz (7 February 1915 – 8 September 2002) was a Swiss historian, politician and member of the Swiss Federal Council (1974–1983). Mayor of ...

  「花剑」重定向至此。關於其他意思,請見「花劍 (消歧義)」。   此条目页的主題是在中国大陆被称为花剑的击剑项目。关于旧称为花式剑的击剑项目,請見「佩剑」。 此條目需要补充更多来源。 (2015年9月27日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:花剑 R...

 

French painter (1886–1972) Clément-ServeauHenri Clément-ServeauMusée de La Poste, ParisBornHenri Clément Serveau(1886-06-29)29 June 1886ParisDied8 July 1972(1972-07-08) (aged 89)ParisNationalityFrenchKnown forPaintingNotable workA stylized pagan scene with a huntress raising her bow (1928), Fleurs et fruits, Un dimanche de pèlerinage à la Ghraïba de Djerba (Tunisie) (1953), Femmes au bain, Le BordelMovementCubism, abstraction, Post-Cubism Henri Clément Serveau, also known ...

 

2011 São Toméan presidential election ← 2006 17 July 2011 (first round) 7 August 2011 (second round) 2016 → Registered92,689Turnout68.36% (first round), 74.09% (second round)   Nominee Manuel Pinto da Costa Evaristo Carvalho Party Independent ADI Popular vote 35,112 31,287 Percentage 52.88% 47.12% President before election Fradique de Menezes MDFM – PL Elected President Manuel Pinto da Costa Independent Politics of São Tomé and Príncipe Constitution Hum...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Bayalu Seeme – news · newspapers · books · scholar · JSTOR (March 2018) (Learn how and when to remove this message) Bayalu Seeme comprises the plains of the southern Deccan Plateau in Karnataka Bayaluseeme or Bayalu Seeme is the area lying to the east of Malen...

 

No debe confundirse con el municipio y la ciudad mexicana de Huauchinango, en el estado de Puebla, ni con el municipio mexicano de Guachinango, Jalisco, ni con un pez de otra especie, el Lutjanus purpureus.. Wachinango Estado de conservaciónVulnerable (UICN)TaxonomíaReino: AnimaliaFilo: ChordataClase: ActinopterygiiOrden: PerciformesFamilia: LutjanidaeGénero: LutjanusEspecie: L. campechanusPoey, 1860[editar datos en Wikidata] Bosquejo de un huachinango. El wachinango (Lutjanus ca...

 

Karte des tibetischen Hochlands In Amdo, im Nordosten des tibetischen Hochlands Das Hochland von Tibet, offiziell Qinghai-Tibet-Hochebene (tibetisch བོད་ས་མཐོ། Wylie bod sa mtho, chinesisch 青藏高原, Pinyin Qīng-Zàng gāoyuán), ist eine Landschaft und eine Ökoregion in Ostasien beziehungsweise im Südwesten Chinas (annektierter Staat Tibet), die als höchste Hochebene der Erde das wenig gebirgige Zentrum der Massenerhebung von Hochasien bildet. Oft wird die Be...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Annonay – news · newspapers · books · scholar · JSTOR (July 2013) (Learn how and when to remove this message) Commune in Auvergne-Rhône-Alpes, FranceAnnonayCommuneAnnonay, view from the Aygas rise Coat of armsLocation of Annonay AnnonayShow map of FranceAnnon...

 

Le ThuitcomuneLe Thuit – Veduta LocalizzazioneStato Francia Regione Normandia Dipartimento Eure ArrondissementLes Andelys CantoneLes Andelys TerritorioCoordinate49°15′N 1°21′E49°15′N, 1°21′E (Le Thuit) Altitudine7 min - 143 max m s.l.m. Superficie3 km² Abitanti135[1] (2009) Densità45 ab./km² Altre informazioniCod. postale27700 Fuso orarioUTC+1 Codice INSEE27635 CartografiaLe Thuit Modifica dati su Wikidata · Manuale Le Thuit è un c...