Esoteric programming languageとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Esoteric programming languageの意味・解説 

難解プログラミング言語

(Esoteric programming language から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/07 22:18 UTC 版)

難解プログラミング言語 (なんかいプログラミングげんご)とは、意図的に読解が困難なように設計されたプログラミング言語である。英語では、Esoteric programming language (略してesolangとも)と言われる。

基本的には、実用性を目指したものではなく、ジョークのプログラミング言語の一種で、いわゆるハッカーの間では、この種のジョークはたしなみとみなされており、難解プログラミング言語に区分されるプログラミング言語はいくつも作られてきた。

歴史

INTERCALは最初期から現在に至るまで標準的な難解プログラミング言語の一つである[1]。1972年にドン・ウッズ英語版とジェイムズ・リヨンによって、慣れ親しんだ如何なる言語とも異なる言語にしようという意図のもとで設計された[2][3]。その当時に確立された言語であった、FortranCOBOLアセンブリ言語といった言語の各要素をパロディー化していた。

長年、INTERCALは論文の言語マニュアルが存在するのみであった。しかし、1990年にUnix上でC言語により実装されると、INTERCALは再び注目された。これが刺激となり難解プログラミング言語の設計が世界的に流行した。

1993年にWouter van Oortmerssenは小規模なスタック型プログラミング言語英語版であるFALSEを作成した。コードが理解しにくく紛らわしくなるように構文規則が設計された。コンパイラはわずか1024バイトであった[4]。FALSEに触発され、Urban Müllerは更に小規模で名高いBrainfuckを作成した。Brainfuckのプログラムはたった8種類の文字のみで構成される。Chris PresseyのBefunge (FALSEに似ているが、二次元の命令ポインタがある)とともに、Brainfuckは現在、最もサポートされている難解プログラミング言語の一つとなった。これらはチューリング陥穽の正統的な例であり、プログラミング言語の不必要に分かりにくい側面を示していた。Brainfuckはチューリング機械の一種のP′′言語と関係が深い。

用語

チューリング陥穽

チューリング陥穽とは、任意の計算可能な機能が記述できるが、一方でその記述が非実用的なほど難しいような、チューリング完全なプログラミング言語のこと。難解プログラミング言語について、言語機能を最小化しようとする場合に、チューリング陥穽と評されることがある。

言語パラダイム

言語パラダイムには多くのカテゴリがあり、特定の言語がどのように利用されているのかを理解するのに役立つ。

これらのカテゴリには、以下のようなものが含まれる。

  • 命令がデータの変更方法を記述する命令形言語(例:Brainfuck)、
  • データとコードは概ね交換可能であり関数適用を繰り返すことで実行される関数型言語(例:Unlambda)、
  • 始状態に対して関数変換[訳語疑問点]が適用される書換え言語(例:Thue英語版)

OISC

OISCは唯一つの命令をサポートするような計算機のことである。

'Piet'と出力するPietプログラム
PietによるHello worldプログラム
  • Brainfuck コンパイラが非常に小さい
  • Befunge 自己変更可能な2次元配列ソースコード
  • COW Ook!の派生言語
  • HQ9+ 実行可能な命令はH,Q,9,+の4つのみ
  • INTERCAL
  • KEMURI
  • Malbolge 3進数しか扱えず、プログラムの意味が逐次変わるので、人間の手では書くことができないと言われている
  • Piet 画像をソースコードとする
  • Pxem 0バイトのファイルでソースコードが記述できる
  • Unlambda
  • Lazy K 純粋関数型言語で、関数を新たに定義する構文はなく、組み込み関数が3つしか存在しない
  • Whitespace 半角スペース・タブ・改行のみでソースコードが作られる
  • Grass w,W,vのみでソースコードが作られる。スタックベースの関数型言語
  • JSFuck JavaScriptのような文法の言語。構成文字は[,], ()!+のみ
  • Ook! Brainfuckの置き換え
  • Shakespeare シェイクスピアの演劇のように見えるよう設計されている
  • velato 音階を用いて記述する言語
  • FRACTRAN 正の分数の列をソースコードとする

文化的文脈

難解プログラミング言語の文化的な文脈については、Geoff Coxなどによって研究されている。Coxは、難解プログラミング言語をMez Breeze英語版のmezangelleのようなコード芸術やコード詩と類似のものとみなしており、その著書の中で難解プログラミング言語について「人々の関心を命令や制御から文化的な表現や拒絶へと移行させた」と評している[5]。Daniel Temkinは、brainfuckについて「人間的な表現とアセンブリ言語の境界を取り除くことを拒否しているがために、我々を滑稽な論理の探求へと誘ってくれる」と述べ、人間の思考と計算機の論理の間にある固有の矛盾を明示した[6]。Temkinは難解プログラミング言語によるプログラミングを、例えばフルクサス運動における演奏のような、楽譜の演奏と関連付けていた。コードの中で論理規則を使い倒すことでその言語の視点を明確にできるのだ[7]

出典

  1. ^ Matthew Fuller, Software Studies, MIT Press, 2008
  2. ^ Eric S. Raymond (1996). The New Hacker's Dictionary. MIT Press. p. 258. ISBN 978-0-262-68092-9. https://books.google.com/books?id=g80P_4v4QbIC&pg=PA258 
  3. ^ Woods, Donald R.; Lyon, James M. (1973), The INTERCAL Programming Language Reference Manual, Muppetlabs.com, オリジナルの2009-04-24時点におけるアーカイブ。, https://webcitation.org/5gGhTDeaV?url=http://www.muppetlabs.com/~breadbox/intercal/intercal.txt 2009年4月24日閲覧。 
  4. ^ Interview with Wouter van Oortmerssen” (2015年7月1日). 2015年12月1日閲覧。
  5. ^ Cox 2013, p. 5
  6. ^ Temkin, Daniel (15 Jan 2014). “Glitch && Human/Computer Interaction”. NOOART: The Journal of Objectless Art (1). http://nooart.org/post/73353953758/temkin-glitchhumancomputerinteraction. 
  7. ^ Temkin, Daniel. “brainfuck”. Media-N Journal (Spring 2013). http://median.s151960.gridserver.com/?page_id=947 2014年5月6日閲覧。. 

参考文献

関連項目

外部リンク


「Esoteric programming language」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Esoteric programming language」の関連用語

Esoteric programming languageのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Esoteric programming languageのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの難解プログラミング言語 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS