[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/25 05:34 / Filesize : 221 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

「コンパイラ・スクリプトエンジン」相談室6



1 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 08:28:29 ]
プログラミング言語処理系の開発に興味のある人達のスレッドです。

字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン等各種最適化,
それにVM,GC,JIT,リンク時最適化,動的バイナリ変換などなど。
意味論に関する話題も歓迎です。

前スレ
1 pc.2ch.net/tech/kako/981/981672957.html
2 pc2.2ch.net/test/read.cgi/tech/1021136715/
3 pc5.2ch.net/test/read.cgi/tech/1070089173/
4 pc5.2ch.net/test/read.cgi/tech/1100097050/
5 pc8.2ch.net/test/read.cgi/tech/1106129164/ (前スレ)
関連リンクは多分 >>2-10 あたり

684 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:44:38 ]
>>678
つまんねぇネタ。

685 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 01:56:10 ]
ネタに見えるのか。

686 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 03:28:22 ]
>>685
お前が言わんと欲する所が、あまりに陳腐過ぎて、
細かい説明するのが面倒つうこと。

687 名前:デフォルトの名無しさん [2005/07/11(月) 06:30:49 ]
Lisper は他でやってくれ


688 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 11:37:21 ]
そのLIPSぐらいしか話題ないってことなんじゃないの。

689 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 16:37:20 ]
>>688
燃料投下(>>674)までの流れを見た上で言ってるのか?

690 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 18:35:40 ]
燃料に見えるのか。

691 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 18:55:26 ]
688はキヤノン社員

692 名前:デフォルトの名無しさん [2005/07/11(月) 19:22:03 ]
ここはLisp擦れ




693 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 19:49:05 ]
内部イテレータのある言語を設計してみたいと思ってるんですが、
Ruby以外に内部イテレータを持ってる言語って何がありますか?
Rubyの内部イテレータではなく、一般に内部イテレータとは
匿名関数と本質的にどの点で違うものなんでしょうか。

694 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 20:15:01 ]
「Rubyの内部イテレータ」について説明してくれたら答えられるかも。

695 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 21:29:03 ]
>>693
>Ruby以外に内部イテレータを持ってる言語って何がありますか?
このスレでさんざん出てきてるLISPというやヴぁい言語のインライン関数が元ネタ。
Rubyで内部イテレータとわざわざ限定してるのは対象データの
コンテナを抽象化して取り出すことを目的にしてるからじゃないかと。

>一般に内部イテレータとは匿名関数と本質的にどの点で違うものなんでしょうか。
質問の意図が不明だけど、まず役割が違うでしょ。
内部イテレータに匿名関数(ブロック)を渡してぶん回すんだし。
匿名関数側は取り出す要素の構造以外知らなくていいし、
内部イテレータはぶん回すコンテナの構造以外知らなくていい。
外部イテレータとの違いはここにある。


696 名前:デフォルトの名無しさん [2005/07/11(月) 22:43:27 ]
つまり、Ruby>Lisp ってことですか?


697 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 22:54:58 ]
mapとどう違うんだ?

698 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 23:07:43 ]
mapが何か関係あるのか?

699 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 00:25:21 ]
ここはLispとRubyの話は禁止
どうしてもやりたいのなら別スレ立ててそっちでやってください

700 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 00:25:38 ]
>>693
Smalltalkにはブロックという概念があり、これがちょうどRubyの内部イテレータ(ブロック)に相当します。
Lispのmapとも似ていますが、どちらかというとSmalltalkのほうに似ているんじゃないでしょうか。
Smalltalkとの違いは、Rubyでは基本的にメソッド1つにつき1つのブロックしか渡せませんが、Smalltalkは複数のブロックを渡すことができることです。

なおRubyでは、昔は本当にイテレータとしてのみ使われていましたが、今は他の用途にもよく使われるため、現在ではブロックと呼ばれることが多いようです。
また「内部イテレータ」というのは使われ方の名称であって、機能としては「クロージャ」というのがプログラミング言語一般の用語です。
(「クロージャ」という機能を「内部イテレータ」として使うということ)

