次世代Webプログラミング言語の大本命Perl6/Parrot
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/10/08 16:57ID:rnVYrmplParrotはCLR(Common Language Runtime)であり、
ParrotアセンブラにコンパイルできればPerl6のみならず、
Python、Ruby、PHPをはじめ、JavaもC#も、Basic、Scheme、
その他の言語なんでもいける・・・ようになるかも!?
mod_parrotができれば速度面でも問題無し!
そんな夢のような言語/VMであるPerl6/Parrotについて語りましょう。
関連サイトは >>2
0331nobodyさん
04/10/30 16:00:10ID:???0332nobodyさん
04/11/02 16:13:55ID:???コンパイラも書かないといけないけど。
で、肝心の誰がそれら書くのかって問題は解決したのかな..
>>329
http://www.poniecode.org/ これかな。
>>245
>>244==211でした。(レス遅過ぎ)
parrot0.1.0のときちょっとだけ触ったけど、といってもサンプル試した程度です。
installはまだ出来なくて、自分の環境ではscript内のライブラリや外部プログラムのpathを変更しないと動かなかった.
CPANのPerl6 Bundleはインストールに躓いて断念。(原因追求してない)
0334nobodyさん
04/11/02 21:38:07ID:???,. 、 / /
,.〃´ヾ.、 / /
/ |l ', / /
,、 ,r'´ ||--‐r、 ', パ ロ ー レ パ ロ レ パ ロ ー レ ー ! !
l.l. ,..ィ'´ l', '.j '.
'r '´ ',.r '´ !| \
l! ....:.:.:.:.:.:ヽ、 ,l \
ゝ、.,_ ---‐‐‐----ゝ、ノ
| |
.| |
| |
| |
| |
| |
| |
| |
.| |
0335nobodyさん
04/11/03 03:03:39ID:???0336nobodyさん
04/11/04 01:14:06ID:???0337nobodyさん
04/11/04 09:36:33ID:???0338nobodyさん
04/11/04 13:38:12ID:???0339nobodyさん
04/11/04 19:09:04ID:???0340nobodyさん
04/11/04 19:14:34ID:???0342nobodyさん
04/11/05 16:17:30ID:???0343nobodyさん
04/11/05 21:26:43ID:???お前らに未来は無い。
0344nobodyさん
04/11/05 21:58:32ID:???0345nobodyさん
04/11/27 21:03:19ID:???0346nobodyさん
04/11/28 01:22:18ID:???0347nobodyさん
04/11/28 10:47:26ID:???0348nobodyさん
04/11/28 13:03:02ID:???0349nobodyさん
04/11/28 13:55:37ID:???動的言語向けに設計された、レジスターベースのVirtual Machine
ところで、>>1 の修正提案
> ParrotはCLR(Common Language Runtime)であり、
.NetのCLRは、GUIやWEB環境も含まれる事があるので断言するのは適切じゃないんじゃないかな。
Virtual Machineの方が一般的な表現だと思う。
あと、parrotアセンブリ以外に, parrotバイトコード, parrot中間表現, parrot構文木
なども実行可能です。(pastはまだ不完全みたいだけど)。拡張子みて判断してくれるらしい。
0350nobodyさん
04/11/28 14:48:03ID:???0351nobodyさん
04/11/30 19:40:40ID:???してくれるよ
0352nobodyさん
04/11/30 23:38:32ID:???0353+++
04/12/04 02:52:18ID:???http://www-6.ibm.com/jp/developerworks/linux/041203/j_l-cpregex.html
>錆びた鉄の枠組みという外観の奥深くで、作業員が働き続けています
ですって。期待してるから頑張ってくれ。
0354nobodyさん
04/12/04 18:09:24ID:???0355nobodyさん
04/12/04 19:43:16ID:???0356nobodyさん
04/12/05 04:54:23ID:???Parrot使わんでもいいから動くもの提供してくれたっていいじゃん
0357nobodyさん
04/12/06 20:32:18ID:zBBK8da1「馬鹿は100人集まると100倍馬鹿になる」
0358nobodyさん
04/12/07 15:39:01ID:???<?php4
$G = array(1,2,3);
?>
<?perl5
print "@$G";
?>
0359nobodyさん
04/12/07 17:31:00ID:???0360nobodyさん
04/12/07 17:36:28ID:???つーか何でキモPI
0361nobodyさん
04/12/07 17:40:23ID:???PHPがPI風味だから。
0363nobodyさん
04/12/08 03:08:23ID:???http://www.smashing.org/mod_parrot/
Readmeによると、mod_parrotは parrot もしくは parrot VM を対象とした言語で
apacheのハンドラを書くことができるらしいです。
つまり、perlもphpも mod_parrot上で動かす事が出来るって事かな。
>>358の様な言語の混在については、現状のPHPでは難しいと思います。
php/parrot(PHP6)の実装はまだ見た事ないので、どのような仕様になるのかは知らないけど。
埋め込みスクリプト部分を言語毎に独立させる事が出来れば、
( <? } else { ?> みたいな構文を禁止すれば ...)
parrotを対象とした言語の、汎用テンプレートって可能性はあるかも。
0364nobodyさん
04/12/10 19:37:29ID:???頭の悪いことは止めなさい。
0365nobodyさん
04/12/10 19:48:25ID:???0366nobodyさん
04/12/10 23:19:41ID:???0367nobodyさん
04/12/10 23:40:04ID:???0368nobodyさん
04/12/11 00:40:14ID:EQ2GnRJXすごいな。正規表現をここまで昇華させたら
他のスクリプト言語は付いて来れないだろうな。
Parrotの思想も含めてPerlコミュニティーの天下取ったるという
貪欲さは半端じゃないね。
0369nobodyさん
04/12/11 08:46:49ID:???これ、最新のparrotだと Perl6 Grammar Engineから名前が変更されて、
Perrot Grammar Engine (PGE)になってますね。./compilers/pge
他の各言語の構文でサポートされるかどうかは別としても、エンジン部分の再利用が期待できそう。
ちなみに(parrot関係ないけど)
スクリプト言語では、REBOLって言語がすでに組み込みGrammar Engineをサポートしています。
0370nobodyさん
04/12/11 10:52:17ID:???Grammar Engineという概念はPerl6発ではなかったのね。
ま、でも素晴らしい機能が使えるのはうれしい。
0371nobodyさん
04/12/20 23:00:51ID:N08Ajr6t0372nobodyさん
04/12/21 13:42:51ID:t6MkBwt30373nobodyさん
04/12/25 13:06:13ID:F4TsbzKmβくらいは来年中に出してほしいものだが。
0374nobodyさん
05/01/01 02:09:29ID:kjBKkwNI0375nobodyさん
05/01/02 19:29:16ID:???QuakeやDoomとかだと、ボンクラ100人では絶対にできず、天才数人によってリリースされたような感じだったので、
その辺の実装のリリーススピードが気になった。
0376nobodyさん
05/01/03 03:10:45ID:???0377nobodyさん
05/01/03 23:33:52ID:H8i1Un47仕様の策定に時間がかかってるような印象を受けるね。
仕様さえ決まればさくっとできそうな気がする
0378nobodyさん
05/01/05 04:16:27ID:Sz4skZih0379nobodyさん
05/01/05 09:56:22ID:???0380nobodyさん
05/01/05 13:25:10ID:???つーか俺も募金してないんだけどな。
0381nobodyさん
05/01/07 12:38:32ID:xUjytDhe0382nobodyさん
05/01/10 18:13:43ID:???PHP6はやはりパクっていくのだろうか?
それとも独自路線でいくのだろうか。
>>353でも出てたけど正規表現一つ取ってもこれだけ変わるからね。
0383nobodyさん
05/01/10 18:23:30ID:???初心者向けの言語は開発しまくるのもいいが
バグのない完成度が高い状況までいけば
無理に開発する必要ないと思うけどね
必要な関数とかも自分で作れるわけだし
0384nobodyさん
05/01/22 21:19:41ID:i6Mi6Y7z試したことがある人いる?
0385nobodyさん
05/01/22 23:16:04ID:???PerlのコードをPerl6で書いて見ないか?
http://cpan.uwinnipeg.ca/module/Perl6/
0387nobodyさん
05/02/05 07:56:29ID:???0388nobodyさん
05/02/05 08:01:52ID:???…age荒らしか?
0389nobodyさん
05/02/05 17:50:44ID:???0391nobodyさん
05/02/05 22:29:31ID:???Perl6はいつリリースされるでしょうか?
現在のプランは2005年の第3四半期に働く6.0.0コンパイラを準備が
できるようにすることです、2004年後半に取られた言語デザインの
スナップに基づいて。
しかしながら、十分な貢献を受けるPerl財団では、この目標が
実現を終了するのに必要である5開発者年以上の努力に資金を供給すると
叙述されます。 しかし、その基金がなければ、開発は
ボランティアベースにしたがって、よりゆっくり続くでしょう。
0393nobodyさん
05/02/07 22:36:35ID:???0394nobodyさん
05/02/11 05:36:10ID:???0395nobodyさん
05/02/15 06:13:36ID:Kt+6ObGY0396nobodyさん
05/02/19 00:26:06ID:???0397nobodyさん
05/02/20 08:36:45ID:bTPFMRzwhttp://www.cafepress.com/parrotstuff1.3881171
0398nobodyさん
05/02/20 15:10:56ID:???もしくはHSPか何かと勘違いされてるんじゃねーの?
0399nobodyさん
05/02/20 15:21:30ID:???0400nobodyさん
05/02/20 15:28:06ID:???parrot-0.1.1/languagesにもPHPのディレクトリは無いよ。
LANGUAGES.STATUSにもPHPに関する記載は無し。
0401nobodyさん
05/02/20 16:37:14ID:???TCLとか重要なのが入っとらんやん。Groovyとかもパローレで動かしちゃったほうが
手っ取り早そうな気がするが・・・。あとJVMはインタープリタとは言いがたいな。
0402nobodyさん
05/02/21 02:25:46ID:???0406nobodyさん
05/02/24 23:30:27ID:???0407+++
05/02/26 00:56:13ID:???http://e-den.servequake.com/~kuryomo/parrot/parrot_lang.html
0409nobodyさん
05/02/26 14:53:12ID:???お金とこれから勉強に割く私の時間は無駄になっちまうのでしょうか。
0410nobodyさん
05/02/26 18:41:30ID:???Great!! 私もそろそろ情報まとめて公開しようかな。
いくつか捕捉で、
Ook!はオランウータンでも使えるように設計されたプログラミング言語で、
Ook! Ook? Ook. の組合せ(3**2)で、BrainF*ckの8命令を表現しています。
動かした事はありませんが、Ruby/Parrotは、Cardinalというプロジェクトがあります。
http://rubyforge.org/projects/cardinal/
Pythonの実装はいくつか在りますが、自分が試した頃はどれもベータでした。
pie-thon parrotの./languagesディレクトリ以下に収録
pirate http://pirate.tangentcode.com/
pyrate http://www.intertwingly.net/blog/2004/10/02/Pyrate
0411nobodyさん
05/02/26 18:44:32ID:???これも0.1.1では、returnステートメントがまだだったりと、不完全。
Parrot_AST(
version(Const('0.1'))
_options()
Src_File("languages/python/hello.py")
Py_Module(
_()
Stmts(
Py_Print(Const('Hello PAST'))
Py_Print_nl())))
Schemeのサンプル, displayとかnewlineが実装されていないのでwriteで出力。
改行を出力できないので、端末の設定に注意してください。
(define (double x) (* x 2))
(define (fact n) (if (> n 2) (* n (fact (- n 1))) n))
(write (double 10))
(write (fact 10))
schemecはpasmを出力するので、一旦 .pasm ファイルへリダイレクトするか、
パイプでparrotへ渡して実行します。ライブラリのPATHを設定する必要もあるかも知れない。
#!/bin/sh
./schemec $@ | parrot -a -
あと、Haskellで書かれたPerl6インタプリタ http://pugscode.org/
らしいです。今から試すのでレビューは後ほど。
0412nobodyさん
05/02/26 23:10:30ID:???>2・それをもっと扱いやすいツリーに(Tree.pm)
>3・コンテキスト情報をパースツリーノードに格納(Addcontext.pm)
>4・IMCCコード(アセンブラより高度なPIR)を生成。
>そしてIMCCを通してレジスタ設定とかして、parrotアセンブラにより アセンブルされる。
これらのモジュールを使うえばParrotで簡単に言語が作れるのかね?
0413+++
05/02/26 23:41:34ID:???いや、ちょっと前のやりとりを見て、『実際何が入ってるんだ??』と
興味を惹かれたもので。たいしたものじゃないです。はい。
>>410
オランウータン?うーん、勉強になります。まだ実際に
動かしてないので、それからまたちょこちょこ記事追加しようかなあ、と。
>>412
いや、それはPerl6がコンパイルの時に実際にそうやってるというだけで、
言語の実装は、簡単な言語ならPasmやPIRでごりごり書いたりも出来るし・・。
0414nobodyさん
05/02/27 11:41:13ID:???http://cog.cognitivity.com/perl6/
0415nobodyさん
05/02/27 21:59:01ID:???0416410,411
05/02/28 14:22:24ID:???インストールに必要なもの:
- perl
- Haskellのコンパイラ、http://www.haskell.org/ghc/ から入手してインストール.
- PerlのTerm::ReadLine::Gnuモジュール、CPAN等から探してきてインストール。
darkやSubversionなどからソースをcheck outして、perl Makefile.PL && make
pugsというファイルが出来上がるので適当なPATHの通ってる場所にコピー。
pugsは実行ファイル形式なので、ghcは使わないならアンインストールしてもok
make時にparrotは特に要求されませんでした。
pugsと引数なしで実行すると、hugsのようなシェルモードで起動できます。
pugs> とプロンプトが出るので、適当にperlの式を
デバッグ用のメッセージも一緒に出るけど、エラーではないので気にせずに。
インタラクティブシェル内のコマンドは、pugs> :q で終了。:hでヘルプ。
驚いたのが Y-combinatorが簡単に書ける事。
無名関数で名前を束縛せずに再帰が出来る。# 例: factorial(10)
sub { ($_ > 0) ?? $_ * &?SUB($_ -1) :: 1 }.(10).say
0417410,411
05/02/28 14:23:03ID:???active perl / windows or cygwin環境だとmake失敗するとの報告例あり。
==> 自分でbuildスクリプトを組むか、nmake,pmake等を試してみる。(MakeMaker側の問題だと思う)
インタラクティブ・シェル モードでの関数定義が出来なかった。
なぜだか知らないけど、Haskellインタプリタのhugsも同じ制約がある。
ファイルに書いて実行すると関数定義も正常に実行できます。
pugsは、perl6の構文を独自のインタプリタで実行するのみで、parrotと連係は出来ないようです。
0419nobodyさん
05/03/01 23:41:06ID:???0420nobodyさん
05/03/02 20:39:58ID:???0421nobodyさん
05/03/04 01:13:19ID:???0422nobodyさん
05/03/06 20:57:26ID:???0423nobodyさん
05/03/07 01:21:45ID:???0424nobodyさん
05/03/07 02:03:08ID:???0425nobodyさん
05/03/07 02:05:07ID:???0426nobodyさん
05/03/07 05:14:46ID:???0427nobodyさん
05/03/07 16:41:32ID:???0428nobodyさん
05/03/07 16:49:46ID:???0430nobodyさん
05/03/13 11:57:48ID:???> pugsは、perl6の構文を独自のインタプリタで実行するのみで、parrotと連係は出来ないようです。
コンパイラも含まれるようになるみたい。
■ このスレッドは過去ログ倉庫に格納されています