Langage de programmation exotique

Programme "Hello World!" en brainfuck

Un langage de programmation exotique est un langage de programmation imaginé comme un test des limites de la création de langages de programmation, un exercice intellectuel ou encore une blague, sans aucune intention de créer un langage réellement utile. De tels langages sont souvent un passe-temps pour les hackers ou les programmeurs. L'adjectif « exotique » permet de distinguer ces langages de ceux communément utilisés dans l'industrie.

La facilité d'utilisation est rarement une priorité pour ces langages, le but étant généralement de supprimer ou de remplacer les fonctionnalités tout en maintenant le langage Turing-complet. En rendant particulièrement compliquée la lecture de tels programmes, les créateurs de tels langages en font peut-être le pendant informatique de la poésie du non-sens.

Histoire

Le premier langage exotique fut INTERCAL, créé en 1972 par James Lyons et Don Woods, avec l'intention de créer un langage différent de tout ce qu'ils connaissaient.

Plus de vingt ans plus tard, en 1993, Urban Müller inventa Brainfuck, un langage à huit instructions, et Chris Pressey créa Befunge. Ces deux langages font partie des langages exotiques les plus suivis. Sans surprise, tous deux sont grandement mis en valeur par le fait qu'ils furent les premiers de leur genre tout en étant élégants.

Variétés

Les Turing tarpits sont des langages Turing-complets, c'est-à-dire qu'ils permettent en théorie d'implémenter n'importe quelle fonction calculable, mais conçus de telle sorte que même les opérations les plus élémentaires sont difficiles à effectuer en pratique. Ils utilisent souvent un nombre restreint d'instructions, ce qui en rend la programmation acrobatique. Ceci inclut Brainfuck (huit instructions sans opérandes), OISC (une commande, trois opérandes), et Thue (une commande, deux opérandes, créé par John Colagioia).

La Turing-complétude est un des thèmes favoris de la communauté. Elle est loin d'être évidente pour tous les langages, et les démonstrations sont souvent complexes. De nouveaux langages apparaissent continuellement, et la preuve de leur Turing-complétude est un défi.

Non déterministe

Un langage de programmation déterministe est un langage où il est toujours possible de prévoir, en fonction de l'état actuel d'un programme, quel sera son état suivant. La plupart des langages sont déterministes, tandis que des langages non déterministes tels que Java2K donnent souvent des résultats peu fiables, et créer des programmes, même triviaux, qui fournissent des résultats fiables est souvent une tâche monumentale.

Despotique

Un langage despotique est un langage Turing-complet où les commandes permettent la sélection de la prochaine instruction à être exécutée parmi un ensemble fini d'instructions. ReMorse, Whirl et de façon discutable INTERCAL sont despotiques.

Liste non exhaustive de langages exotiques

Brainfuck
Un des langages exotiques les plus suivis, à base de 8 instructions, simpliste mais difficile à comprendre.
FRACTRAN
Un langage à base de fractions inventé par le mathématicien Conway.
INTERCAL
La référence en matière de langages exotiques.
GOTO++
Langage parodique mélangeant une francisation du BASIC, de fausses instructions GOTO, et des sauts aléatoires dans le code.
LOLCODE
Le LOLCODE est un langage de programmation exotique inspiré de l'argot Internet et du Lolcat retrouvable sur les chats et forums anglais.
Malbolge
Un langage conçu pour être le plus difficile à programmer et pour être le plus ésotérique possible.
Piet
Un langage de programmation où les programmes sont des images matricielles.
Shakespeare Programming Language
Un langage pour écrire des programmes ressemblant à une pièce de théâtre.
Whitespace
Ce langage est une variante du Brainfuck qui utilise uniquement des espaces, des tabulations et des retours à la ligne pour écrire un programme.
Befunge
Ce langage a été conçu pour être très difficile à compiler.

Voir aussi

Liens externes

Read other articles:

Kepulauan Moonsund Kepulauan Moonsund (Esti: Lääne-Eesti saarestikcode: et is deprecated , kepulauan Estonia Barat[1]) adalah kepulauan di Estonia, terletak di Laut Baltik. Kepulauan ini memiliki luas sebesar 4.000 km². Pulau Saaremaa Hiiumaa Muhu Vormsi dan sekitar 500 pulau kecil lainnya Referensi ^ West-Estonian islands. Estonica. Diarsipkan dari versi asli tanggal 2007-06-10. Diakses tanggal 2009-02-16.  Artikel bertopik geografi ini adalah sebuah rintisan. Anda dapat...

 

 