701 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 01:06:35 ]
実装的にはイテレータとしてのみブロックを渡す場合は、
真面目にクロージャを作る場合よりも省略できる部分が、
結構あるんだよね。
あと、内部イテレータと外部イテレータにはそれぞれ、
長所と短所がある。簡便なのは内部イテレータだが、
複雑なイテレーションの場合は外部イテレータのほう
が良い場合もある。
個人的なオススメはクロージャが扱えるオブジェクト
指向言語なら外部イテレータを基本に設計して、内部
イテレータはライブラリで用意する、というやり方。


702 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 02:56:11 ]
>実装的にはイテレータとしてのみブロックを渡す場合は、
>真面目にクロージャを作る場合よりも省略できる部分が、
>結構あるんだよね。

詳細きぼんぬ



703 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 03:01:01 ]
>>702
環境をスタックからヒープに移すタイミングの問題。


704 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 04:07:52 ]
特殊用途向けに制限掛かったクロージャ?

705 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 07:33:41 ]
>>693
構文に関して言えば、
内部イテレータに特化した構文(だったものも含む)を持ってる言語は
俺の知ってる限りでRubyとSmalltalkだけかな。
他になんかあったっけ?

706 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 09:26:54 ]
>>705
SmalltalkのCollection関係の
 aCollection do:[each: 一件ごとの処理].
とかは言語組込みの構文じゃなくてクラスライブラリの命名ルールだよ。


707 名前:デフォルトの名無しさん [2005/07/12(火) 21:43:33 ]
つまり Ruby が最高言語ということでファイナルアンサ?


708 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 21:54:55 ]
ここの連中はRubyとLISPの名前を出せばほいほい釣れるよ。

709 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 08:56:12 ]
あたしのために喧嘩なんてしないでッ

710 名前:デフォルトの名無しさん mailto:sage [2005/07/14(木) 20:44:00 ]
                         .,Å
                      .r-‐i'''''''''''i''''‐-、
                    o| o! .o  i o !o
                    .|\__|`‐´`‐/|__/|
                     |_, ─''''''''''''─ ,、 /
                    、-'      u   -、  
                  / U          0 \
                 /          /     i
                 |   ● ,,.   .,, ●      | 
      __   .      !    (_人__)        ノ
  /´ ̄       `!.      丶_   u        U ノ
  |  `にこ匸'_ノ .       '-、、,,,,,,_______,,,,,,、、-'
  ノ u  {                 _.. -―| :{   ,/ /   \
. / l   | __  / ̄ ̄`>'´   ノ'    ´ {、    \
/ |/     {'´    `ヽ. " ̄\ U `ヽ.    __,,.. -‐丶 u  ヽ
| / ヾ、..  }      u' 〉、    }    `ー''´  /´ ̄ `ヽ '" ̄\
! :}  )「` ノ、     ノ l\"´_,,ニ=-― <´  ヽ{  ノ(   `、  |
l   、_,/j `ー一''"   },  ノ ,  '''''""  \   ヽ ⌒ヾ      v  |
ヽ   _         /   } {. { l ┌n‐く  ヽ/ ``\        ノ
  `¨´    `¨¨¨¨´ ̄`{ 0  `'^┴'ー┘|ヾ    }、 u'   `  --‐r'′ キングヤッタス!!



711 名前:デフォルトの名無しさん [2005/07/14(木) 22:08:03 ]
>>709
リンゴタン?


712 名前:デフォルトの名無しさん [2005/07/15(金) 22:18:25 ]

LALR age




713 名前:デフォルトの名無しさん [2005/07/16(土) 18:07:28 ]
現在確認されている厨

・RUBY厨
・LISP厨
・りんご厨
・LALR厨



714 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 18:13:11 ]
上から3番目のは、昔かたぎのFlash職人(元Macromedia Director職人)か?

715 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 18:22:18 ]
>>713
LALRもダメでつか

716 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 19:13:12 ]
りんごってVIPのことだろ

717 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 21:10:41 ]
ここで暴れてる荒らしは、荒らしな上にアンチLISPにアンチRubyに
アンチLALRか。
救いようがねぇなw


