Whitespace

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動

Whitespace(ホワイトスペース)は、FORTH系のスタック指向プログラミング言語の一つ。GPLにより配布されている。通常インタプリタ言語であり、スクリプト言語として用いられる事が多い。

概要[編集]

Edwin BradyとChris Morrisによって2003年4月1日に公開され、FORTHの様なスタック指向のプログラミング言語であり、チューリング完全であって、逆ポーランド記法(RPN)で記述される。公開直後から様々な言語でインタプリタが作られている。高水準言語であるながら低水準言語の特徴も併せ持ち、それでいて逐次コンパイルによって高速インタプリタが実現され、スクリプト言語としても高い処理速度を持つ。英国で開発された言語にもかかわらず高度に国際化されており、英語由来のコマンドが存在しない。用いる文字も と	、
の3つのみであり、ラテン文字未習者にとっても習得が容易である。尚、その他の文字は全て空白文字としてコメントアウトされる。通常コメントとして用いられるのは や 、 、 、 、 、 、 、 、 であり、​やも用いられる。	補完機能が実装されたインタプリタは知られていない。

サンプルプログラム[編集]

以下のソースコードをインタプリタに入力すると、標準出力に文字列「Hello, world!」が表示される。

   
   	  	   
		    	
   		  	 	
		    	 
   		 		  
		    		
   		 		  
		    	  
   		 				
		    	 	
   	 		  
		    		 
   	     
		    			
   			 			
		    	   
   		 				
		    	  	
   			  	 
		    	 	 
   		 		  
		    	 		
   		  	  
		    		  
   	    	
		    		 	
   		 	
		    			 
   	 	 
		    				
    
		     

    	
 
 			 
 
	  	 
	
     	
	   
 
  	

   	 



文法[編集]

Whitespaceの特徴はIMP (Instruction Modification Parameter)の使用で、各IMPのもとにコマンド、パラメータが用いられる。

数値[編集]

数値は整数値が利用可能で、恒に二進表示を用いて、 が0を	が1をそれぞれ表し、終端記号は
である。

IMP[編集]

IMPには以下の種類がある。 :スタック操作,	 :演算,		:ヒープアクセス,
:フロー制御	:入出力I/O

 スタック操作[編集]

スタック操作のIMP の後に続けて +数値:数値をスタックに積む。
 :スタックの一番上を複製する。	 +数値:スタックの数値番目をコピーして一番上に積む。	
+数値:スタックの数値番目を削除する。
	:上位2つのスタックを交換する。

:一番上のスタックを捨てる。

演算[編集]

	 に続き  :加算、 	:減算、 
:乗算、	 :商、		:剰余

ヒープアクセス[編集]

 :まずスタックから値を取り出しpopし、スタックからアドレスを取り出しpopしてヒープ領域 (永続的なメモリ)のそのアドレスにその値を書き込む。
	:スタックをアドレスとしてpopし、ヒープ上のそのアドレスにある値をスタックに積む。

入出力I/O[編集]

	に続き  :文字コードとして出力。 	:二進整数値として出力。	 :スタックをアドレスとしてpopしヒープ上のアドレスの位置の一文字分の文字コードをスタックに積む。		:スタックをアドレスとしてpopしヒープ上のアドレスの位置の数値を終端記号である
まで読みスタックに積む。数値は が0を	が1をそれぞれ表すのであった。

フロー制御[編集]

この節は執筆の途中です この節はまだ執筆途中です。加筆、訂正して下さる協力者を募集中!

参考[編集]

Whitespace 超入門