Chief executive of Donetsk Oblast, Ukraine Governor of Donetsk OblastSeal of Donetsk OblastIncumbentVadym Filashkin[1]since 28 December 2023[1]ResidenceDonetsk (de jure) Kramatorsk (de facto)Term lengthFour yearsInaugural holderMykhailo Nalimov1932Formation1932 as Chairman of Executive Committee of Donetsk OblastWebsiteGovernment of Donetsk Oblast The governor of Donetsk Oblast is the head of executive branch for the Donetsk Oblast. Due to the current Russo-Ukrainian War ...

 

 

Lục bộ hay sáu bộ là thuật ngữ chỉ sáu cơ quan chức năng cao cấp trong tổ chức triều đình quân chủ Á Đông (hoàn chỉnh nhất ở thời Lê sơ, vua Lê Thánh Tông). Việt Nam Phủ phụ chánh triều vua Duy Tân. Từ trái sang phải: Tôn Thất Hân (Thượng thư bộ Hình), Nguyễn Hữu Bài (bộ Lại), Huỳnh Côn (bộ Lễ), Hoàng thân Miên Lịch, Lê Trinh (bộ Công), Cao Xuân Dục (bộ Học). Đứng đầu mỗi bộ l...

Census designated place in California, United States For the community in Kern County formerly called Baker, see Boron, California. Census designated place in California, United StatesBaker, CaliforniaCensus designated placeAerial view of Baker looking north: I-15 jogs south around the town, leaving Baker Boulevard, the main street, to show where the pre-interstate highway (US 91 and US 466) went. Baker Airport sits just north of the city alongside northbound CA 127, the Death Valley Road. Vi...

 

 

Onsen luar ruang di Prefektur Wakayama Onsen di Prefektur Akita Onsen (温泉code: ja is deprecated ) adalah istilah bahasa Jepang untuk sumber air panas dan tempat mandi berendam dengan air panas yang keluar dari perut bumi. Penginapan yang memiliki tempat pemandian air panas disebut penginapan onsen (onsen yado). Kota wisata yang berkembang di sekeliling sumber air panas disebut kota onsen. Sumber air panas memiliki dua sumber panas, magma yang berada di dasar gunung berapi, dan panas yang ...

 

 

Синелобый амазон Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:ЗавропсидыКласс:Пт�...

Political party in Mandatory Palestine Brit HaBirionim ברית הבריוניםHistorical leadersAbba AhimeirUri Zvi GreenbergYehoshua YeivinFounded1930Dissolved1933HeadquartersJerusalemIdeologyRevisionist ZionismRevisionist MaximalismFascismAnti-communismPolitical positionFar-rightReligionJudaismColors  Black (official)  Blue (informal) Part of a series onFascism Principles Actual idealism Aestheticization of politics Anti-communism Anti-intellectualism Anti-materialism ...

 

 

Dutch politician and diplomat Paulus van de PerrePortrait of Paulus van der Perre by Karel SlabbaertBorn1598MiddelburgDied14 December 1653(1653-12-14) (aged 54–55)LondonNationalityDutch Republic Paulus van de Perre (Middelburg?, 1598? – London, 14 December 1653) was a Dutch politician and diplomat. He was one of the Dutch envoys who negotiated the Treaty of Westminster (1654) for the Dutch Republic with Lord Protector Oliver Cromwell. Biography Van de Perre was a son of Adriaan v...

 

 

Kabupaten JeparaKabupatenTranskripsi bahasa daerah • Hanacarakaꦗꦼꦥꦫ • Pegonجڤارا • Alfabet Jawad͡ʒəpɔrɔTugu Pancasila JeparaKura-Kura Ocean ParkTaman Nasional KarimunjawaMasjid Agung Baitul Makmur LambangJulukan: Kota UkirBumi KartiniScheveningen van JavaThe World Woodcarving CentreMotto: Trus karya tataning bumi(Jawa) Terus bekerja keras membangun daerah(1549 Masehi)[1]PetaKabupaten JeparaPetaTampilkan peta JawaKabu...

Le programme nucléaire iranien a été lancé par le Chah d'Iran dans les années 1950 avec l'aide des États-Unis, puis de l'Europe. Après la révolution iranienne en 1979, le programme a été temporairement arrêté. Il fut rapidement remis en route, mais avec l'assistance de la Russie, à la suite de la guerre Iran-Irak[1]. Le programme actuel met en œuvre plusieurs sites de recherche, deux mines d'uranium, une centrale nucléaire et plusieurs installations de transformation de l'urani...

 

 

Memorial in London to the Windrush generation National Windrush Monument51°30′12″N 0°06′49″W / 51.5034°N 0.1137°W / 51.5034; -0.1137LocationWaterloo Station, London, EnglandDesignerBasil WatsonTypeSculptureMaterialBronzeOpening date2022Dedicated dateWindrush generation The National Windrush Monument is a bronze sculpture by Basil Watson in Waterloo Station, London. It was unveiled in June 2022 by Prince William, Duke of Cambridge.[1] The ...

 

 

هذه المقالة عن المجموعة العرقية الأتراك وليس عن من يحملون جنسية الجمهورية التركية أتراكTürkler (بالتركية) التعداد الكليالتعداد 70~83 مليون نسمةمناطق الوجود المميزةالبلد  القائمة ... تركياألمانياسورياالعراقبلغارياالولايات المتحدةفرنساالمملكة المتحدةهولنداالنمساأسترالي�...

Державний комітет телебачення і радіомовлення України (Держкомтелерадіо) Приміщення комітетуЗагальна інформаціяКраїна  УкраїнаДата створення 2003Керівне відомство Кабінет Міністрів УкраїниРічний бюджет 1 964 898 500 ₴[1]Голова Олег НаливайкоПідвідомчі ор...

 

 

ヨハネス12世 第130代 ローマ教皇 教皇就任 955年12月16日教皇離任 964年5月14日先代 アガペトゥス2世次代 レオ8世個人情報出生 937年スポレート公国(中部イタリア)スポレート死去 964年5月14日 教皇領、ローマ原国籍 スポレート公国親 父アルベリーコ2世(スポレート公)、母アルダその他のヨハネステンプレートを表示 ヨハネス12世(Ioannes XII、937年 - 964年5月14日)は、ロ...

 

 

Canadian professional wrestler (born 1983) RosemaryRosemary in 2018 at a Rise Wrestling event.Birth nameHolly Letkeman[1]Born (1983-11-29) November 29, 1983 (age 40)[2]Winnipeg, Manitoba, Canada[2]Professional wrestling careerRing name(s)Casey MaguireCourtney Rush[3]El Tigre DiabloPJ TylerRosemary[4]Billed height5 ft 8 in (1.73 m)[5]Billed weight150 lb (68 kg)Billed fromWinnipeg, ManitobaThe Valley of Shadows[4&...

Nepalese writer (1900 – 1971) Guru Prasad Mainaliगुरुप्रसाद मैनालीBorn(1900-09-07)7 September 1900Kanpur, Kavrepalanchok, NepalDied8 June 1971(1971-06-08) (aged 70)KathmanduNationalityNepaleseOccupation(s)Writer, civil servantParentsKashi Nath Mainali (father)Kashi Rupa Devi Mainali (mother) Guru Prasad Mainali (Nepali: गुरुप्रसाद मैनाली; 7 September 1900 – 8 June 1971) was a Nepalese short story writer and civil servant...

 

 

Final da Liga dos Campeões da UEFA de 1999–00 Evento Liga dos Campeões da UEFA de 1999–00 (Final) Real Madrid Valência 3 0 Data 24 de Maio de 2000 Local Stade de France, Saint-Denis, França Árbitro Stefano Braschi[1][2] Público 80 000 ← Anterior Próxima → 1998–99 2000-01 A Final da Liga dos Campeões da UEFA de 1999-00 foi uma partida de futebol que ocorreu em 24 de Maio de 2000. A partida foi disputada no Stade de France em Saint-Denis, França, para determinar o vencedor d...

 

 

Zaječar Зајечар Héraldique Vues de Zaječar. Administration Pays Serbie Province Serbie centrale Région Timočka Krajina District Zaječar Ville Zaječar Code postal 19 000 Démographie Population 38 185 hab. (2011) Géographie Coordonnées 43° 54′ 15″ nord, 22° 17′ 05″ est Altitude 137 m Localisation Géolocalisation sur la carte : Serbie Zaječar Géolocalisation sur la carte : Serbie Zaječar modifier  Mu...

« Iso (entreprise) » redirige ici. Pour les autres significations, voir Iso. Iso Motors Iso Grifo. Création 1939 Disparition 1974 Fondateurs Renzo Rivolta (en) Forme juridique Società per azioni Siège social Bresso, Lombardie Italie Directeurs Renzo Rivolta (1939-1966) Piero Rivolta (1966-1973) Ivo Pera (1973-1974) Activité Construction de véhicules automobiles, de remorques et semi-remorques et sport automobile (en) Produits Automobile, moto et automobile de course (d)...

 

 

Mountain range in Thailand and Laos Phi Pan Nam redirects here. For other meanings, see Phi Pan Nam (disambiguation). Phi Pan Nam Rangeทิวเขาผีปันน้ำThe Phi Pan Nam Range and the Yom River in Long District, Phrae ProvinceHighest pointPeakDoi LuangElevation1,694 m (5,558 ft)Coordinates19°8′04″N 99°45′29″E / 19.13444°N 99.75806°E / 19.13444; 99.75806DimensionsLength400 km (250 mi) NE/SWWidth135 km ...