718 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 21:13:59 ]
志村坂上

719 名前:デフォルトの名無しさん [2005/07/18(月) 15:40:14 ]
すいません超初心者なんで的外れなことを覚悟で質問します。

bison/flexではいたコードってVCでコンパイルできますか??

720 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 15:50:45 ]
>>719
やってみればいいじゃん

721 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 16:57:29 ]
ってゆーかRUBY最強

722 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 17:30:55 ]
>>708



723 名前:659 [2005/07/22(金) 02:50:23 ]
>>719

>>657-659 読め。

bison/flexで吐いたコードをVC++でコンパイルした経験は、俺はある。


724 名前:723 [2005/07/23(土) 23:01:08 ]
>>723
ありがとうございます。よく読んでいませんでした。

とりあえず原田賢一著 コンパイラ構成法という本を購入しました。
これから勉強します。

725 名前:719 mailto:sage [2005/07/23(土) 23:01:49 ]
すいません719です

726 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 02:13:48 ]
LexやYACC等のツールを使わないとコンパイラ作れない奴なんざ
雑魚だろマジで。


727 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 02:15:53 ]
>>726
字句解析とか構文解析とか、単純なんだから別に自動生成でいいやん。
ていうか、こういうツールだって、どういうことやってるのか理解できない人には使えないと思うよ。

728 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 14:06:30 ]
>>726
rubyの作者を雑魚あつかいですか?

729 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 15:05:00 ]
>>726のようなことを言う奴はコンパイラのバックエンドをろくに書けない奴に多い。
たぶんフロントエンドだけがやっとで挫折したんだろう。


730 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 10:08:34 ]
LexやYACC等のツールを使わないとコンパイラ作れない奴が雑魚なら、
LexやYACC等のツールを使わずにコンパイラを作る奴はフジツボ。
LexやYACC等のツールを使えない奴はプランクトン。

731 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 12:20:11 ]
ここは酸っぱい葡萄が多いインターネットですね。

732 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 20:48:40 ]
イソップ童話キタ━━━━━(゚∀゚)━━━━━ !!!!



733 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 21:15:44 ]
言語鍛冶が覆面で議論するスレはここですか?

734 名前:デフォルトの名無しさん [2005/07/29(金) 11:04:33 ]
JavaScriptのコンパイラコンパイラが欲しいんだけれど、調べた限りではないみたいなので、
これを機会に時間のあるときに作ってみようと思ったのだけれど、
コンパイラコンパイラ実装の参考文献で良書はありますか?英文和文問いません。

735 名前:デフォルトの名無しさん mailto:sage [2005/07/29(金) 22:56:38 ]
ネタとしてスルー。

736 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 01:54:03 ]
JavaScriptでかかれたコンパイラコンパイラ?(まさか〜)

でも文脈からだとJavaScriptの構文を理解するbisonコードくさいんだけどさ。


737 名前:デフォルトの名無しさん [2005/07/30(土) 02:03:01 ]
コンパイラコンパイラが生成するコードがJavaScriptのものなんじゃないの?

738 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 02:04:06 ]
Mozillaのソースとか・・・・・・・・

739 名前:734 mailto:sage [2005/07/30(土) 02:13:44 ]
>>737
そう、そういう意味です。
JavaScriptで出来たコンパイラコンパイラなんてあれば面白いけれど…

740 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 06:12:34 ]
>>734>>734


741 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 06:52:32 ]
ドライバだけJavaScriptなら簡単なんじゃん?

742 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 07:54:28 ]
CからJavaScriptに変換するトランスレーター作れよ



743 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 17:52:12 ]
>>734
LALRパーサージェネレータでよければ、kmyaccでサポートしてます。
www005.upp.so-net.ne.jp/kmori/kmyacc/index.html

こうした方がいいという意見も歓迎。

JavaScriptで書いたデモの例
www005.upp.so-net.ne.jp/kmori/kmyacc/calcdemo.html


744 名前:734 mailto:sage [2005/07/30(土) 19:50:44 ]
>>742
それは良いアイデアですね。
JavaScriptの言語的機能は制限されるのが残念ですが、
とにかく使いたいだけならそれは良さそうです。

>>743
おお、これはそのまま使えますね!ありがとうございます。
早速使ってみます。助かりました。

745 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 21:10:39 ]
>>744
使うにあたってはプロトタイプを手直しした方がいいでしょうね。

ところで、JavaScriptでは入力を得る手段が限られていると思うのですが、
どんな対象をパースするのか、さしつかえなければ教えてもらえませんか?


746 名前:734 mailto:sage [2005/07/30(土) 23:40:21 ]
>>745
助言ありがとうございます。
JavaScript ObfuscatorをJavaScriptで書こうかと思っていました。

747 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 23:57:26 ]
>>746
ようするにスクリプトを読まれたく無いと。
ただそれだけ?



748 名前:734 mailto:sage [2005/07/31(日) 00:11:31 ]
>>747
そういうわけじゃないですよ。どちらかといえば趣味です。

その時は手動で構文解析を作りましたけれど、
チェスの掲示板に棋譜を読み込むためにPGNファイルのフォーマットをパースするなど、
JavaScriptでコンパイラコンパイラが作れればいいなーと思うことは稀にありました。

749 名前:デフォルトの名無しさん [2005/08/03(水) 12:01:25 ]
ちょっと趣旨が変わってしまいますが…
状態遷移を扱うのに適するエンジンってありませんか?

やりたいことは、入力を受け付けて、新しい状態を出力するモジュールです。
その状態遷移ルールは何らかの自作エディタでペトリネットやUMLの
アクティビティ図のように記述しておきます。

単にゴリ押しで、定義データに各遷移ルールを記述しておき、制御モジュールで
パターンマッチングで次の状態を探すだけでも可能ですが、トークンのJoinとか
考えると、いろいろ内部情報を保持する必要があります。

普通のスクリプトやゲームのシナリオなんか参考になる気もしますが、今回の場合、
有限状態機械に特化したもので十分です。
また、状態遷移図の定義の変更は頻繁に行われます。

もし、美しいアーキテクチャがあるなら、ゴリ押しのエンジンを作り直したいと
思っているのですが、オブジェクト指向で機械の内部状態とか定義方式を美しく
表現している設計って、どこかにないでしょうか?

750 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 13:04:20 ]
>>749
>オブジェクト指向で
限定しない方が良いよ。OO に限定するとステートパターンしか出てこないから

751 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 13:10:40 ]
状態遷移を美しく表現する設計は興味があるな。
世の中ではどんな形なんだろう

752 名前:デフォルトの名無しさん [2005/08/03(水) 21:01:28 ]
オブジェクト1つが、1つの有限状態機械だと思ってる。
UMLでもステートチャート図あるし
状態遷移をオブジェクト指向で表そうとするのは適切でないような気がするけど



753 名前:デフォルトの名無しさん [2005/08/03(水) 22:18:27 ]
う〜ん、でも、オブジェクトを入出力とするエンジンって有り得ないですかねぇ。
事前の状態遷移定義に従って、オブジェクトAがエンジンによってBに変えられるような。

別にオブジェクト指向に拘る訳じゃないですが、オブジェクト指向を例にとると、
1つのオブジェクトが、エンジンに渡されると、2つのオブジェクトに分岐したり、
その逆に2つのオブジェクトが揃ったら、1つのオブジェクトに合流したり…
さらに、その合流待ちの状態が無限って訳にはいかないだろうから、生存時間が決まってたり。

こういうのって、昔から学術的には扱われてると思うのですが、
実際に実装するとなると、どういう定義記述方法にして、どんな内部状態を持たせるのかなぁと。
もしかして、何か美しい設計が、すでにあるのかと思った次第です。

今なら、定義はXMLになるのかなぁ…

754 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 22:40:13 ]
>>753
まさか…oさん?

755 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 00:07:42 ]
CodeProject に XML を利用したステート・マシンのサンプルがあったような気が・・・
気のせいだったかも

