Polyglot (プログラミング)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Polyglot (プログラミング)の意味・解説 

Polyglot (プログラミング)

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

polyglotとは、複数のプログラミング言語として解釈可能なコンピュータープログラムまたはスクリプトであり、コンパイルまたは解釈に使用されるプログラミング言語とは関係なく、同じ操作または出力をするもののことである[1]

一般に、polyglotは、Cプリプロセッサを使用した字句トークンの再定義を可能にする)とLispPerlshなどのスクリプト言語の組み合わせで作られる[要出典]

メソッド

ポリグロットプログラムを構築するために最も一般的に使用される2つの手法は、コメントに異なる文字を使用する言語を組み合わせることと、さまざまなトークンを異なる言語の他のトークンとして再定義することである。多くの場合、構文の特徴がうまく利用することができる。以下、 ANSI CPHP 、およびbashで記述されたポリグロットプログラムを示す。

#define a /* 
#<?php
echo "\010Hello, world!\n";// 2> /dev/null > /dev/null \ ;
// 2> /dev/null; x=a;
$x=5; // 2> /dev/null \ ;
if (($x)) // 2> /dev/null; then
return 0;
 // 2> /dev/null;fi
#define e ?>
#define b */
#include <stdio.h>
#define main() int main(void)
#define printf printf( #define true )
#define function
function main() {
    printf "Hello, world!\n"true/* 2> 
    /dev/null | grep -v true*/;
     return 0;
}
#define c /*
main
#*/
  • ハッシュ記号はCのプリプロセッサステートメントを示すが、bashとPHPではコメントである。
  • 「//」は、PHPとCの両方のコメントであり、bashのルートディレクトリである。
  • シェルリダイレクトは、望ましくない出力を排除するために使用される。
  • コメントアウトされた行でも、PHPインジケーターは効果がある。
  • ステートメント" function main() "は、PHPとbashの両方で有効であり、Cでは#definesは、コンパイル時に「 int main(void) 」に変換している。
  • コメントインジケータを組み合わせて、さまざまな操作を実行できる。
  • " if (($x)) "は、bashとPHPの両方で有効なステートメントである。
  • printfはbashシェルビルトインであり、ブラケットが省略されていることを除いてC printfと同じである(これがCコンパイラでコンパイルされている場合はCプリプロセッサが追加する)。
  • 最後の3行は、main関数を呼び出すためにbashによってのみ使用される。 PHPでは、 main関数は定義されるが呼び出されず、Cでは、 main関数を明示的に呼び出す必要はない。

あまり一般的ではない言語では簡単に作ることもできる[要出典]。これは、 SNOBOL 4、 Win32ForthPureBasicv 4.x、およびREBOLで同時に記述された小さなサンプルである。

 *BUFFER : A.A ; .( Hello, world !) @ To Including?
 Macro SkipThis; OUTPUT = Char(10) "Hello, World !"
 ;OneKeyInput  Input('Char', 1, '[-f2-q1]')  ; Char
 End; SNOBOL4 + PureBASIC + Win32Forth + REBOL = <3
 EndMacro: OpenConsole() : PrintN("Hello, world !")
 Repeat : Until Inkey() :  Macro SomeDummyMacroHere
 REBOL  [ Title:  "'Hello, World !' in 4 languages"
 CopyLeft:  "Developed in 2010 by Society" ]  Print
 "Hello, world !"  EndMacro:  func  [][]  set-modes
 system/ports/input [binary: true] Input  set-modes
 system/ports/input  [binary: false] NOP:: EndMacro
 ; Wishing to refine it with new language ? Go on !

関連項目

参考文献

  1. ^ Fjeldberg, Hans (2008). Polyglot Programming - A Business Perspective (PDF) (Thesis). Norwegian University of Science and Technology.

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  
  •  Polyglot (プログラミング)のページへのリンク

辞書ショートカット

すべての辞書の索引

「Polyglot (プログラミング)」の関連用語

Polyglot (プログラミング)のお隣キーワード
検索ランキング

   

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



Polyglot (プログラミング)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのPolyglot (プログラミング) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS