見出し画像

お嬢様的プログラミングのすゝめ by お嬢様部 No.01

CUお嬢様部が提唱するお嬢様的プログラミングの入門記事です

みなさまごきげんよう。

わたくしCUお嬢様部のNo.01(名前募集中)ですわ。

わたくしたちのTwitterアカウントは2ございますので、フォローいただけると嬉しいですわ!
1代目 https://twitter.com/CUdesuwa

2代目 https://twitter.com/CUdesuwa_ver2

CUお嬢様部は全国のお嬢様部創立のビッグウェーブに乗って2020年6月17日に発足いたしましたの。N番煎じのお嬢様部ではございますが立派なお嬢様を目指してTwitter上で日々活動(ネタツイ)に勤しんでおり、現在は5名のお嬢様が在籍しておりますわ。

部のキャッチコピーは「サイバーとお嬢様が交差するとき、物語は始まる――!!」ですわ。

お嬢様部にもガチ勢とエンジョイ勢がいますが、わたくしたちはエンジョイ勢。「ここだけお嬢様しかいない実況スレ」のツイッター版程度の認識で楽しんでいただければ幸いでございます。

実は適当に1、2ヶ月遊んで満足したらアカウントを消そうと思っていたのですがオンやるにお誘いいただいたご縁からアカウントを消すに消せずおかげでなんとか今まで続けてきましたわ。

今後はそっとフェードアウトしていくつもりですので、我こそが次代のお嬢様部ですわ!という方がいらっしゃいましたら名乗り出ていただけると嬉しいですわ。

さて、わが部の紹介はこれくらいでいいかしら?

本日は「オンやる」アドベントカレンダー企画ということで「お嬢様的プログラミングのすゝめ」をお送りしたいと思いますわ。

突然ですがお嬢様とは何でしょうか?いろいろな定義があると思いますわ。

わたくしはお嬢様が兼ね備えるべき資質として「文学的で迂遠な表現をさらりと使える教養」というものがあると思いますの。「文学的で迂遠な表現」とは例えばこういうことですわ。みなさんもどこかで目にしたことがあるのではないかしら?

「月が綺麗ですね」=「愛しています」
「雨、やみませんね」=「もう少し傍にいたいです」
「寒いですね」=「抱きしめてください」
「暖かいですね」=「あなたが傍にいてくれて幸せです」
「ダァシエリイェス!!」 =「ドアが閉まります」

こういった表現を使いこなしてこそのお嬢様ですわよね。

ちなみによくある間違いとして「いい時計してはりますなぁ」というのがございますわ。これはただ迂遠なだけで「文学的」ではないわね。京都的ではございますがお嬢様的ではございませんわ。

さてお話を戻しますと、つまりこういった表現をプログラミングでやってみましょうという試みですわ。御大ドナルド・クヌース様の「文芸的プログラミング」をリスペクトしてこれを「お嬢様的プログラミング」と名付けましたわ。

そんなわけで、わたくしが夜なべして書き上げソースコードがこちらですわ。 

#include <stdio.h>   
  	  	  	
int	main(	int argc,   char	*argv[])
{    	     
	printf("月が綺麗ですね");	    	 
  	return 0; 		  
}		    		
  	  				
		    	  
  	 	 		 
		    	 	
  	   	 	
		    		 
   	     
		    			
  	 		  	
		    	   
  	  				
		    	  	
  	 	 	 	
		    	 	 
   	    	
		    	 		
   
		     

	 			 			 			  	  		 	  	 			 	   		  	 	

	 		 			  		  	 	 			 			 		 		   		 	  	 		 			  		  	 	


  		    	 		  	   		  	  
	   
	

  			 			 			  	  		 	  	 			 	   		  	 	

			 

	  			 			 			  	  		 	  	 			 	   		  	 	 	 					 		  	 	 		 			  		  	  
	
    	
	   

			 			 			  	  		 	  	 			 	   		  	 	

  			 			 			  	  		 	  	 			 	   		  	 	 	 					 		  	 	 		 			  		  	  

	

  			  	  		  	 	 		    	 		  	  

 
	
	 			 
   	 	 
	  	
	  			  	  		  	 	 		    	 		  	   	 					 		  	 	 		 			  		  	  


  	
	   

			  	  		  	 	 		    	 		  	  

  			  	  		  	 	 		    	 		  	   	 					 		  	 	 		 			  		  	  


  	
	       
		 
	

  		 			  		  	 	 			 			 		 		   		 	  	 		 			  		  	 	
  	 	 
  		 	
	
 	
 
	
//EOF

このソースコードは実行方法によって「月が綺麗ですね」と「I love you」を出力できるようになっておりますわ。

おわかりになるかしら?続きを読む前にぜひみなさまも考えてみてくださいまし。おわかりになった方にはわたくしたちお嬢様部のメイドか執事か下僕になる権利を差し上げてもよろしくてよ!

さぁシンキングターイムっ!ですわ!


…さておわかりになりましたかしら?

実は先ほどのソースコードは2種類のプログラミング言語で書かれておりますわ。ひとつはGCCなどのCのコンパイラでコンパイルして実行する方法ですわ。これはみなさますぐにおわかりになったのではなくて?

オンラインで実行できる環境をこちらに用意いたしましたのでお試しになってくださいまし。

https://wandbox.org/permlink/GbYOiLQl3k5ByWoJ

月が綺麗ですね と出力されることをご確認いただけましたかしら?


さて、問題はもうひとつの実行方法ですわ。
あからさまに不自然な改行があるから知っている方にはすぐにバレてしまったかもしれませんわね。

https://naokikp.github.io/wsi/whitespace.html


さきほどのソースコードをこちらに張り付けて RUN をクリックしてみてくださいまし。
I LOVE YOU! と出力されるかしら?

種明かしをいたしますと、先程のソースコードは実はC言語のソースコードであると同時にWhitespaceというプログラミング言語のソースコードになっていたのですわ。

Whitespaceはいわゆる難解プログラミング言語といわれる言語で、実用ではなく趣味的な要素の強いプログラミング言語ですわ。半角スペース、タブ文字、改行文字、のみで記述いたしますの。それ以外の文字はないものとして扱われるので、このように1つの他のソースコードやテキストにソースコードを混ぜ込むことができますわ!

言語仕様はWikipediaで網羅されておりますわ。
https://ja.wikipedia.org/wiki/Whitespace

これだけのシンプルな言語でありながらチューリング完全なので、やろうと思えばどんなプログラムだって作れますわ。
そう、やろうと思えば…ですが。

普通のテキストやソースコードなどにWhitespceのコードを仕込むこともできるので秘密のお手紙にも使えるテクニックですわね。なにかと秘密の多いお嬢様には必須のスキルと言っても過言ではございませんわ。

さらに一歩進んだお嬢様的プログラミングとしてWhitespaceの置き換えという方法も考えられますわ。


たとえば、半角スペースを"ほ"タブ文字を"お"改行を"!"と置き換えると I LOVE YOU! と出力するプログラムをこのように記述できますわ。

これでどのような想いもお嬢様的な高笑いで表現することができますのよ。それではいきますわ。…過呼吸を起こさないように気を付けてお読みくださいまし。

ほほほほ!ほほほおほほおほほお!おおほほほほお!ほほほほおほほほほほ!おおほほほほおほ!ほほほおほほおおほほ!おおほほほほおお!ほほほおほほおおおお!おおほほほほおほほ!ほほほおほおほおおほ!おおほほほほおほお!ほほほおほほほおほお!おおほほほほおおほ!ほほほほおほほほほほ!おおほほほほおおお!ほほほおほおおほほお!おおほほほほおほほほ!ほほほおほほおおおお!おおほほほほおほほお!ほほほおほおほおほお!おおほほほほおほおほ!ほほほほおほほほほお!おおほほほほおほおお!ほほほほ!おおほほほほほ!!ほおほおおおほおおおほおおおほほおほほおおほおほほおほおおおほおほほほおおほほおほお!!ほおほおおほおおおほほおおほほおほおほおおおほおおおほおおほおおほほほおおほおほほおほおおほおおおほほおおほほおほお!!!!!ほほほおおほほほほおほおおほほおほほほおおほほおほほ!おほほほ!お!!ほほほおおおほおおおほおおおほほおほほおおほおほほおほおおおほおほほほおおほほおほお!ほ!ほおおおほ!ほ!おほほおおおほおおおほおおおほほおほほおおほおほほおほおおおほおほほほおおほほおほおほおほおおおおおほおおほほおほおほおおほおおおほほおおほほおほほ!お!ほほほほほお!おほほほ!ほ!ほおおおほおおおほおおおほほおほほおおほおほほおほおおおほおほほほおおほほおほお!!ほほほおおおほおおおほおおおほほおほほおおほおほほおほおおおほおほほほおおほほおほおほおほおおおおおほおおほほおほおほおおほおおおほほおおほほおほほ!ほ!!ほ!!!お!!ほほほおおおほほおほほおおほほおほおほおおほほほほおほおおほほおほほ!ほ!ほほ!ほお!おほおおおほ!ほほほほおほおほ!おほほお!おほほおおおほほおほほおおほほおほおほおおほほほほおほおおほほおほほほおほおおおおおほおおほほおほおほおおほおおおほほおおほほおほほ!ほ!!ほほほお!おほほほ!ほ!ほおおおほほおほほおおほほおほおほおおほほほほおほおおほほおほほ!!ほほほおおおほほおほほおおほほおほおほおおほほほほおほおおほほおほほほおほおおおおおほおおほほおほおほおおほおおおほほおおほほおほほ!ほ!!ほほほお!おほほほほほほほ!おおほ!お!!ほほほおおほおおおほほおおほほおほおほおおおほおおおほおおほおおほほほおおほおほほおほおおほおおおほほおおほほおほお!ほほほおほおほ!ほほほおおほお!お!ほほお!ほほ!お!


あなたも意中の方にこのように想いを伝えてはいかがかしら?


これを受け取った方は直接的な表現を避けるあなたの奥ゆかしさと愛の深さに感動すること請け合いですわ~!

お嬢様的プログラミングみなさまもぜひお試しあれ!Whitespaceはシンプルな言語仕様なのでコンパイラやインタプリタを自作してみてもきっと楽しいですわよ。

本稿は「オンやる」アドベントカレンダーの記事として執筆されましたわ。
「オンやる」とはサイバー大学の「CU起業部」が主体となり、有志の学生チームがITとビジネスのいろいろな学びを発表する祭典ですの。

何かを学ぶうえで大切なのは、「遊び」の部分だとわたくしは思いますわ。

たとえば本稿で取り上げたWhitespaceはまったくもって非実用的な言語ではございますが、スタック指向な性質を持っておりますのでアセンブラの訓練になりますわ。(もっとも、いまどきアセンブラを修めるのは少数派かもしれませんわね。)

遊びと学びの融合。わたくしは「オンやる」にそのようなコンテンツを期待しておりますわ。

「オンやる」みなさまも是非積極的に参加なさってくださいね。


それでは本日はこのあたりで失礼いたしますわ。
みなさまごきげんよう!

この記事が気に入ったらサポートをしてみませんか?