kiyoka.2007_01_28 RSSPLAIN

Related pages: !kiyoka.blog.list !kiyoka.blog.2007_01
555555555555555555555555555555555555555555555
5

[プログラミング] Joyベースのシェルスクリプトなんかどう?

5

再びOverview of the language JOYEXT関連のチュートリアルやFAQを読み直しました。

5

今度はちゃんと理解できたと思います。

5

さて、以前これを『なでしこEXT』の様に日本語プログラミングに応用したら良いんじゃないかと書きましたが、撤回します。

5

日本語プログラミング言語の想定ユーザーとしては、『これからプログラミングを覚えたいという人』に設定するのが良いと思いますが、Joyはそういう人たちにとって難易度高すぎです。

5

関数型言語として設定されており、手続き型言語でおなじみのforループなどがなくmapやfilterというコンビネーターを使うことが前提となっています。

5

Joyの構文を日本語の文脈にうまく当てはめたとしても、プログラミングの初学者に向けて易しい解説をする自信はありません。^_^;

5

むしろ、もっとハッカー向けの用途に適用したほうがいいと感じました。(ハッカーには日本語プログラミングは必要無さそうですので。日本語変換するのめんどくさそうとか言いそう。)

5

例えば、shellスクリプトなんかに適用すると良いのではないかと思います。

5

下記は、Joyで未定義の関数を外部コマンドから探して実行することを想定したコードになっています。

5

 

5
# bash
5
find . -name '*.c' | xargs wc -l
5

 

5
同じものを Joy風 shellスクリプトで書いた場合
5
'.' '-name' '*.c' find
5
['-l' wc] map
5
print
5

 

5
こんな事もできます。
5
# bash
5
lst=`find . -name '*.c'`
5
wc -l ${lst}
5
grep keyword ${lst}
5

 

5
同じものを Joy風 shellスクリプトで書いた場合
5
'.' '-name' '*.c' find dup
5
'-l' wc
5
'keyword' grep
5

 

5

もしかして、mapの実行をCPUの数だけ並列実行するなんてことも許されるのかも。(mapに渡す関数に副作用が無いことを前提にすればOK?)

5

ライブラリはUNIXのコマンドツールをめいいっぱい利用することにすれば実用レベルに持っていくのもたやすいかも。

5

この言語もそういう悲しい運命をたどるのか、それとも使えるのか。

5

それは、結局どれだけ短いコードで問題を記述できるかがにかかかっているのだと思います。

5

実際に作ってみないと分かりませんが、いい線行っていると感じます。自分で作ろうと思うところまでは行きませんが...

5

そういえば、私はscshEXTをインストールしたけど、結局お手軽感が無くて使わなかったりします。

5

今迄、こういう妄想系アイデアを思いついてもlocalでメモするだけだったり、あるいは忘れてしまったりしていたので公開していくことにします。

5

 

5

 

5

COMMENTじょりちょこ

日本語でプログラミングする言語を作るなら、Smalltalkを日本語化するのが一番いいと思ってます。

5

COMMENTkiyoka

じょりちょこさん、コメントありがとうございます。

Smalltalkですか。日本語に語順が似ているのですか?

ちょっとチュートリアルを見てみたんですが雰囲気がわかりませんでした。

メッセージパッシングの形式や、普通のinfixの式がかけたりするんですね。

5

COMMENTじょりちょこ

語順が似ているかどうか、というより、Smalltalkは自然言語として読めるような文法になっているところが、日本語プログラミングのベースにいいな、と思っているのです。

Joyは語順は日本語に近いですが、記号的なので自然言語とは程遠いですよね?

むしろ語順よりも、自然言語に近づけているかどうかが鍵じゃないかな、と。

5

COMMENTkiyoka

じょりちょこさんへ

なるほど、そういう意味だったんですね。

確かに語順が日本語に似ていることは絶対条件ではないですね。

手続き的に考えた時には Forth系の言語は日本語に似ていますが、それ以外の、例えば宣言的な記述をしたい場合は話は変わってきそうですね。

なるほど、日本語プログラミング言語のデザインは簡単じゃないですね。

仕様だけを日本語で書いたらそこそこのWebアプリができるみたいなのが夢なんですが、誰かそんなの作ってないですかね。

RoRみたいな規約にもとづいて日本語で書いたらだいたいできてるみたいな。^_^

5

COMMENTofknuc

zhlcnpoum svqa flvrskibz ywdqbosf whueobvrt bvnawcef mpudt

5

...comment disabled...