756 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 05:06:54 ]
要求に合うかどうか判らないけど、
Object指向でPush-down automatonならFinate State Machine。
尚、定義ファイルのパースは別途必要です。

757 名前:デフォルトの名無しさん [2005/08/04(木) 16:54:55 ]
>>754 いいえ違います。

>>755
www.codeproject.com/csharp/xmlfsm.asp
キャ━━━(*´∀`*)━━━ !!!!!
と思いましたが、よく見ると、これ、現状のコードとスタート地点同じ気がします…
この先、アクティビティ図とか、ペトリネットレベルまで拡張していくと、
ごちゃごちゃしてきて、もっと美しい設計無いのかと思った次第です。
だから、この先にある、汎用性のあるものが知りたいと…
我侭で申し訳ありません。

>>756
有限状態オートマトンの汎用エンジンに、興味あります。
Radiumさんの過去ログに記述ありました。月末の2日分です。
www.radiumsoftware.com/0401.html

このEventStudioというものが、なんか実現してるっぽいです。
www.eventhelix.com/EventStudio/
少し詳しく読んでみたいと思います。


758 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 23:48:44 ]
boost::fsm...

759 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 22:01:29 ]
>>750
StatePatternで何か不都合があるのか?

760 名前:デフォルトの名無しさん [2005/08/07(日) 00:27:31 ]
www.eventhelix.com/RealtimeMantra/HierarchicalStateMachine.htm

これは、どの辺がいいの?解説求む。

761 名前:デフォルトの名無しさん [2005/08/17(水) 09:13:09 ]
Windows上で、JITで生成したnative codeを、
DLL形式でファイルに保存して実行するのではなくて、
メモリに保存して実行する方法を教えてください。

762 名前:デフォルトの名無しさん mailto:sage [2005/08/18(木) 02:30:07 ]
誰かC++の関数スタックを活かしながらSchemeの継続を実装する方法を教えてください。
……できそうにないのはわかっているけど、あきらめるのはちょっとくやしい……



763 名前:デフォルトの名無しさん mailto:sage [2005/08/18(木) 03:50:57 ]
>>762
大域脱出のみに使われるような継続であることがSchemeのプログラム
を解析して証明できる場合なら、setjmp/longjmpでいけるんじゃね?
Schemeコンパイラ関連の文献読むと、色々ヒントが書いてあるよ。

764 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 00:42:56 ]
やっぱり脱出方向だけにしてsetjmp/longjmpぐらいしかないか……

真面目に継続使いたかったら(自前でstack作ったりして)継続を管理するしかないのかな。
……Commandパターン使って少しでも手を抜くとするか……

765 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 03:04:24 ]
>>764
SchemeをCPSでCにコンパイルする方式。
home.pipeline.com/~hbaker1/CheneyMTA.html

C関数はreturnしないので、スタックはヒープとして使う。
いっぱいになったらcopying GC。


766 名前:デフォルトの名無しさん [2005/08/19(金) 23:28:22 ]
自作言語に正規表現libをなんとかして融合しようと思ってるんだけど
リテラルとして組み込むと内部で正規表現objectと文字列リテラルの切り分け
みたいなのが別途必要っぽいし、ライブラリとして組み込むと呼び出し手順が
複雑になって結局使われないんじゃないかとか色々考えても良さげな方法が
みつからなかった。

つーかrubyみたくperlの真似して/〜/にすると//という1行コメントと勘違いする
かもしんないし、/はそもそも割り算に使ってるし。
独創的な構文にしすぎてメンテする俺自身忘却するようなの作っても
それはそれで意味ないし別に/〜/でもいいけどよ、出現位置によってトークンの
意味が変わるのって言語として変な気がするんだけどおまえらどうですか?


767 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 23:53:09 ]
馬鹿の考え休むに似たり

768 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 23:54:27 ]
正規表現を捨てて、MLのようなパターンマッチ構文導入がトレンド(大嘘)

769 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 01:38:30 ]
>>766
個人的には Perl6 のパターンマッチングが好きだ。


770 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 01:57:23 ]
コメントが//なら
|〜|にする。

771 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 07:53:05 ]
とりあえずm4みたいにリテラルの前後変更できるようにしてさっさと組んじゃえば。


772 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 09:12:02 ]
>>766
独自の記号から作ってもいいんじゃない?
「この言語で開発するときのフォント」って感じで
フォントと文字コードの定義から言語にしちゃうの。

そうすれば、紛らわしい記号に悩むことないし、
今まで2文字使っていた演算子も1文字ですむし
区別もはっきりするし、いいことずくめ

昔と違ってPCの性能はあまるぐらいなんだし
フォントぐらい共有しない独自のだって大丈夫だよ



773 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 12:57:10 ]
orz〜orz
にしようよ

774 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 13:07:40 ]
>>772
APLって知ってる?
独自記号の演算子だらけの言語。
MLやBBSなんかにコードをコピペできないとかいろいろ不便すぎて、
結局普通の文字コードの範囲で表現するほうがいいというのが結論。

例えばこのスレにもコードを貼れないよ。


775 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 15:41:01 ]
>>774
そっか、そういうのがあるのかぁ。

でもその結論が出た時点とも今は違うんじゃない?
あ、Unicodeのワイド文字なら使ってもよさそう。

HTMLのエンコードみたいに&lt;とかで内部表現しとくとか。

776 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 15:51:47 ]
1. ワイド文字を持ったフォントを使ってるとは限らん
2. コペ時に表現が変わったら読みづらくてかなわん。
 昔のSmalltalk(Squeakは今でも)はフォントがいじくられてて、
 代入記号に←を使っていたが、コペると_になってダサダサだった。

777 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 16:15:04 ]
日本人なら積極的に漢字を使おうぜ。
『置換「 」を「 」に。』
これでどうだ!
なんかひまわりの二番煎じっぽい気もする。

関係ないけど、'コペる'って斬新だな。
どこか間の抜けた響きで気に入った。

778 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 16:31:39 ]
コペる21

779 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:11:25 ]
最近、変数名、関数名、クラス名とかに漢字遣ったほうがわかりやすい気がしてきた。

780 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:26:16 ]
補完やってくれるなら。
IMEのネックがあるかぎり漢字は受け付けないなあ。
名前考えるの面倒とは思うけど。

781 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 00:09:23 ]
>>766
使うひとのことを考えて、できればリテラルで。
JavaやPHPのようにライブラリとしてしまうと、正規表現を文字列で指定しなきゃならん。
そうなるとエスケープがすごく面倒で、使う人にとってよくない。
リテラルとして言語仕様に組み込めば、おまえがしんどいだけで、使う人はハッピー。

構文はPerlやRubyをまねしたほうがよい。
使ってもらうことを考えたら、よほどの利点がない限りは他の言語と同じにしたほうが、使う人にとって敷居が低い。
おまえの独自言語のウリは正規表現にあるわけじゃないだろ、きっと。
ウリになる部分は独創的にしてかまわんが、ウリにならない部分はオーソドックスにしとけ。

コンテキストによって記号の意味が変わるのは、確かに悩ましいところだが、お前が苦労すればいいだけのこと。
使う人に苦労をさせるな。勉強しろ。
それでも「昔の仕様をひきづって変なコードになるのはイクナイ!」と思うなら、そうだな、「@/rexp/」とか「./rexp/」にでもしとけ。
まあRubyはPerlをまねただけで、Perlはsedをまねただけで、sedはviやedをまねただけで、edは割り算記号なんかなかったから問題なかっただけなんだけどな。よく考えたらそんな昔の仕様を今でもひきずるのはおかしい気がしてきた。


782 名前:デフォルトの名無しさん mailto:処理系の名前はあえて伏せるよsage [2005/08/21(日) 00:18:13 ]
>>781
同意。
例えば正規表現リテラルが #/rexp/ の言語処理系も実際あるわけだし。
このくらいだと違和感なく使える。



783 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 12:05:31 ]
スラッシュの代わりに別の文字を使えるようにするのも忘れるなよ〜
これ便利だから

784 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 23:38:39 ]
主な括弧の場合は対応する閉じ括弧で終われるようにね







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef