2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

新しいスクリプト言語を設計する!

1 : ◆opMJSavJhM :03/04/21 23:52
これからは、スクリプト言語の時代だそうですが、案外使い勝手の良い平凡な
言語が少ないような気がします。例えば。。。

PERL - 大変メジャーで、実績も十分!
しかし、記号&暗号のようなスクリプト言語と感じるのは私だけでは無いはず
です。昔やった、sendmailの設定ファイルを何故か思い出します。

RUBY - 最近(?)人気急上昇のメジャー言語!ネーミングも良い!
しかし、(善し悪しは別として)オブジェクト指向言語であるが故に、私の様
にいまだに抵抗を感じる方もきっと多いはず。

そこで、オブジェクト指向でない分かりやすいスクリプト言語を設計してみた
いと思うようになりました。

いろいろと、アドバイスなりアイデアなりを頂けると嬉しいです。


2 :デフォルトの名無しさん:03/04/21 23:53
卒論ですか?

3 :デフォルトの名無しさん:03/04/21 23:53
2

4 :デフォルトの名無しさん:03/04/21 23:54
>これからは、スクリプト言語の時代
間違い
終了

5 :デフォルトの名無しさん:03/04/21 23:55
shige が Ruby の発展の足かせとなったのは事実なわけだが

6 :デフォルトの名無しさん:03/04/22 00:03
>>1
もうすでにHSPがあるだろ?

7 :デフォルトの名無しさん:03/04/22 00:10
>>1
> これからは、スクリプト言語の時代だそうですが
ハァ?

新しい言語作るなら、
新しいアスペクト指向言語を作ってくれ

8 :デフォルトの名無しさん:03/04/22 00:17
>>7
アスペクト指向を自分の言葉で説明してみろ

9 :デフォルトの名無しさん:03/04/22 00:18
ともかくがんばれ〜

10 :デフォルトの名無しさん:03/04/22 00:19
スクリプト指向言語つくっています。

11 :デフォルトの名無しさん:03/04/22 00:21
健康志向言語つくってます。

12 :デフォルトの名無しさん:03/04/22 00:24
残業不要言語作ってます。

13 :デフォルトの名無しさん:03/04/22 00:25
天地無用言語作ってます。

14 :デフォルトの名無しさん:03/04/22 00:26
下積厳禁言語作ってます。

15 :デフォルトの名無しさん:03/04/22 00:27
類似スレ

新次元新発想!新しい文法を作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1047970129/

新言語の制御文を作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1050616566/

16 :デフォルトの名無しさん:03/04/22 00:51
織田信長があるじゃん

17 : ◆.CzKQna1OU :03/04/22 09:56
#test

18 :デフォルトの名無しさん:03/04/22 12:32
僕の織田信長が暴走しそうです

19 :動画直リン:03/04/22 12:45
http://homepage.mac.com/hitomi18/

20 :デフォルトの名無しさん:03/04/22 13:01
      _
     _'~_ ミミ
     ひ` 3彡
 カラン_ 匸,.イ  <たて逃げするなら最初からスレッド立てなきゃいいのにな。。。
   rl|iri| /yV/ \



21 :デフォルトの名無しさん:03/04/22 18:38
プログラミング言語 Lua スレ↓の 363 あたりから新言語作成の話題がありますた
http://pc2.2ch.net/test/read.cgi/tech/1034182349/

22 :デフォルトの名無しさん:03/04/22 22:08
>>2
卒論とかではないです。(もう遥かにそんな年ではないです。)
>>6
HSPはwin用なので、使えんのです。
>>16
なんですか?それ???


23 :デフォルトの名無しさん:03/04/22 22:13
HSPを移植すればおしまい
設計する必要なし

24 :デフォルトの名無しさん:03/04/23 00:11
>>22
とりあえず何も作ってない奴にアレコレ言ってやる程暇な香具師はそう多くないってこった。

25 :デフォルトの名無しさん:03/04/23 01:17
こういうスレがあるわけだが。

『コンパイラ・スクリプトエンジン』 相談室 2
http://pc2.2ch.net/test/read.cgi/tech/1021136715/

26 :デフォルトの名無しさん:03/04/23 07:55
何のビジョンもなければ作る気配もないのがすばらしい。


27 :デフォルトの名無しさん:03/04/23 12:32
>>21
GoLua !?

28 :デフォルトの名無しさん:03/04/23 21:38
実際のところ、オブジェクト嗜好な方って意外と少ないような気がするん
ですが、どうでしょう???


29 :デフォルトの名無しさん:03/04/23 21:41
というか、目的ありきじゃないのですかな

30 :デフォルトの名無しさん:03/04/23 21:45
ところで英語を直訳したようなこのスレタイなんとかならんか

31 :名無し@沢村:03/04/23 21:57
おれはF言語かK言語を開発したいね。
どうしてFかKかといえば、おれは昔K-FACTORYというブランドが好きだったからよ。
おれは新宿丸井店と神宮店によく買いにいってたね。
おれは朝日新聞の白黒写真にK-FACTORYのニットとパンツをはいて出ていたモデルのねーちゃんがかっこよかったから、K-FACTORYを好きになったのよ。
おれもああかっこよくなりたいと思ってね。
いずれにしても開発するならF言語かK言語しかないと思っているね。
K言語がねらい目かもね…?どうよ?

32 :デフォルトの名無しさん:03/04/23 23:20
"hello" println system console standerd output stream.

33 :デフォルトの名無しさん:03/04/23 23:23
F言語ってF-BASICのことだろ?
ふじつーまんせー

34 :デフォルトの名無しさん:03/04/23 23:26
そうだな。Fといったら不治痛だよな。イタタタタ・・・

35 :デフォルトの名無しさん:03/04/24 00:07
>>1
>>これからは、スクリプト言語の時代だそうですが

いまさらだな


36 :デフォルトの名無しさん:03/04/24 23:39
汎用で使えるスクリプトが少なすぎるのは確かかな?

bashとAWKもあるにはあるが、どちらも目的&ターゲットが限定
されすぎていない?


37 :デフォルトの名無しさん:03/04/24 23:48
>>36
pythonとかrubyは?

38 :デフォルトの名無しさん:03/04/24 23:49
perl とか rexx とか wsh とかは。

39 :デフォルトの名無しさん:03/04/25 00:56
>>37
共にオブジェクト至高


40 :デフォルトの名無しさん:03/04/25 01:01
>>38
perlは定番だね
rexxは設計古杉
WSHはwin用?


41 :デフォルトの名無しさん:03/04/25 01:34
>>1
そろそろ出来たろう。
早く見せてくれ。


42 :名無し@沢村:03/04/25 21:05
>>41
いや、>>1はまだそのままだよ。
>>1は使い勝手のいいスクリプト言語をつくりたいと思ってるんだよ。
いろいろアドバイスやアイデアがほしいんだよ。

43 :デフォルトの名無しさん:03/04/25 21:14
>>1
なら、るびぃを手続き型で使えばいいじゃん。

44 :デフォルトの名無しさん:03/04/25 21:15
オブジェクト指向だからとっつきにくいとか言ってるやつって
たまいるけど、よっぽど頭かたいんじゃないかと思うよ。


45 :デフォルトの名無しさん:03/04/25 21:33
42=1

46 :名無し@沢村:03/04/25 21:59
おれはまず変数と型をしっかりと設計するね。
Cではint,short,long,flort,double,long double,charなどがあるが、
doubleとlong doubleはいらないね。
おれならchar=1バイト,wchar=2バイト,int=4バイト,flort=4バイト,long=8バイトとするね。そしてそれぞれにsignedとunsignedがあるわけだ。
これだけですべてが表現できるよ。doubleとlong doubleは無駄だね。どうよ?
まあ名前は別の名前にするかもしれないけどね。
まずこれで変数と型が設計できたぞ!
少しはかどったわけだ。次回はまた♪

47 :デフォルトの名無しさん:03/04/25 22:02
wcharいらね。

48 :デフォルトの名無しさん:03/04/25 22:08
>>46


49 :デフォルトの名無しさん:03/04/25 22:11
>>46 そびえたつクソ

50 :名無し@沢村:03/04/25 22:19
>>47
wcharは日本語を表現するのにいるよ!
charしかないと文字変換のとき日本語を二つに分解しないとダメで面倒臭いだろ?
しかしwcharがあれば一発で変換できるよ。
またcharとwcharに互換性を持たせておけば同じ配列にcharとwcharを混ぜて使えるから、テキストエディタを作るとき超便利になるよ!

51 :デフォルトの名無しさん:03/04/25 22:28
文字型が2バイトって時点でクソ。

52 :デフォルトの名無しさん:03/04/25 23:13
>>50
だせ。

53 :デフォルトの名無しさん:03/04/26 00:30
>>46
型宣言どうすんの?
C風に比べてPASCAL風のほうがすっきりすると思うんだが

54 :デフォルトの名無しさん:03/04/26 07:10
ださすぎ。
そのうち、お決まりの「もちろん、C言語風のsyntaxに……」とか
言い出すんだろ?見え見え。

いいかげん、一旦Cから離れろよ。できれば、アルゴル系から離れろ。

55 :デフォルトの名無しさん:03/04/26 10:46
じゃlisp風に...

56 :名無し@沢村:03/04/26 20:38
おまいらよ、つぎは配列の設計だよ。
配列はCの場合int a[50];と宣言したら、intつまり4バイトのデータが50連続してるってことだろ?
だがK言語では違うんだよ。
K言語では配列型というのをつくるんだよ。
例えば、array a[50];というふうに宣言するんだな。
またarray型は型であって型ではないから、型のサイズというものを持たない。
array型というのはintやlongやflortやcharやwcharなどの型を混ぜることができる配列なんだよ。
例えばa[0]がint型でa[1]はflort型でもOKというふうにだ。
おまいらよ、これはいまだかつてないすげー便利な配列だぞ!わかるか?
まあ変数と型の設計の部分ではK言語とC言語のそう大きな違いは見られなかったが、配列の設計に来てK言語らしさがちょっと出てきたというわけだ。
まあ配列の設計はそんなところよ。
おれはこうして少しずつK言語を設計していくからな。このスレでな。
いままでのことでわからないことがあったら、何でも聞いてくれ!


57 :デフォルトの名無しさん:03/04/26 20:53
おれらの発言はスルーですよ。
結局、沢村はここでワンマンショーがしたいだけなんだな。

58 :デフォルトの名無しさん:03/04/26 20:55
>>56
既に VB の Variant 型配列で実現されてますが。

59 :デフォルトの名無しさん:03/04/26 20:59
>既に VB の Variant 型配列で実現されてますが。
プ
沢村の爪の垢でも飲んどけ

60 :デフォルトの名無しさん:03/04/26 21:00
参照の配列にしとけば?

61 :デフォルトの名無しさん:03/04/26 21:03
>>59
「プ」しか書けないアフォは、氏ね。

62 :デフォルトの名無しさん:03/04/26 21:10
( ゚,_・・゚)プププッ>>61

63 :デフォルトの名無しさん:03/04/26 21:32
>>62
やっぱりアフォだったか...。

64 :デフォルトの名無しさん:03/04/26 21:36
Rubyの配列はそうだっつーか、静的な型の概念が無い言語はみんなそうだろ

65 :デフォルトの名無しさん:03/04/26 21:38
覚えるのめんどいんでやっぱCとおなじような文法がいいなあ。

66 :デフォルトの名無しさん:03/04/26 21:43
>>65
おまえは C をつかってろ。

67 :デフォルトの名無しさん:03/04/26 21:45
>>56
型が決定されるのはどの瞬間にょ?

68 :デフォルトの名無しさん:03/04/26 21:50
>>56
>intつまり4バイト

お、オレは釣られない、釣られないぞぉ。

69 :名無し@沢村:03/04/26 21:51
Cがいいよ。おれはDelphiやVBの文を見てもさっぱりわからん…
新しい言語はCをつくりかえるのがいい。
ただアセンブラは必須だよ。アセンブラを知らないとコンパイラはつくれないからね。
コンパイラというのはその新しい言語をアセンブラにエクスポートするソフトだからだよ。

70 :デフォルトの名無しさん:03/04/26 21:53
>>67
代入の時でいいんじゃない ?
(つーか、>>64 が言うような言語ではそうなってると思うよ。)

71 :名無し@沢村:03/04/26 21:55
>>68
intは4バイトだろが、ハゲ!!
でcharが1バイトでshorつーかtwcharが2バイトよ。
これは処理系の常識だぞ!

72 :デフォルトの名無しさん:03/04/26 21:56
>>69
> コンパイラというのはその新しい言語をアセンブラにエクスポートするソフトだからだよ。

別にアセンブラを経由する必要はないと思うが。
あと初期の C++ みたいに、別の言語にコンバートする方法もあるし。

73 :デフォルトの名無しさん:03/04/26 21:58
>>71
intのサイズは処理系依存。16ビット系コンパイラなら
intは2バイトが多い。

74 :デフォルトの名無しさん:03/04/26 22:02
>>73
ネタにマジレス...、スルーしましょうよ。

75 :デフォルトの名無しさん:03/04/26 22:03
>>71
int は割り込み命令だろうがハゲ

76 :デフォルトの名無しさん:03/04/26 22:06
やっぱり m17n のためにも char は 8 バイトにするべきですよね。

77 :デフォルトの名無しさん:03/04/26 22:08
>>73 つーか C なら char 以外のバイト数は処理系依存でしょ。

78 :デフォルトの名無しさん:03/04/26 22:14
>>73, >>77
なんかこの話題になると得意満面な奴がでてくるな。
みんな知ってることなのに...。

79 :デフォルトの名無しさん:03/04/26 22:17
得意満面だと思っているあたりが。

80 :デフォルトの名無しさん:03/04/26 22:19
とりあえず100%ネタなんだからほっとけよ

81 :名無し@沢村:03/04/26 22:19
>>73
ハゲ!!アセンブラにコンバートするんだよ!
アセンブラが実行可能ファイルなんだよ!!わかるか?
そのためにアセンブラの知識が必要なんだよ。
まあいずれにしても、逆アセンブラもつくれないやつにはコンパイラをつくるのは無理ってことだ!!
おまいらは、新しい言語をつくる前に、逆アセンブラをつくって言語のしくみの基礎を勉強してみろ!!いいか!!

82 :デフォルトの名無しさん:03/04/26 22:22
>>79
> 得意満面だと思っているあたりが。

ぷぷっ。指摘されて恥ずかしかったのかな ?

83 :デフォルトの名無しさん:03/04/26 22:22
81がわけわからんアセンブラ = 実行コード
と思ってる?

84 :デフォルトの名無しさん:03/04/26 22:25
また、「プ」とか「ぷぷ」とか書いてるアフォが来たぞ

85 :動画直リン:03/04/26 22:26
http://homepage.mac.com/hitomi18/

86 :デフォルトの名無しさん:03/04/26 22:27
a = Array.new()
a[0] = 10.to_i
a[1] = 10.to_f

a.each do |x|
 p x
end

# ruby unko.rb
10
10.0
#

87 :デフォルトの名無しさん:03/04/26 22:30
>>84
オマエモナー。

88 :デフォルトの名無しさん:03/04/26 22:31
>>83
>>80

89 :名無し@沢村:03/04/26 22:33
>>83
ハゲ!!
実行可能ファイルつーんだよ!つまりPCが理解できるネイティブコードだよ。な?
だからな、新しくつくった言語をネイティブコードに変換しようと思ったらアセンブラの知識がなくちゃ無理だっつーんだよ!
まあDelphiやVBの知識は必要ないが、CとJavaとアセンブラの知識は必要だということよ。新しい言語にはな。おまえ。

90 :デフォルトの名無しさん:03/04/26 22:56
沢村=キチガイ
ってことでFA?

91 :デフォルトの名無しさん:03/04/26 23:00
なんか得意満面な奴がでてきたな。
みんな知ってることなのに...。

92 :デフォルトの名無しさん:03/04/26 23:01
FA。

93 :デフォルトの名無しさん:03/04/26 23:01
沢村=>>1
ってことでFA?

94 :デフォルトの名無しさん:03/04/26 23:02
なんか得意満面な奴がでてきたな。
みんな知ってることなのに...。

95 :デフォルトの名無しさん:03/04/26 23:02
FA。


96 :デフォルトの名無しさん:03/04/26 23:21
>>95
ふぁ ?

97 : ◆opMJSavJhM :03/04/26 23:34
>>1です。 # hash文字列あってたかなぁ。。。(^^;

(私は、沢村さんではありません。念のため。。。)

さて、本題ですが、変数型についてどなたかが書き込まれていましたが、
最近思うことは、文字型(char類)って本当に必要なのか?と疑問に思い
つつあります。

いろんな言語で、文字型の無いものをさわった経験として、文字系は文字
列が表現できれば十分では?と思うようになりました。

あまりにも当り前の話ですが、「文字」を単に「長さ1の文字列」として
表すのです。

(マルチバイト文字は当然それなりの長さを単純に持たせます。)

私もC言語の影響は多大に受けていますので、最初は違和感もあったので
すが。。。AWKやらrubyやら他にいろいろ(luaもそうだったかな?)さわ
っているうちに、これは有る程度、そう思うようになりました。

この当たりは、どうおもわれますか?

単に、自分がそのような必要を感じていないだけでしょうか???


98 :デフォルトの名無しさん:03/04/26 23:58
文字は長さ1の文字列・・・それでいいと思います。
ただCの文字型は実質単なる整数型なわけで、便利なこともある。
例えば配列にアルファベットの大文字を格納するには・・・

int i;
for(i = 0';i < 'Z - 'A';i++) array[i] = i + 'A';

なんてやればいいわけで。わかりいい。

99 :98:03/04/27 00:04
>>for(i = 0;i < 'Z' - 'A';i++) array[i] = i + 'A';
修正

100 :デフォルトの名無しさん:03/04/27 00:12
アスキーコード依存ってのがね
実際的には問題ないけど

101 :デフォルトの名無しさん:03/04/27 00:18
EBCDICは死滅するべきだ

102 :デフォルトの名無しさん:03/04/27 00:57
>>97
GC (Garbage Collector) 使ってる言語はそれでいいけど、そうじゃない言語だとちょっとね。
char がないと例えば、一文字の結果を返す関数でも、いちいち文字列領域を確保してそのポインタを返すようにしないといけない。
使った後の解放を忘れたり、二重に解放しちゃった時のバグは見つけにくいし。

スクリプト言語の多くは GC 使ってるから、このスレ的に char はなくてもいいとは思うけど。

>>98-99
俺なら...
int i;
char *p = array;
for(i = 'A'; i <= 'Z'; i++) *p++ = i;

103 :デフォルトの名無しさん:03/04/27 01:10
>>102
文字列に関しては処理系がしっかりメモリ管理もみてやりゃあいい話でないの?
すくなくともポインタを意識するスクリプトはやだなあ。

104 :デフォルトの名無しさん:03/04/27 01:18
なんか得意満面な奴がでてきたな。
みんな知ってることなのに...。


105 :デフォルトの名無しさん:03/04/27 01:19
>>103
> 文字列に関しては処理系がしっかりメモリ管理もみてやりゃあいい話でないの?
文字型だけ GC つけろと ? だったら全部そうした方がいいよ。

> すくなくともポインタを意識するスクリプトはやだなあ。
スクリプト言語で文字列型と文字型を区別してる奴なんかあるのか ?

106 :デフォルトの名無しさん:03/04/27 01:23
スクリプトはお手軽さが命なんであって
メモリ管理まで気にしたくないのが正直なところ

107 :デフォルトの名無しさん:03/04/27 01:28
>105
>スクリプト言語で文字列型と文字型を区別してる奴なんかあるのか ?
文字列型と文字型は全然違うと思うが。

108 :103:03/04/27 01:49
>>105
> 文字型だけ GC つけろと ? だったら全部そうした方がいいよ。
ごもっともです。
もし、「組み込み型」と「任意にオブジェクト生成を伴う型」にわけるなら、文字列方は、文法的には組み込み型であって欲しいです。
あ、でもこのスレではオブジェクト指向じゃないスクリプトを目指すわけだから、後者の型はないわけか?

> スクリプト言語で文字列型と文字型を区別してる奴なんかあるのか ?
ないね。ただ、型があってC言語風であるなら考慮してもいいとおもうんすが。



109 :103:03/04/27 01:55
ようわからんくなってきた。Cみたいに文字型は整数型である言語ってほかにあるの?

110 :デフォルトの名無しさん:03/04/27 01:58
型なんで全部クラスでいいじゃねーか

111 :デフォルトの名無しさん:03/04/27 02:01
「オブジェクト指向でない分かりやすいスクリプト言語」をつくるのがこのスレの趣旨だから、それじゃだめでしょ。

112 :デフォルトの名無しさん:03/04/27 02:05
>>111
そもそも、オブジェクト指向って何?っていう話にもどらないか?


113 :デフォルトの名無しさん:03/04/27 02:09
情報隠蔽はしない
多態はしない
継承はしない

でもがんばればCでだってできちゃうなぁ

114 :デフォルトの名無しさん:03/04/27 02:11
scheme でいいじゃん。

115 :デフォルトの名無しさん:03/04/27 02:11
ここには処理系作ったことある香具師はいないみたいだ。

116 :デフォルトの名無しさん:03/04/27 02:14
>>1のいうとおりのものなんてperlから正規表現なくせばいいだけじゃん

117 :デフォルトの名無しさん:03/04/27 02:15
たとえ、データと処理をまとめなくてもすべての型において、

HOGE a;//変数
a = new HOGE();//生成

みたいな手順をふまなくちゃならない言語は、かなりオブジェクト指向だと思うな。

118 :デフォルトの名無しさん:03/04/27 02:18
>>116
そんなことしたら使う価値がゼロに近いのだが

119 :デフォルトの名無しさん:03/04/27 02:20
つーか正規表現は必須だと思う。

120 :デフォルトの名無しさん:03/04/27 02:22
正規表現は標準でつけるべきだと思うが、ライブラリレベルでもいいんじゃないかな?

121 :デフォルトの名無しさん:03/04/27 02:23
>>107
> >スクリプト言語で文字列型と文字型を区別してる奴なんかあるのか ?
> 文字列型と文字型は全然違うと思うが。

ん ? 具体的にどう違うの ?
(C言語では... とか言わないでね。スクリプト言語で、と限定してあるから。)

122 :デフォルトの名無しさん:03/04/27 02:25
>>121
RubyやLISP系言語参照

123 :デフォルトの名無しさん:03/04/27 02:26
>>120
俺もそう思う。

言語自体は、できるだけシンプルに。
普通に欲しい機能は標準ライブラリ。
特殊な機能は include とか require なんかで動的に拡張できればいいと思う。

124 :デフォルトの名無しさん:03/04/27 02:26
簡単な目標でも掲げた方がいいよ。
・Perlよりも速く動作する。
・組み込み正規表現マッチ。
・充実した文字列操作ライブラリ。
・日本語が通る。


125 :デフォルトの名無しさん:03/04/27 02:31
使用目的決めた方がいいね
そうすれば文字型が要るかどうかも決まるはず。

perlやrubyみたいな汎用言語を作るのは困難だろうから、
まずは使う場面を特化したものがいいと思う。
たとえば、Javascript みたいな

126 :デフォルトの名無しさん:03/04/27 02:36
>>122
LISP をスクリプトと言うかは微妙だな。
Ruby はよく知らんけど、ぱっとみた所では文字型が見当たらんが、俺の見落としか ?
文字の文字コードを数値として扱うことはできるようだけど、これなら Perl とかでもできるからな。
できたら具体例を出してくれ。

127 :デフォルトの名無しさん:03/04/27 02:47
オレとしては
・文字型が組み込みで
・文字列操作が充実してて
・正規表現があって
・文法はALGOL系で
・シンプルで
・ポインタがなくて
・メモリ管理を意識しなくてすんで
・実行が早い(実行時にコンパイル?)

そんなスクリプト。Perlをきれいにまとめたらできるような気がするが。

128 :デフォルトの名無しさん:03/04/27 02:51
Rubyに文字型はない気がする。
Perlの文字は長さ1の部分文字列じゃなかったけ?

129 :デフォルトの名無しさん:03/04/27 02:53
ファイル書き出しにおいて、テキストでは文字コードと改行、バイナリではエンディアンを任意に指定できるようになってくれると便利だろうな。
どんな言語でも頭の痛い問題だし。

130 :デフォルトの名無しさん:03/04/27 03:08
LISPの文字型は\aとか#\aとか。
数値として扱う場合は明示的な型変換が必要。
LISPには、印字表現という決め事があって、S式の入出力(readとwrite)
の結果が同一になることが望ましいとされる。
その辺がどうでもいい場合は、入力だけ文字の印字表現を受け取れる
様にして、内部は数値で統一して扱う処理系もある。

131 :名無し@沢村:03/04/27 04:38
新しい言語も魅力あるテーマのひとつだが、
総合コンパイラや言語コンバーターってのも面白そうだ。
Delphi、VB、LISP、C,Java,どれを打ち込んでもコンパイルしてくれたり、相互に変換してくれたりするやつだ。
両方の機能のあるソフトをつくるとすれば、おれだったらまず他の言語をCに変換した上でコンパイルするソフトをつくるね。
これがあると自分のよく知らない言語でソースが公開されていても、知ってる言語に一発変換できるから超便利だよ!!

132 :デフォルトの名無しさん:03/04/27 05:58
>131
トランスレータが吐き出したコードなんて読む気しないよ。

133 :デフォルトの名無しさん:03/04/27 06:46
>>132
えと、沢村を擁護するのは気が引けるんだけど、
トランスレータの出力は読む必要ないよ。

134 :デフォルトの名無しさん:03/04/27 06:50
>> 133
> これがあると自分のよく知らない言語でソースが公開されていても、知ってる言
> 語に一発変換できるから超便利だよ!!

読む気満々だから指摘したまで。

135 :デフォルトの名無しさん:03/04/27 07:37
ああそっか。納得。

136 :デフォルトの名無しさん:03/04/27 08:42
>>130
LISP は最近触ってないからなぁ...。
一応 Common-LISP とかだとあるみたいね。

>>126 書いたときは、手近にあった Emacs-LISP Manual みてたから、こいつは...

> その辺がどうでもいい場合は、入力だけ文字の印字表現を受け取れる
> 様にして、内部は数値で統一して扱う処理系もある。

と言うことみたいね。

>>132-135
釣られんなよ。

137 :デフォルトの名無しさん:03/04/27 08:56
Io は Unicode に対応してるみたいだけど。OO だから駄目か。

  http://www.iolanguage.com/

pForth とか tiny-scheme とか、小さな処理系を拡張するのが良いんじゃない?
Forth や Scheme は自己拡張能力が売りなんだし、文法も好き勝手変えられる。

138 :デフォルトの名無しさん:03/04/27 12:46
>>113
なにをもって情報隠匿と定義するかに、かなり依存するような気もする。
(オブジェクト指向かどうかの区別の件)

たとえば、AWKなんかは文字列・整数・実数を一括であつかえるけど、
これはオブジェクト指向と呼べるのだろうか?

真面目に考えてしまうけど、オブジェクト指向が至高でないのは、その
定義が(人によって)異るからではないか?


139 :デフォルトの名無しさん:03/04/27 13:58
設計する!であって、開発する!でも、実装する!でもないわけだ。




それって、妄想だよな。


140 :デフォルトの名無しさん:03/04/27 14:16
>>139
言葉のハジハジに引っかかる香具師発見!


141 :デフォルトの名無しさん:03/04/27 15:31
全部オブジェクトで、区切りは空白で、末尾が「.」な言語をください。

"Hello,World!" println.

142 :デフォルトの名無しさん:03/04/27 15:48
つか、GC付きのCがあればいいよ。
それでみんな幸せになれる。

143 :デフォルトの名無しさん:03/04/27 15:54
http://www.hpl.hp.com/personal/Hans_Boehm/gc/


144 :デフォルトの名無しさん:03/04/27 15:58
コンサバはなあ…

145 :デフォルトの名無しさん:03/04/27 19:48
>>142
どうやればGC付けられますか?
簡単につくんだろうか?


146 :デフォルトの名無しさん:03/04/27 19:55
malloc()とnewを全部GCするようにすればよい。

147 :デフォルトの名無しさん:03/04/27 20:07
>>146
どうやればGC付けられますか?
簡単につくんだろうか?


148 :デフォルトの名無しさん:03/04/27 20:09
>>147
>>143

149 :デフォルトの名無しさん:03/04/27 20:12
>>148
>>144

150 :デフォルトの名無しさん:03/04/27 20:20
コンサバって何?

151 :デフォルトの名無しさん:03/04/27 20:39
保守的な

152 :>>1を無視してアイデアを書き込む人:03/04/27 20:46
endless {
 [RES[
 >>150
 そんなこと俺が知るか!
 ]RES] println.
}

「endless」は関数呼び出しがいいな。値も返すようにして。
「{ ... }」は単に、関数呼び出しの引数を複数行で書く方法って考えるのはどうだろうか。
この場合だと、endless関数にcode型の構造体の配列が渡るってことで。
「[RES[ ... ]RES]」はヒアドキュメント。これだと、Perlの「<<RES ... RES」より開始と終了がわかりやすいかと。

153 :>>1を無視してアイデアを書き込む人:03/04/27 20:49
あ、わかると思うけど、
ヒアドキュメントのインデントは、開始トークンのインデント分
自動的に削除されたほうが便利かと。

154 :デフォルトの名無しさん:03/04/27 21:21
わかんねーよ

155 :デフォルトの名無しさん:03/04/27 21:23
conservative gc程便利なものも無いわけで。

156 :デフォルトの名無しさん:03/04/27 21:28
endless {
 [RES[
 >>150
そんなこと俺が知るか!
]RES] println.
}

と書いたらどうなるの

157 :デフォルトの名無しさん:03/04/27 21:48
>>156
ずれてるときにはインデントを無視しないほうが、
プログラマの意図に沿うのではないかと思ったり思わなかったり。

158 :デフォルトの名無しさん:03/04/27 21:54
>>150
んなこと俺が知るか!
になります

159 :デフォルトの名無しさん:03/04/27 22:45
>>148
GCって結局malloc()をGCのmalloc()に置き換えれば済む話なんですか?
初心者でスマソ


160 :デフォルトの名無しさん:03/04/27 22:52
>>159
>>143

161 :デフォルトの名無しさん:03/04/27 23:00
endless {
put ">>150
そんなこと俺が知るか!
" ;
}

// これでいいじゃん

162 :デフォルトの名無しさん:03/04/27 23:03
>>160
英語にがて何だけど、結局のところ
malloc()->GC_malloc()
free() -> N/A
と理解したんですけど、これでいい?


163 :デフォルトの名無しさん:03/04/27 23:12
>>162
freeもあるよ。一応。

164 :デフォルトの名無しさん:03/04/27 23:29
一回一回malloc/freeの対を呼ぶよりも、
確保しまくって、GCで一気に開放する方が効率が良い。
というかmalloc/freeを直呼びする方式は元々遅い。
ただしGCはゴミ集めで停止するリスクがある。
それでもGCの速度に太刀打ちするには、
boost::poolなんかを駆使する必要がある。

165 :デフォルトの名無しさん:03/04/27 23:32
>>164
ええーそうかー?

166 :デフォルトの名無しさん:03/04/27 23:45
>>165
そうだよ

167 :デフォルトの名無しさん:03/04/28 00:32
少なくともOSのメモリ確保アルゴリズムは原始的だから、動的なメモリをちまちま要求すると性能は極端に低下するよ。
Cが静的にメモリを取る設計なのはそのため。しかもこの事実はK&R以前の時代から本質的に変わってない。
だから処理系に動的メモリ管理用のロジックを組み込むことは有益かと。
少なくとも生APIよりは。

168 :デフォルトの名無しさん:03/04/28 02:12
>>167
brkとかsbrkのことなら、確かにユーザが直接呼び出すんじゃなく、
ライブラリから呼び出すことを前提にしてる気がする
というか、そのためのライブラリだから malloc を使えばいいじゃん
GCの話は別として

169 :名無し@沢村:03/04/28 08:47
おまいらよ言語の設計は、字句解析、構文解析、意味解析、コード生成、最適化などの各ステップからなるが、
実はおれはな、コード生成つーのがさっぱりわからんのよ。
まあ最適化の仕方もわからんが、最適化はせんならせんでいいからな…。
しかしコード生成だけはせんとどうしようもないだろ?
コード生成つーのはアセンブラ言語に変換すること?違うよな?
アセンブラ言語に変換だったら時間かければ泥縄式のコード書けんこともないが、アセンブラ言語に変換することじゃないよな?
アセンブラ言語のもととなる数値に変換することだよな?つまりネイティブコードに変換することだよな?
ネイティブコードにはどうやったら変換できるの?つーかネイティブコードが詳しく解説してあるサイト知らない?
ネイティブコードの解説コピペしようと思って、さがすがなかなか見つからんのよ。

170 :デフォルトの名無しさん:03/04/28 08:54
>>169
バカ?
アセンブラ言語に変換できりゃ、コードに変換なんて猿でもできる。
単純にアセンブラが分らんのだろ?
素直に言っちまえ。

171 :デフォルトの名無しさん:03/04/28 08:55
沢村は無能なんだから喋るな。

172 :デフォルトの名無しさん:03/04/28 09:11
>>170-171
相手するなよ。

173 :デフォルトの名無しさん:03/04/28 09:11
この手のスレは定期的に立っては何の成果も上がらず消えていくな……

174 :名無し@沢村:03/04/28 09:23
>>170
はげ、アセンブラ言語に変換できてもネイティブコードには変換できんよ。
アセンブラ言語で、
mov ah,09h
mov bh,0Bh
add ah,bh
はネイティブコードでどう書くのよ?
それがわからんと変換できんだろ?
つまり新しい言語の作成にはネイティブコードのマニュアルが不可欠だということだよ。

まあ新しい言語の作成で必要なのは極端にいえばコード生成の部分だけだな。
それさえわかれば、字句解析や構文解析なんかしないでソースコードから直接泥縄式に変換できるからな。


175 :デフォルトの名無しさん:03/04/28 09:25
>>174
コード対応表見れバカ
一対一対応で分らんとか抜かすやつは逝ってよし

176 :名無し@沢村:03/04/28 09:29
>>175
コード対応表ってサイトで見れるのか?
どこで見れるよ?コード対応表は無料か?

177 :デフォルトの名無しさん:03/04/28 09:30
>>176
チップメーカーのサイトなり、チップ本なり買え、死んでしまえ。ドアホ。
マニュアル見たことねえのがバレバレだぞ。

178 :デフォルトの名無しさん:03/04/28 09:35
手軽に手に入るアセンブラってないの?
そんなに自前のバイナリ化ここだわらなくてもいいと思うけど。


179 :名無し@沢村:03/04/28 09:39
>>177
チップメーカー?わからん?
コードはメーカーによって違うのか?
つまり自分が使ってるPCのメーカーのコードに変換するように設計した言語は他のメーカーのPCでは使えないことになるな…。
富士通のPCを使って開発した言語は富士通のPCでしか使えないわけだ。
MSがつくったコンパイラなんかはどうやって機種の互換性を出してるのよ?

180 :デフォルトの名無しさん:03/04/28 09:41
>>179
コンピュータの基礎からやりなおしなさい。論外、もう終り。

181 :デフォルトの名無しさん:03/04/28 09:44
>>179
>コードはメーカーによって違うのか?
当たり前、マックとWinに互換があるか?
>MSがつくったコンパイラなんかはどうやって機種の互換性を出してるのよ?
互換OSの仕事、コンパイラは関係ない。

182 :名無し@沢村:03/04/28 09:46
>>178
バイナリ化ができるならアセンブラ化するよりもバイナリ化するにこしたことはないぞ。
というのもアセンブラがあってもソースコードをアセンブラ言語に変換する作業は不可欠だからな…。
その上でアセンブラを起動してバイナリ化しなくちゃプログラムは実行できんわけだ。
つまりソースを書き終えて「コンパイル」ツールバーを押した時点で、
ソースをアセンブラ言語に変換→アセンブラの起動という二つの作業を内部で実行するようにしなくちゃいかんということだ。
それってちょっとドン臭いよな。
やはりバイナリ一発変換のほうがスマートで知的らしいよ♪

183 :名無し@沢村:03/04/28 09:50
>>181
はげ!!
マックとWinは互換性はねーよ、ハゲ!!
だが、MSがつくったコンパイラは同じWinであれば富士通のでもNECのでもHewletPackardのでも動くだろ!!
チップのコードが違うのにだよ…それが不思議なんだよな?

184 :デフォルトの名無しさん:03/04/28 09:52
>>182
> やはりバイナリ一発変換のほうがスマートで知的らしいよ♪

そか?
Eiffelなんかだと、他言語へのトランスレーターになってたりするし。

185 :デフォルトの名無しさん:03/04/28 09:55
名無し@沢村よ、あまりの無知ぶりが見ているこっちが恥ずかしいからやめれ、頼むわ。

186 :デフォルトの名無しさん:03/04/28 10:49
>>183
そこで上げた環境で動くのは、同じIntelのCPU(もしくは、互換品)使ってるからだろ。

187 :デフォルトの名無しさん:03/04/28 11:01
お前等釣られ杉。

188 :デフォルトの名無しさん:03/04/28 11:08
>>187 沢村

189 :デフォルトの名無しさん:03/04/28 11:13
読んで判り易くするには、やっぱり日本語化する事でしょ。

190 :デフォルトの名無しさん:03/04/28 11:21
>>189
そんなことしたら、ソースコードが混沌として読みたくなくなっちゃう

191 :デフォルトの名無しさん:03/04/28 11:29
>>190
ひまわりやTTSねおを根本から否定する発言だな!

192 :デフォルトの名無しさん:03/04/28 11:44
ここで 帰値が倍精度実数の関数 サイン(度:倍精度) を定義します
 πは倍精度のローカル変数です

ここから実装部です
 π ::= PI ();
 帰値 := sin(度*π/256);
ここまで実装部でした


193 :名無し@沢村:03/04/28 11:46
>>186
チップというのはCPUのことか?それならチップとまぎらわしい言葉使わずにCPUと言えや!
おれはまたいろんな部品のことかと思ったよ。
それで富士通とかNECとか言ったわけよ。
だが、Intelのサイト見ていろいろあるからわからんくなったよ。
どこにコードの対応表があるんだろうと思ってよ…?
Intelのサイトでもページの中にいろいろあって非常にわかりずらいよ!
http://www.intel.co.jp/
何かIntelアーキテクチャーソフトウエアデベロッパーのPDFマニュアルというのがそれっぽい気がするが…?

最適化リファレンス・マニュアル (日本語 PDF ファイル: 3,277KB)
デべロッパーズ・マニュアル、上巻:基本アーキテクチャ (日本語 PDF ファイル: 4,183KB)
デべロッパーズ・マニュアル、中巻:命令セット・リファレンス (日本語 PDF ファイル: 9,139KB)
デベロッパーズ・マニュアル、下巻:システム・プログラミング・ガイド (日本語 PDF ファイル: 7,838KB)
ハイパー・スレッディング・テクノロジのアーキテクチャとマイクロアーキテクチャ (日本語 PDF ファイル: 98KB)
ハイパー・スレッディング・テクノロジのプリシリコン検証 (日本語 PDF ファイル: 53KB)
スペキュレーティブ・プリコンピュテーション:マルチスレッディング・リソースの活用によるレイテンシの削減 (日本語 PDF ファイル: 118KB)
プロセッサの識別と CPUID 命令 (日本語 PDF ファイル: 688K
プロセッサにおけるスピン・ループの使用 (日本語 PDF ファイル: 103KB)

といろいろあってどれをダウンロードしていいかわからん…?
またCPUにもPentiumとXeonがあるみたいでこれには互換性があるのか?なども疑問だ…
おれはまたPentiumしかないと思っていたよ…
またそのPentiumも1〜4まであるし、まあ4のマニュアルをダウンロードしとけば下位互換性があるはずだから大丈夫だろうけどな…
拡張命令みたいなのはとりあえず知らなくても問題なさそうだな…
拡張命令って新しいから互換性ないからな…
それにしてもずいぶんサイズがでかくてイヤになりそうだが、外れなく一発でおれがコード対応表をダウンロードできるように教えてくれないかな?




194 :デフォルトの名無しさん:03/04/28 11:50
alpha版のWinはもう無くなったんだっけ?

195 :名無し@沢村:03/04/28 11:53
>>191
ひまわりやTTSの話はするな!
ちゃんと世界で話題になるような新しい言語をちゃんと設計してつくれ!!
子供のようなことを考えちゃダメだ。

196 :デフォルトの名無しさん:03/04/28 12:50
ちゃんと世界的に話題になるような言語・・・
アラビア語プログラミング言語とか?


197 :名無し@沢村:03/04/28 13:22
>>196
ちゃかすなハゲ!!
何がアラビア語だ!!
いいか世界で話題になるような言語とは世界の多くの人に使ってもらえるような言語ということだ。
チョンにも土人にもな。

198 :デフォルトの名無しさん:03/04/28 13:24
>>197
スクリプトだぞ? 別に世界中で使ってもらう必要などない。

日本のみで、便利かつ判り易ければそれでいいんだ。

199 :デフォルトの名無しさん:03/04/28 13:26
↑Ruby厨

200 :200:03/04/28 13:28
「世界の多くの人に使ってもらう」のに wchar が 2 バイトとか言ってんのね。

201 :名無し@沢村:03/04/28 14:40
>>198
>日本のみで、便利かつ判り易ければそれでいいんだ。

いいかげん島国根性はやめんか、バカ!!
視野を広く持てよキチガイ!!

>>200
いいか世界だよ。wcharが2バイトだよ。わかるか?
日本、韓国、中国を忘れるな!!漢字はwcharだよ2バイトだよ。
世界の人口の4分の1だぞ!!



202 :187:03/04/28 14:56
アフォをスルーできないヴァカばっかりだな。

203 :デフォルトの名無しさん:03/04/28 14:58
国際化なんておいといて、まずは使えるものを作るべきだろう
やはり用途を絞るべき
汎用的なのは Perl があれば足りてる

204 :デフォルトの名無しさん:03/04/28 15:06
沢村のアフォがいるのか
道理で透明あぼーんが多いと思った

205 :デフォルトの名無しさん:03/04/28 15:18
とりあえず過去ログから分かった事。

>おれならchar=1バイト,wchar=2バイト,int=4バイト,flort=4バイト,long=8バイトとするね。
>そしてそれぞれにsignedとunsignedがあるわけだ。

>おまいらよ言語の設計は、字句解析、構文解析、意味解析、コード生成、最適化などの各ステップからなるが、
>実はおれはな、コード生成つーのがさっぱりわからんのよ。

>K言語では配列型というのをつくるんだよ。
>例えば、array a[50];というふうに宣言するんだな。
>またarray型は型であって型ではないから、型のサイズというものを持たない。
>array型というのはintやlongやflortやcharやwcharなどの型を混ぜることができる配列なんだよ。

>おれはこうして少しずつK言語を設計していくからな。このスレでな。
>いままでのことでわからないことがあったら、何でも聞いてくれ!


206 :デフォルトの名無しさん:03/04/28 16:19
× flort
○ float

207 :デフォルトの名無しさん:03/04/28 17:24
× Soralis
○ Solaris

208 : ◆opMJSavJhM :03/04/28 23:38
>>98
なるほど、charの件ですがこんなことも(多少、行儀悪いですが)出来ますね。
言われてみれば、時々活用することもあるようです。(^^;

文字を文字列として表現することによって、sideeffectが全く無いと思ってい
たので指摘していただいて、良かったです。

とはいえ、>>98さんも同感だと思いますが、トータル的な取捨選択をかんがえ
れば、思い切って(という程でもありませんが。。。)

文字=長さ1の文字列

としても良いようですね。


209 : ◆opMJSavJhM :03/04/28 23:45

あと、変数に型を持たせずに、データに型を持たせるということはオブジェク
ト指向になりえますかね?

よくあるように、宣言をせずに整数・実数・文字列をそのまま変数に代入して
使うやつです。(例↓)

a=10
b=25.6
c="Hello World\n"

これはスクリプト系では、あまりにも当たり前の使い方なんでしょうが、大変
便利だな。。。といつも関心しいます。


210 :デフォルトの名無しさん:03/04/28 23:50
>>209
その代償として変数名の間違いに気付くのが遅くなるが

211 :デフォルトの名無しさん:03/04/29 00:07
>>209

Ruby!!

212 :デフォルトの名無しさん:03/04/29 00:17
>>209
強型言語でもデータに型は持ってるでしょ。
データに型がなかったらキャストもいらなくなってしまう。

213 :デフォルトの名無しさん:03/04/29 00:18
>>209,211
ウホ!いい文法!

214 :デフォルトの名無しさん:03/04/29 00:23
>>212
>データに型がなかったらキャストもいらなくなってしまう。

それは違うかと。 キャストはコンパイラを騙すためにするもの。 静的な型を解決するもの。

215 :デフォルトの名無しさん:03/04/29 00:54
>>212
動いてしまえば、すべてビット列


216 :デフォルトの名無しさん:03/04/29 00:55
>>213
rubyマンセ〜の方?すれ違いかも?


217 :デフォルトの名無しさん:03/04/29 00:55
>>213

ホイホイついて来ていいのか?
俺はリテラルからいきなりメソッド呼び出ししてしまうような言語だぜ

--------
「セックス」を「セクース」に変換

"セックス".sub(/(..)ッ(..)(..)/, '\1\2ー\3')

218 : ◆opMJSavJhM :03/04/29 10:57

必要なデータ型として

・空を表すNIL
・論理True/False
・文字列
・整数&実数

を仮定して、

typedef struct{
charname[14];
chartype;// Variable Type ('N'/'T'/'F'/'S'/'I'/'D')
char*str;
doubleval;
}varialbe;

のような構造を1つの変数としてもつのはいかがでしょう?

これなら、例えば
a=1.0
としたあとで、
a="Error!!"
としても、とりあえず対応出来るように思えます。


219 :デフォルトの名無しさん:03/04/29 10:58
あらら、tabは反映されないのね。。。(^^;


220 :デフォルトの名無しさん:03/04/29 11:03
>>218
そのレスでちょっとレベルが見えたけど、
ちゃんと基礎からやった方がいいよ。
このまま進めると、車輪を再発明し続ける事なる。

221 :デフォルトの名無しさん:03/04/29 11:03
s/なる/になる/

222 :デフォルトの名無しさん:03/04/29 12:07
>>218
なんで、struct なの union じゃダメなの ?
あと読み出す時はどうするの (どの型が入っているかわからんでしょ ?)
...
つーか、>>220 の言う通りだと思う。

223 :デフォルトの名無しさん:03/04/29 13:04
>>222
> あと読み出す時はどうするの (どの型が入っているかわからんでしょ ?)
メンバ type で判断するんでしょ?

まあ >>220 の言う通りだと思うけど。

224 :デフォルトの名無しさん:03/04/29 13:31
>>223
失礼、正直見落とし。

225 :デフォルトの名無しさん:03/04/29 21:15
name[14]ってのは一体何だ?

226 :デフォルトの名無しさん:03/04/29 23:07
>>220
いや、おはずかしい!

実は、既にお気づきかと思いますが、非常に単純化したレベルから概念整理
を兼ねてコーディングしてみようと思いましたので、実行スピードやメモリ
効率など全く考えておりません。

unionを使ってないのもcodingの単純化のためです。
name[]はあえて、変数名をその中にもたせたものです。

don't invent the wheels again...

よく聞かされる表現です。とはいえ、既に定着しつつあることについても、
あえていろいろとトライしてみることも(時には)よいことかもしれません。


227 :デフォルトの名無しさん:03/04/29 23:22
例外にぬるぽは入れてね。

228 :デフォルトの名無しさん:03/04/29 23:30
>>227
当然!


229 :デフォルトの名無しさん:03/04/29 23:32
>>226
トリップが無いが226=218だな?
君は見当違いの解釈をした。
>>220はやんわりと「出直して来い」と言っているのだよ。
「あえて」なんて言い訳はクソにもならない。

230 :デフォルトの名無しさん:03/04/29 23:34
>>226
そういう問題ではない、ヤバイ

231 :デフォルトの名無しさん:03/04/29 23:36
トライするのは勝手だが、ここでやるなって事ね。

232 :デフォルトの名無しさん:03/04/30 14:24
いっそのこと書式付き文字列型作ってよ。
ソースはRTFで書く。

誰か物好きが使うかもしれん。

233 :動画直リン:03/04/30 14:26
http://homepage.mac.com/hitomi18/

234 :デフォルトの名無しさん:03/04/30 16:08
文法チェックするやつ、ついでに作ったら?
http://www4.org1.com/~kitt/labo/pc/html/index.html
見たいなやつ。スクリプトだと詳しいエラーが出ないからよくわからず
部落ら化していたりして・・・

235 :デフォルトの名無しさん:03/04/30 16:53
http://www4.org1.com/~kitt/labo/pc/html/favo.gif

すごい配色だな。

236 :デフォルトの名無しさん:03/04/30 18:47
>>235
全然凄くない。俺なら簡単に出来るね。

237 :デフォルトの名無しさん:03/04/30 20:46
趣味が悪いって意味じゃないの?

238 : ◆opMJSavJhM :03/04/30 23:26

いろいろと、ご助言ありがとうございます。

さて、素人ながらも先のデータ型をもちいて、算術演算やらif()else()やらを、
一反32ビットのダブルワードコードに変換してから実行するような、スクリプ
ト風の仕掛けを作ってみたのですが、。。。

これが案外、うまく動くものでちょっと驚いています。

正直いってメモリ効率は非常に悪いものがありますが、実行効率は非常に良いみ
たいです。(GCいれると途端に遅くなるのかもしれませんが。。。(^^;)

算出演算を繰り返すようなスクリプトソースを、perl・ruby・32ビットスクリ
プトで組んでみたものをそれぞれ実行させてみたのですが、

perl = (approx.) 2[sec]
ruby = (approx.) 5[sec]
32bit = (approx.) 1[sec]

程度でした。

シンプルだから早いのか、これからどんどん遅くなっていくのか分かりませんが、
案外素人の作った車輪でもそこそこ転がるのかもしれませんね。


239 :デフォルトの名無しさん:03/04/30 23:32
>>238
詳細が分からんことには、実行速度などという実装に大きく依存することには
コメントしようがない。

ただ、一般に組み込み関数はperlのほうがrubyよりも速いと言われてる。
>>238もその手の延長のような気がする。


240 :デフォルトの名無しさん:03/05/01 00:09
>>239
ネタにマジレスすんなよ。

>>218 みたいなこと書いてる奴が...

> さて、素人ながらも先のデータ型をもちいて、算術演算やらif()else()やらを、
> 一反32ビットのダブルワードコードに変換してから実行するような、スクリプ
> ト風の仕掛け

なんか作れるわけないと思うよ。

241 :デフォルトの名無しさん:03/05/01 01:42
>>240
> >>218 みたいなこと書いてる奴が...
> なんか作れるわけないと思うよ。
ま、そりゃそうだ。

242 :デフォルトの名無しさん:03/05/01 02:03
つうか実行時間がなんでsec単位なんだよ

243 :デフォルトの名無しさん:03/05/01 02:12
単位よりも有効桁数の少なさが…

244 :デフォルトの名無しさん:03/05/01 06:53
しかも、sec単位の精度というオチつきだったりするか?

245 :デフォルトの名無しさん:03/05/01 08:13
実はストップウォッチ片手に計ったと見た。

246 :デフォルトの名無しさん:03/05/01 08:47
ぬるぽの実装まだー?

247 :デフォルトの名無しさん:03/05/01 08:57
http://pc.2ch.net/test/read.cgi/unix/1019926525/311-312

248 : ◆opMJSavJhM :03/05/02 21:51
おっと失礼!

確かに、あまりにもアバウトな表示ですね。(^^;
各スクリプトのソースと、実行時間の詳細をincludeします。

実行環境はLinux-2.4.20/RHL-8.0,CPU=i686,500MHz,Mem=256MB です。
まぁ、いずれにせよ相対値しか参考にはならないですが。。。

まずは、ソースから

==> test.32 <==
x=0.0
s=0.0
while(x<=1000000){
s=s+x
x=x+1
}
put x
put s


249 :デフォルトの名無しさん:03/05/02 21:54
# すいません、行が多すぎるらしく分けました。

==> test.perl <==
$x=0.0;
$s=0.0;
while($x<=1000000){
$s=$s+$x;
$x=$x+1;
}
print "$x\n";
print "$s\n";


==> test.ruby <==
x=0.0
s=0.0
while(x<=1000000)do
s=s+x
x=x+1
end
p x
p s


と、まぁ、実にたわいもないプログラムです。(^^;
で、次は結果です。


250 :デフォルトの名無しさん:03/05/02 21:55
これらはOSに付属するtime(1)による結果です。


==> 32 <==
1000001.000000
500000500000.000000

real0m1.161s
user0m1.160s
sys0m0.000s


==> perl <==
1000001
500000500000

real0m2.821s
user0m2.610s
sys0m0.010s


==> ruby <==
1000001.0
500000500000.0

real0m4.700s
user0m4.630s
sys0m0.020s


251 :デフォルトの名無しさん:03/05/02 22:18

いまは、if()/else()/while()ぐらいしか組み込んでいませんが、私のように
言語系の素人であっても、案外楽しくいろんな制御構造が組み込めるので、
びっくりしました。

# 自分がいいと思うような、制御構文をいれてみれるっていいですね。

正直なところ、このような単純な言語では全く何の役にも立ちそうにありませ
んが、。。。(^^;

やる気さえあれば、言語処理系の専門家でなくとも、多少はスクリプト処理系
「らしいもの」を真似てみることができるのかもしれません...


252 :デフォルトの名無しさん:03/05/05 04:29
その if とか while とかはネスト出来るの?

253 :デフォルトの名無しさん:03/05/05 22:04
もちろん可能です。
あと、どこかのスレッドで誰か様が提案されていたようなflowを組み込んでみたい
と思っています。(こんな感じの奴です↓)

while(x<10){
if(x==5){
break;
}
}
normal_exit{
# x=10
}
break_exit{
# x=5
}

でも、なかなか時間がとれなくって。。。
ちょっと昼休みとかにいじったりしています。


254 :デフォルトの名無しさん:03/05/07 17:11
かなりperlやrubyに不利なテストだな。
もっとそれぞれの言語にあった書き方と言うものがあるのに。

# perl
while($x<=1000000){$s+=$x++;}

# ruby
s = (0..100000).inject(0) {|s, x| s+x}

まあruby版はxが最後一回加算されないが。

255 :デフォルトの名無しさん:03/05/08 23:35
>>254
たいして代わらんだろう?


256 :デフォルトの名無しさん:03/05/08 23:40
ところで、perl以外の汎用スクリプトってunix系では無いよねぇ。。。
(除くruby)


257 :デフォルトの名無しさん:03/05/08 23:46
>>254
なるほどrubyは5倍程早くなるようだなぁ。。。(w


258 :デフォルトの名無しさん:03/05/09 00:29
>>257
つまり、2倍程遅くなると。。。(w


259 :デフォルトの名無しさん:03/05/09 00:35
tclは?

260 :デフォルトの名無しさん:03/05/09 00:51
>>259
何剃れ?


261 :デフォルトの名無しさん:03/05/09 00:56
>>1
VBScriptがあるじゃないか。

262 :デフォルトの名無しさん:03/05/09 03:04
オブジェクト指向ごときで抵抗があるのに言語がつくれるんだろうか?


263 :デフォルトの名無しさん:03/05/09 06:41
Pythonは?

264 :デフォルトの名無しさん:03/05/09 06:42
>>256はunix使っていないに一票(もしくはよほどのロートル)

265 :デフォルトの名無しさん:03/05/09 10:26
ロートルというよりむしろトロール

266 :デフォルトの名無しさん:03/05/09 10:55
>>256はムーミンということでよろしいか

267 :256:03/05/09 20:25
もう20年近くUNIX系つかってますが、何か?


268 :デフォルトの名無しさん:03/05/09 20:30
ロートルの方だったみたいね。

269 :デフォルトの名無しさん:03/05/09 20:49
各言語の非汎用っぷりを教えてください


270 :デフォルトの名無しさん:03/05/09 21:50
でも、オブジェクト指向でないものとすれば確かに汎用スクリプトなんてperl以外に無いぞ


271 :デフォルトの名無しさん:03/05/09 21:53
>>270
awk は ?

272 :デフォルトの名無しさん:03/05/09 22:00
>>
tcl, rexx, icon ....
腐るほどあるわけだが。


273 :デフォルトの名無しさん:03/05/09 22:02
EMACS LISPは?

274 :デフォルトの名無しさん:03/05/10 07:17
汎用ってなによ?


275 :デフォルトの名無しさん:03/05/10 09:13
>>274
はん‐よう【汎用】

はんよう
広くいろいろの方面に用いること。

276 :デフォルトの名無しさん:03/05/10 21:20
>>271
AWKは激しく汎用ではない罠〜(w

例えば、どうやって2つのファイルをマージできる?


277 :デフォルトの名無しさん:03/05/10 21:53
>>276
よく考えたらそうやね。
汎用テキスト処理言語だな。

> 例えば、どうやって2つのファイルをマージできる?

gawk なんかだと、getline var < file という構文で直接ファイル入出力ができるので、マージぐらいは大丈夫。

278 :デフォルトの名無しさん:03/05/11 11:24
でも、そのgetlineって使ってみると分かるが、ほとんど使えんぞ!


279 :デフォルトの名無しさん:03/05/12 00:15
>>272
どこが、汎用だ?(w

>>273
えらい範囲の狭い環境だなぁ?


280 :デフォルトの名無しさん:03/05/12 00:31
PerlはOOPLだよ

WebProg板にゆくと、OOを理解できないやつはPHP厨だとPerl厨に馬鹿にされます。

281 :デフォルトの名無しさん:03/05/12 01:39
>>279
Emacs Lisp使ったことないだろ?

282 :デフォルトの名無しさん:03/05/12 14:54
俺様流中間言語
PUSH n スタックに値nを詰む
GET a push(*a) スタックに(a)メモリの値を詰む
SET a (*a)=pop
CLR n スタックを減らす
2項演算 1項演算  push( pop 2項演算 pop) push(1項演算 pop)
GOTO/IF n
FUNC m,n m個分のスタックフレームをBPに確保して nを呼ぶ
RET スタックフレームを解放
DO   1個分のスタックフレームをBPに確保して 次アドレスを呼ぶ
WHILE popした結果でアドレススタックに飛ぶかスタックフレームの始末
GET@ n push(BP[n]) BP相対
SET@ n (BP[n])=pop
GETLOCAL push(BP[pop])
SETLOCAL (BP[pop])=pop

283 :279:03/05/13 22:02
>>281
洩れはvi系だからね。。。(w
でも、言語を見たことはある。
記号のオンパレード!


284 :名無し@沢村:03/05/13 22:17
おまいらよ、言語をつくるのはいいがコンパイラをつくっただけじゃ言語をつくったことにならんぞ!
メモ帳に言語を打ち込んでDOSコマンドでそれをコンパイルするなんてのじゃ誰も使わんぞ。
やはり言語はIDEにしなくちゃいかん。それとRADツールとデバッガもないといかん。チュートリアルやサンプルも豊富にないといかん。
ライブラリやコンポーネントも充実していてWin32APIも簡単に使えるようでなくちゃいかん。
それだけやってはじめてやっと言語を開発したことになるのよ。
まあできればExelやIE程度のソフトが3日で開発できるくらい便利にしてあれば言うことはないよ♪



285 :デフォルトの名無しさん:03/05/13 22:23
>>283
> 記号のオンパレード!
それはPerlのほうが…

286 :デフォルトの名無しさん:03/05/14 07:17
>>284
言語と開発環境を一緒にするな。

> やはり言語はIDEにしなくちゃいかん。
むちゃくちゃなことを言っていることに気づいてくれ

287 :デフォルトの名無しさん:03/05/14 07:44
マルチ、ネタでしょ、無視

288 :デフォルトの名無しさん:03/05/14 11:04
>>286
>>言語と開発環境を一緒にするな。

それは正論だけど現実問題は違うでしょう。
PerlにしろRubyにしろ話者人口が多いプログラムほど
そういうのが充実している。

言語のアーキテクチャが優秀でもそっちが貧弱だと
どうしても淘汰されていってしまうのでは?



289 :デフォルトの名無しさん:03/05/14 11:43
>>286
沢村に釣られてることに気づいてくれ


290 :デフォルトの名無しさん:03/05/14 11:44
>>288
そんなものは飾りです(ry

291 :デフォルトの名無しさん:03/05/14 12:06
スクリプト言語とはほど遠い話題が進行中

292 :デフォルトの名無しさん:03/05/14 12:11
沢村を沢村であると見抜ける人でないと(新しいスクリプト言語を設計するのは)難しい

293 :デフォルトの名無しさん:03/05/14 12:13
http://www.geocities.co.jp/Milkyway-Lynx/4133/dqn/dqn.html
Linux板で見つけた
C++製でOO厨にも読みやすいZO!

294 :デフォルトの名無しさん:03/05/14 15:11
>>293
沢村のサイトか?
悪趣味だな

295 :デフォルトの名無しさん:03/05/14 19:06
粉末たんは暇つぶしに読むと面白いよ。

296 :デフォルトの名無しさん:03/05/14 21:04
perlが暗号っぽくなるのは変数を使うときに必ず$がいるからだよねぇ?
これってshellの影響ですか?


297 :デフォルトの名無しさん:03/05/14 21:09
コード中の正規表現も、結構原因かもね

298 :デフォルトの名無しさん:03/05/14 21:09
>>296
$は関係ないだろ。

299 :デフォルトの名無しさん:03/05/14 21:33
省略できすぎるからだろ。

300 :デフォルトの名無しさん:03/05/14 22:39
$は省略できるんですか???
ウッソ〜???


301 :教えて:03/05/14 23:05
なんか良い Cシェルのプログラムないですか?教えてね。

302 :デフォルトの名無しさん:03/05/14 23:05
>>278
?? 一応仕様どおり動きますけど。
使いにくいのは認めるけどね。

>>300
せっかくの 300ゲトーなのに釣りかよ。

303 :_:03/05/14 23:09
〜oノハヽo〜                
  ( ^▽^) < こんなのございまーす♪ 
http://www.hiroyuki.zansu.com/moe/hankaku08.html
http://hiroyuki.zansu.com/moe/hankaku10.html
http://www.hiroyuki.zansu.com/moe/hankaku03.html
http://hiroyuki.zansu.com/moe/hankaku09.html
http://www.hiroyuki.zansu.com/moe/hankaku06.html
http://hiroyuki.zansu.com/moe/hankaku05.html
http://www.hiroyuki.zansu.com/moe/hankaku01.html
http://hiroyuki.zansu.com/moe/hankaku02.html
http://www.hiroyuki.zansu.com/moe/hankaku08.html
http://hiroyuki.zansu.com/moe/hankaku04.html

304 :教えて:03/05/15 00:00
お願いします!!


305 :デフォルトの名無しさん:03/05/15 00:02
>>304
スレ違い。

306 :教えて:03/05/15 00:03
どこに行けばいいですか?

307 :デフォルトの名無しさん:03/05/15 00:04
そもそも、パンの焼き方を知りたいのか、空の飛び方を知りたいのかも解らん。

308 :教えて:03/05/15 00:06
ふーん。

309 :デフォルトの名無しさん:03/05/15 00:12
>>306
そのくらい自分で調べてくれ。

310 :教えて:03/05/15 00:23
調べたけどわからないの。
そのくらい教えてよ。

311 :デフォルトの名無しさん:03/05/15 00:35
>>310
何がしたいんだよ。
だいたい「良い」 Cシェルのプログラムなどというものはない。

312 :教えて:03/05/15 00:47
すいません。
初心者向けの簡単なってことです。

313 :デフォルトの名無しさん:03/05/15 00:48
もしかしてこれを読みたかったの?
「なぜ csh でプログラムを書くのが良くないのか」
http://www.klab.ee.utsunomiya-u.ac.jp/~hiroki/csh-whynot.euc

314 :教えて:03/05/15 00:50
いや、そーじゃなくて実際に書きたいのです。

315 :デフォルトの名無しさん:03/05/15 00:53
>>314
だから、いい加減うざいよ、氏ね

316 :教えて:03/05/15 01:09
氏ねだって。ははははは。
お前らオタクにゃ用はねーよ。
そんなもん本気で勉強するかってーの。

317 :デフォルトの名無しさん:03/05/15 01:10
お前たち!
信長はどーした!
俺は待っているんだぞ!


318 :デフォルトの名無しさん:03/05/15 01:20
信長?

319 :デフォルトの名無しさん:03/05/15 01:23
>>318
信長。 http://pc2.2ch.net/test/read.cgi/tech/1047230229/


320 :デフォルトの名無しさん:03/05/15 01:36
暇人ですね。

321 :デフォルトの名無しさん:03/05/15 02:33
わけのわからんスレになってきたな

322 :デフォルトの名無しさん:03/05/15 04:58
沢村みたいなやつに関わるとこうなる
この板、荒らし耐性無さすぎ

323 :300:03/05/15 20:39
$は省略出来んですね。
勘違いスマソ


324 :デフォルトの名無しさん:03/05/15 21:53
しかし、なんでパールはあんなに記号暗号じみてるんだ???


325 :デフォルトの名無しさん:03/05/15 22:15
コード中の正規表現が、結構原因かもね

326 :デフォルトの名無しさん:03/05/15 22:21
>>325
いいえ。違います。

327 :デフォルトの名無しさん:03/05/15 22:58
C風味の文法 foo($bar, $baz);
に無理やりsh風味の演算子 s/foo/bar/;
を持ち込んでいるせいだあとズボラするための演算子とか
qq(foo bar);
m{^hoge}ego;


328 :デフォルトの名無しさん:03/05/17 02:45
sh に演算子なんか無い。

329 :デフォルトの名無しさん:03/05/17 02:49
ex だろ。

330 :デフォルトの名無しさん:03/05/17 08:32
>>328
[122]: uname -smr
FreeBSD 4.7-RELEASE i386
[123]: man sh | grep 演算子
シェルにとって特別な意味を持つ特定の文字列 ( ``演算子'' と呼ばれるもので
す) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリダ
イレクト演算子の 2 種類があります (これらの意味については後述します)。以
制御演算子:
リダイレクト演算子:
引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味
予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子の
制御演算子がある場合は、そのあとの最初の単語) が予約語でない場合、シェル
環境に代入します。リダイレクト演算子とその引数 (後述) を取り除き、あ
ここで、 `redir-op' は前述したリダイレクト演算子のいずれかです。これらの
演算子をどのように利用するかの例をいくつか以下に挙げます。
適用します。演算子が ( ``<<'' でなく) ``<<-'' の場合は、 here-doc-text の
複合コマンドは、単純コマンドの組み合わせで作ります。制御演算子または予約
パイプラインは、複数のコマンドを制御演算子 `|' によってつないだものです。
クト演算子で指定されたリダイレクトを処理する前のことだと考えて下さい。
短絡リスト演算子で後述) を順次実行します。 ``&'' は、直前の AND-OR リスト
コマンドが制御演算子がアンパサンド (&) で終了している場合、シェルはそのコ
``&&'' と ``||'' は AND-OR リスト演算子です。 ``&&'' は最初のコマンドを実

331 :デフォルトの名無しさん:03/05/17 09:46
>>327
> に無理やりsh風味の演算子 s/foo/bar/;
それはsed

332 :デフォルトの名無しさん:03/05/17 10:29
>>327
つぅかそれPerl

333 :デフォルトの名無しさん:03/05/17 11:10
>>332
馬鹿

334 :デフォルトの名無しさん:03/05/17 18:57
ってかスレタイ読めよ、それが新しいスクリプト言語じゃねえのか?

335 :デフォルトの名無しさん:03/05/17 21:37
つーか1が終わってる・・・

336 :デフォルトの名無しさん:03/05/18 14:17
perlは、流行らんでしょう?
いまは、perlしか無いからいやいや使ってるだけでは?

ruby/pythonはオブジェクト指向が癌


337 :デフォルトの名無しさん:03/05/18 14:20
釣 り で す か ?

338 :popo:03/05/18 15:14
ネーミングを何にするか・・これが悩みだよ。


339 :デフォルトの名無しさん:03/05/18 15:16


 t c l / t k

新 時 代 の 予 感 



340 :デフォルトの名無しさん:03/05/18 18:54
GNU's Not Unix
みたいな再帰モノ

織田信長みたいな日本語モノ

Perl, Rubyみたいな誕生石モノ

この辺からどう?


341 :名無し@沢村:03/05/18 20:03
おまいらよ、新しいスクリプト言語を設計はネーミングがすべてだよ。
ネーミングが決まった時点で、新しいスクリプト言語の設計は完了したといえるな。

342 :デフォルトの名無しさん:03/05/18 20:08
まんこ

343 :naming:03/05/19 22:35
鉱物物だったら

・花崗岩
・玄武岩

あたりが、堅牢そうなイメージがあっていいんじゃないかな?


344 :サンプルです:03/05/19 22:36
★大人になってから★
http://jbbs.shitaraba.com/travel/832/kenbetu.html

345 :デフォルトの名無しさん:03/05/19 22:37
スクリプト言語作るのって楽しい? > 作ってる香具師ら

346 :デフォルトの名無しさん:03/05/19 22:55
黒曜石
なんてかっこよくない?>343

347 :デフォルトの名無しさん:03/05/19 23:07
キモチワルイ

348 :デフォルトの名無しさん:03/05/20 07:08
黒曜石は切れるがもろいぞ

349 :デフォルトの名無しさん:03/05/20 07:09
>>345
楽しいぞ!

350 :343:03/05/20 15:10
おお、かっこいいな!ソレ
鉱物では、

ウンモ

っていうのもあるが、必ずいらんレスが付きそうだなぁ(w


351 :bloom:03/05/20 15:11
http://homepage.mac.com/ayaya16/

352 :デフォルトの名無しさん:03/05/20 15:11
国別でも、同様だ

オマーン

という国名があるが、(以下...


353 :デフォルトの名無しさん:03/05/20 15:16
ぬるぽでええやん

354 :デフォルトの名無しさん:03/05/20 15:59
>>353
いかにも「2ch製」って感じでかっこわるい

355 :デフォルトの名無しさん:03/05/20 20:16
じゃあ、モナーでいいじゃん

356 :デフォルトの名無しさん:03/05/20 20:24
モナド

357 :デフォルトの名無しさん:03/05/20 21:16
拡張子とかも考えないと

358 :デフォルトの名無しさん:03/05/20 21:32
.exe
がいいかな

359 :デフォルトの名無しさん:03/05/20 21:33
.pu

360 :デフォルトの名無しさん:03/05/21 17:47
で、
1、テキストインタプリタ実行
2、中間言語吐出型、中間言語インタプリタ実行
3、ネイテブバイナリ吐出型実行
のどの方式でやるの?



361 :デフォルトの名無しさん:03/05/21 22:08
2と3の中間ってところがいいと思うのですがいかが?

2だと、仮想VMとか仮想CPUみたいなものをつかうけど、
スクリプトと限定するんだから、ちょっとオーバースペックと言う気がする。


362 :デフォルトの名無しさん:03/05/21 22:08
>>361
Javaか.NETでいいじゃん。終了。

363 :デフォルトの名無しさん:03/05/21 23:16
ちょっとした処理にはインタプリタでやって重い処理には
コンパイルして機械語にも変換できるというやつきぼんぬ。

364 :デフォルトの名無しさん:03/05/21 23:29
ocaml

365 :デフォルトの名無しさん:03/05/22 00:07
LISPも機械語コンパイラあるだど

366 :デフォルトの名無しさん:03/05/22 08:24
>>361 普通は 1,2,3の順に実装は手間になりますよ。

では次の選択肢
1、スタックマシンスタイル(逆ポーランド)の中間言語
2、4つ組スタイルの中間言語
3、とりあえず1を作って2も作って機械語にも落とす

 1はpascalのPCODEからJAVA-VMから一般的な手法
 2の方が面倒、領域のムダ ただし機械語を吐き出す時には効率的でコンパイラに利用されている


367 :デフォルトの名無しさん:03/05/22 11:26
4つ組って何。
かなり限定的な話してる?

368 :デフォルトの名無しさん:03/05/22 11:48
4つ組というのは
 命令のスタイルを のように3番地コード a <- b + c に分解する方式です
 一つの命令を a,b,+,c の4つのメンバーに別けるわけです
 命令、代入先、演算ソース1、演算ソース2 ですね。

スタックマシンよりも現実のCPUに近い表現とも言えます。

369 :デフォルトの名無しさん:03/05/22 13:09
中間言語では、3つ組よりも4つ組の方がいいんだっけ?

370 :デフォルトの名無しさん:03/05/22 13:21
3つ組は4つ組から代入先を除いたものです。
計算結果は、そのコード自体が保持してるという感じですね。
ですんでインタプリタ実行させるには向いてないと思います。

371 :デフォルトの名無しさん:03/05/22 14:41
Paul graham の arc を勝手に作ってみるとか。

372 :デフォルトの名無しさん:03/05/22 21:21
三つ組みも四つ組も最適化を行うコンパイラ向きだと思う。
中間コードを実行するならスタックマシンの方がいいよ。

373 :デフォルトの名無しさん:03/05/22 21:37
では次の選択肢

スタックマシンの
1、バイナリコードは独自に作成する
2、JAVA-VMを真似る

独自に作成してもスタックマシンだと誰が設計しても50歩100歩。
JAVA-VMをマネれば、作成した中間言語をそのままJAVA-VMで動かしたりと便利だとは思うけど?


374 :デフォルトの名無しさん:03/05/22 21:42
真似るのと JavaVM のサブセットを作るのとは別かと。

375 :デフォルトの名無しさん:03/05/22 21:45
そうですか。では独自バイナリで行きますか。 まあそんな苦労も楽しみの一つですね。

376 :デフォルトの名無しさん:03/05/22 21:53
最低必要なのはメモリアクセス系・2項演算・1項演算・分岐・JSR/RETです

このスレで既に 中間言語を発表してるのは >>282 だけのようですが、
>>282ではループ用の専用命令を追加してるようです
ループ用の専用命令を追加しますか?


377 :デフォルトの名無しさん:03/05/22 22:19
テキストインタプリタ実行でいいじゃん

378 :デフォルトの名無しさん:03/05/22 23:01
下手糞な設計するぐらいならアセンブラ吐いた方がマシ

379 :デフォルトの名無しさん:03/05/22 23:25
>>368
詳しい説明TNX。
実際のところ「4つぐみ」の実装はそれほど難しくないのでは?

ちょっと、組んでみようと思うんだけど、

複雑な式→「4つぐみ」の組合せ

の分解部分がちょっと面倒そうだけど、あとは結構らくかも?


380 :デフォルトの名無しさん:03/05/22 23:27
>>376
中間言語なんだろうけど、それって中間よりだいぶ下に位置してないですか?
(つまり、機械語よりってことです。)


381 :デフォルトの名無しさん:03/05/23 00:27
つーか>>366>>368>>376は参考書の丸写しだろ


382 :デフォルトの名無しさん:03/05/23 02:05
命令の種類を考える前に、命令長とメモリモデルを考えた方が良くね?


383 :デフォルトの名無しさん:03/05/23 07:18
>>377
ギコbasicがテキストインタプリタ実行なんで、それよりはがんばりたいですね。

>>379
複雑な式->4つ組は一度スタックマシン(逆ポーランド)に変換してから半解釈しながら処理すると楽です。
その時のスタックの深さをローカル保存場所番地にしてしまえるからです

>>380
中間言語は、解釈の為と実行の為があって 実行の為の中間言語は当然機械語よりになりますね。


>>382
中間言語はバイトマシンが殆どです。
1バイト目で命令を識別し、その後に必要なバイト列が続くという事ですね。
メモリモデルは、最初は32bit固定少数点単一、後から浮動小数点等を増やしては?

384 :デフォルトの名無しさん:03/05/23 07:26
>>376
のループ専用命令を入れるかどうかですが、
専用命令があると解釈処理が楽になります。
for分の のような処理で 
現在の実行番地の次をスタックに詰むという命令があれば 
 初期値を設定して push(実行番地)
 他の処理
 goto (pop) で済みます。

ただし、このfor文は1回も実行させないという事が出来ません。

385 :デフォルトの名無しさん:03/05/23 23:20
>>383
逆ポーランドですか。。。どうも苦手だなぁ。。。
むしろ、最高プリオリティをもつ4つ組部分のみを処理するルーチンを書いて、
リカーシブコールにしたほうが、現場っぽくてよくないですか?

あと、

固定少数点なんて必要でしょうか?
浮動少数点のみで十分とも思いますが。。。


386 :デフォルトの名無しさん:03/05/24 00:05
中間言語より、肝心のスクリプト言語を設計しろよ

387 :デフォルトの名無しさん:03/05/24 00:36
LISPでいいよ

388 :デフォルトの名無しさん:03/05/24 00:38
スタックマシンだからといって逆ポーランドとは限らないわけだが。
つーか、中間コードだから、ただのバイト列だろ。


389 :デフォルトの名無しさん:03/05/24 07:59
シンプルな処理系がいいと思うよ。

扱うのは32bit整数型のみ。文字列は整数型をポインタとして使って参照する
つまり、変数="文字" は"文字"の入った場所の先頭アドレスを変数に入れるだけ。
配列は1次元のみ、固定長



390 :デフォルトの名無しさん:03/05/24 09:36
>>389
あまりにもシンプル過ぎないかい?


391 :デフォルトの名無しさん:03/05/24 09:38

つぅかバッファオーバーランするスクリプト言語なんてイラネ。

392 :デフォルトの名無しさん:03/05/24 09:50
じゃあもう全部Variant型でゆくか

393 :デフォルトの名無しさん:03/05/24 10:08
まあ、全部 Variant って言うスクリプト言語は多いからな。

とりあえず使える型を決めようよ。

| 整数型
| 文字列型

| 1次元配列

は必須として、

| 文字型
| 浮動小数点型
| オブジェクト型
| 通貨型
| 日付/時間型

| 構造型
| ポインタ型
| 2次元〜多次元配列

| ...

どこまで必要 ?

394 :389:03/05/24 10:24
>>393
ちょっとソレじゃ日曜プログラマには作るの厳しいぞ。
全部VariantならDelphiなら簡単に実装出来るけど、他言語だと面倒。それにパフォーマンスは出ない。
全部整数なら色んなコンパイラで実装出来る。

俺が思うに、どうせ便利スクリプトは既製の色んな中から選べばいいんだから
自作するなら、自作アプリに簡単に組めて、そこそこ速度も出てみたいなのが欲しいな。


395 :デフォルトの名無しさん:03/05/24 10:30
取りあえず>>394は無視して話し続けるか。


396 :389:03/05/24 10:33
ガ〜ン・・・・トボトボ

397 :389:03/05/24 11:52
とりあえず、JAVA-VMのバイトコード表
  0x     1x   2x   3x    4x    5x    6x  7x  8x  9x
x0 nop     bipush lload_2 faload  lstore_1 lastore iadd irem ior d2f 
x1 aconst_null sipush lload_3 daload  lstore_2 fastore ladd lrem lor i2b3
x2 iconst_m1  ldc   fload_0 aaload  lstore_3 dastore fadd frem ixor i2c 
x3 iconst_0  ldc_w  fload_1 baload  fstore_0 aastore dadd drem lxor i2s 
x4 iconst_1  ldc2_w fload_2 caload  fstore_1 bastore isub ineg iinc lcmp
x5 iconst_2  iload  fload_3 saload  fstore_2 castore lsub lneg i2l fcmpl
x6 iconst_3  lload  dload_0 istore  fstore_3 sastore fsub fneg i2f fcmpg
x7 iconst_4  fload  dload_1 lstore  dstore_0 pop   dsub dneg i2d dcmpl
x8 iconst_5  dload  dload_2 fstore  dstore_1 pop2   imul ishl l2i dcmpg
x9 lconst_0  aload  dload_3 dstore  dstore_2 dup   lmul lshl l2f
xA lconst_1  iload_0 aload_0 astore  dstore_3 dup_x1  fmul ishr l2d
xB fconst_0  iload_1 aload_1 istore_0 astore_0 dup_x2  dmul lshr f2i
xC fconst_1  iload_2 aload_2 istore_1 astore_1 dup2   idiv iushr f2l
xD fconst_2  iload_3 aload_3 istore_2 astore_2 dup2_x1 ldiv0 lushr f2d
xE dconst_0  lload_0 iaload istore_3 astore_3 dup2_x2 fdiv iand d2i
xF dconst_1  lload_1 laload lstore_0 iastore swap   ddiv land d2l

398 :389:03/05/24 11:52
99 ifeq     B2 getstatic
9A ifne     B3 putstatic
9B iflt     B4 getfield
9C ifge     B5 putfield
9D ifgt     B6 invokevirtual
9E ifle     B7 invokespecial
9F if_icmpeq  B8 invokestatic
A0 if_icmpne  B9 invokeinterface
A1 if_icmplt  BA nouse
A2 if_icmpge  BB new
A3 if_icmpgt  BC newarray
A4 if_icmple  BD anewarray
A5 if_acmpeq  BE arraylength
A6 if_acmpne  BF athrow
A7 goto     C0 checkcast
A8 jsr     C1 instanceof
A9 ret     C2 monitorenter
AA tableswitch C3 monitorexit
AB lookupswitch C4 wide
AC ireturn   C5 multianewarray
AD lreturn   C6 ifnull
AE freturn   C7 ifnonnull
AF dreturn   C8 goto_w
B0 areturn   C9 jsr_w
B1 return


399 :デフォルトの名無しさん:03/05/24 13:32
とりあえず、ひまわりのソースをベースにするか

400 :デフォルトの名無しさん:03/05/24 14:14
文字型はイラネ。
オブジェクト型もイラネ。
通貨型もイラネ。
ポインタもイラネ。


401 :デフォルトの名無しさん:03/05/24 14:58
>通貨型もイラネ。
こんなのを組み込み型にする言語はVBだけ

402 :デフォルトの名無しさん:03/05/24 15:18
シンボル入れれ。

403 :デフォルトの名無しさん:03/05/24 16:01
>>401
Delphiにもある罠。

404 :デフォルトの名無しさん:03/05/24 17:25
Hue

405 :デフォルトの名無しさん:03/05/24 17:57
NScriptor最高!

406 :デフォルトの名無しさん:03/05/24 18:21
human type も入れてね!

B=83
W=62
H=85

見たいな奴


407 :デフォルトの名無しさん:03/05/24 18:47
>>406の痛い人間判断基準について学級会を開きたいのですが?


408 :デフォルトの名無しさん:03/05/24 18:50
例示の値がマズいよな。B>80 ってのは。

409 :デフォルトの名無しさん:03/05/24 18:57
理想と現実だいぶ違うから、夢から覚めなさい〜♪

410 :名無し@沢村:03/05/24 21:03
おまいら、スクリプト言語をつくってみろ?

411 :デフォルトの名無しさん:03/05/25 08:34
>>393
ネイテブコンパイル出来る事を目標にして、WindowsAPIを呼べるようにしたいなら

 BYTE WORD DWORD INT32 PDWORD PINT32 PCHAR 関数ポインタ とその構造体が表現出来ないといけない

COMも使うなら OLEVariant/BSTR も表現出来ないといけない。


412 :デフォルトの名無しさん:03/05/25 09:48
>>411
それならWSHと言う良いスクリプト言語環境がある。

413 :デフォルトの名無しさん:03/05/25 11:00
>>411
はぁ ?
VB6 は、DWORD, PDWORD, PINT32, PCHAR, 関数ポインタ なんて型無いけど、WindowsAPI 呼べますが。
まあ、使いにくいというのは確かだが。

414 :デフォルトの名無しさん:03/05/25 12:51
まあ
DWORD は INT32でもいいと言えばいいか
参照渡しが出来れば多少広い範囲が呼べるね
構造体型で渡す場合に多少不便程度だけど、そういうのは大抵COMサポートのもっと便利なの用意されてるしね。


415 :デフォルトの名無しさん:03/05/25 15:28
C言語でpushとかCALLとかってできますでしょうか?


416 :デフォルトの名無しさん:03/05/25 15:35
アホだなあ・・

417 :デフォルトの名無しさん:03/05/25 16:20
もちろんできます。

418 :デフォルトの名無しさん:03/05/25 19:01
>>413
ものすごい分厚さのオブラート(ラップ)を通じてな。

419 :デフォルトの名無しさん:03/05/26 22:01
>>417
どうやって???


420 :デフォルトの名無しさん:03/05/26 22:02
>>419
_asm{}

421 :デフォルトの名無しさん:03/05/26 22:02
スレ違いです

422 :デフォルトの名無しさん:03/05/26 22:12
ネットのバイト見つけた。バナー収入登録したら1000円くれるってさ。
http://members.goo.ne.jp/home/madcap0  
         

423 :デフォルトの名無しさん:03/05/26 22:38
今作ろうとしているスクリプト言語。
画像処理ソフトの組み込み用だけど、このソフトを作る目的自体が
画像処理ソフトというより簡易スクリプトの実験だったりして。

とりあえず、第一段階として

型はバッファ、整数、bool程度
構文はfor-next/do-while/if/(組み込み)関数呼び出し
変数や関数の評価・代入のみで加減乗除などの演算はなし(というか、
演算関数の評価で代用)

といった簡単な処理系から作ってみるつもり。

変数の管理や関数呼び出しはやったことがあるから、この段階で
難しそうなのは制御構文か。


424 :名無し@沢村:03/05/26 22:54
おまいらよ、おれがいま研究している2方向量子ウォーク1カウンタオートマトンのアルゴリズムはだな、
出発点 (0,0,…,0), 吸収点 (1,1,…,1) の
n次元超立方体上の対称量子ウォークの
吸収時間は Tr Xn - 1 で与えられるんだよ。
ここで Xnは方程式の解となるんだよ。わかるか?
おれはいまそういう簡単な研究に取り組んでいるんだよ!!!


425 :デフォルトの名無しさん:03/05/27 23:03
>>423
関数呼出しって、どうやって実現しましたか?
例えば、sin()/log()/exp()/... ってあったとして、

if(script=="sin"){ ...}
if(script=="log"){ ... }
if(script=="exp"){ ... }

見たいな感じに1文づつ処理していったのでしょうか?

OS組み込みor標準関数なら、なんかうまくやって
一発で書き表すことができんでしょうかね?


426 :デフォルトの名無しさん:03/05/27 23:14
>>425
{ "sin" , func_sin , 1},
{ "cos" , func_cos , 1},
{ "abs" , func_abs , 1},
{ "sqrt", func_sqrt, 1},
{ "log" , func_log , 2},

こういうふうにして

static int func_abs( void )
{
  float f;

  if( pop( &f ) != 0 ) return -1;
  push( fabs(f) );

  return 0;
}
こんな関数作ってた
俺の式入れるとグラフだしてくれるソフト

427 :デフォルトの名無しさん:03/05/27 23:16
ちゃんとしたスタック作れば引数も返値も思いのままだな。
ちょっぴり勉強になった。

428 :名無し@沢村:03/05/28 06:28
おまいらよ、量子PCというのはな、量子重ね合わせの状態を使って並列計算を行うことができるPCのことよ。わかるか?。
おまいらよ、量子重ね合わせの状態とは何かわかるか?
まあくだいていえば、一台の車が右向きに走っている状態と左向きに走っている状態が同時に成立しているということよ。
だが、おれらが実際見ると、車は右向きか左向きかに固定して走ってるだろ?それは観測することによって、重ね合わせの状態のうちのひとつが固定するからよ。
おまいらよ、重ね合わせの状態のうちのひとつがどれに固定するかは、重ね合わせの係数によって決まるのよ。おまいらよ、重ね合わせの係数は複素数よ。複素数の勉強をしてみろ?
おまいらよ、量子PCでいう演算とは、この量子重ね合わせの状態を担う物理系に対して、パルス電波を与えることよ。
いままでのPCでは4bitで表現できる16の状態のうち一つについて1回づつ演算を行い、合計16回計算して16通りの結果を出力してたが、量子PCでは4bitで表現できる16の状態を同時に実現している重ねあわされた量子状態に対して1回の演算を行い、結果を出力するんだよ。
当然処理bit数が増えるほど、量子PCの威力は大きくなるわな。だから並列処理よ。
だが、おまいらよ、その演算結果を見ようとすると、重なり合った状態のうちの一つしか見れないだろ?
この問題を解決するものとしてShorのアルゴリズムというのがあるよ。
Shorのアルゴリズムは量子PCの教科書には必ず出てくる有名なアルゴリズムだから、見てみろ?
おまいらよ、このようにこれからのプログラムは量子の時代よ。
おまいらもひとつ量子言語をつくってみたらどうだ?量子でないプログラミングなんてザコよ!

429 :423:03/05/28 07:26
>>425
私が以前作ったプログラムは、変数・関数を数値として評価し、代入文
で変数にその結果入れていくようなスクリプトを処理するもので、

a=3
b=inc(inc(a))

とするとinc(引数の数値を1増やす)によって値が増えbに5が入る、と
いう感じのもの。処理手順としては、まず=や括弧で文の構成要素ごと
に分離して検査・評価し、代入文なら右辺の評価結果を左辺(左辺は
変数または未定義変数候補文字列のみ有効)に代入する、という流れ。

関数は、引数に一つの「数値(即値か有効な定義済み変数、関数)」
をとるようにしたから、まず()で分け

文字列1(文字列2)

という形の部分があったら、文字列2を評価し、有効な数値(即値
か変数、または評価しうる関数呼び出し)であれば、その値を取得。
続いて文字列1を検査し、関数名なら文字列2を評価した引数の
数値に対して関数の機能(+1など)を適用し、その値を関数全体の
評価とする、という処理をしてみた。


430 :名無し@沢村:03/05/28 07:34
>>429
おまえのそのやり方は古典よ。サルがやっと2足歩行を覚えた段階だな。
少しは頭を使ってみろ?

431 :_:03/05/28 07:37
http://homepage.mac.com/hiroyuki43/hankaku05.html

432 :423:03/05/28 08:00
>>430

私の場合は、そもそも「外」を歩いてみたこともない段階だからね。
2足歩行より先に4本足で動き回る練習からしないといけない。


433 :デフォルトの名無しさん:03/05/28 08:23
>>429
やっぱり括弧付四則演算が書けないと読み辛いよ。
再帰下降で処理すれば括弧付四則演算も容易だから挑戦してみたら?

434 :名無し@沢村:03/05/28 08:52
>>433
再帰下降法?原始的なやり方だな。
離散フーリエ変換で処理したほうがスマートだよ。

435 :デフォルトの名無しさん:03/05/28 09:49
沢村って何?口だけ達者な人?


436 :デフォルトの名無しさん:03/05/28 09:52
ツッコミを待ってるんだろうけど、ちょっと方向性が悪いね。
単なるバカが無理してるとしか見えない芸風だ。 改善を求む

437 :デフォルトの名無しさん:03/05/28 10:51
>>433
だな。
俺も昔は式の解析でいろいろ苦労した記憶があるんだが
最近書き直したらやたら簡単に書けてびびった。

438 :山崎渉:03/05/28 12:28
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

439 :デフォルトの名無しさん:03/05/28 15:22
沈みすぎ・・
山崎渉のしわざかー

440 :デフォルトの名無しさん:03/05/28 18:02
LL(1)程度ならccなんて不用

441 :デフォルトの名無しさん:03/05/28 21:07
>>440
釣りか ?

442 :デフォルトの名無しさん:03/05/29 22:04
>>426
それはどのように動く?
局ののところ、(例えOS標準の数学関数であったとしても)
1関数づつ記述しているのと、大差ないとおもわれ


443 :>>429:03/05/30 22:07
なるほど、確実なやり方ですね。
で、OSのライブラリ呼ぶときはどうしてましたか?

1つ1つライブラリを呼ぶコードを書いてましたか?


444 :デフォルトの名無しさん:03/05/30 22:37
null指向

445 :デフォルトの名無しさん:03/05/30 23:01
レベル低すぎ。
平均はおまえらが下げてる。

446 :デフォルトの名無しさん:03/05/31 05:07
>>445
おまえには分からんだろう?(w


447 :_:03/05/31 05:09
http://homepage.mac.com/hiroyuki43/hankaku01.html

448 :デフォルトの名無しさん:03/05/31 07:15
スクリプト言語 Sapphire 出せ

449 :デフォルトの名無しさん:03/05/31 11:24
シンプルな中間言語作って公開して、中間言語のインタプリタとネイテブコンパイラ と
自作スクリプト言語からその中間言語に変換するコンパイラの3つのプロジェクトを作ったらいいんじゃないか?

中間言語は、
・スタックマシン
・32bit整数+32bitFloat の2つの型のみ。
・文字列は中間言語メモリイメージ中に埋め込んでそのアドレスを渡すのみ
・文字列は読み込みのみ変更不可

程度でどうでしょ? あんまり機能豊富にするならJavaVM使えって言われそうだし

450 :デフォルトの名無しさん:03/05/31 11:43
なんでそんなに中間言語にこだわる?

大事なはスクリプト言語。まずはその仕様を
決めないと先にすすめない。

実装手段として中間言語が出てくるかもしれないが
順番が逆。

451 :デフォルトの名無しさん:03/05/31 11:44
LISPでいいよ

452 :デフォルトの名無しさん:03/05/31 11:56
>>450
中間言語の仕様と違ってスクリプト言語の仕様は、これはもう簡単には決まらないぞ。
特に実用的なって事になるとな

ギコbasicの時は、面白いというだけで作ったけどなあ


453 :デフォルトの名無しさん:03/05/31 12:58
これまで2chで言語仕様から決めようとしたプロジェクトは
ことごとく潰れている‥‥‥。
まず作者がある程度動作するプロトタイプを好き勝手につくり、
それを叩き台にして議論して改良したほうが実は現実的かと。


454 :デフォルトの名無しさん:03/05/31 16:13
1バイト命令:
 dup pop
 push(pop + , - , not , Int2Float,Float2Int, そのアドレスの値 )
 push(pop pop + - * / and or xor > == >= <= <> )

1+4バイト命令:
 push( 即値、グローバル変数、ローカル変数)
 push( pop グローバル変数配列、ローカル変数配列)
 if (pop) then 分岐
 分岐,CALL

命令空間が余ったら inc dec とか即値用短形式に割り振る

455 :デフォルトの名無しさん:03/05/31 16:57
バイトコードインタプリタだけ作って満足しそうな奴ばっかりだな。

456 :デフォルトの名無しさん:03/05/31 17:01
バイトコードインタプリタの例:
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/Script.txt


457 :デフォルトの名無しさん:03/05/31 17:13
>>455-456

要は自分の功績を自慢したいと。

458 :デフォルトの名無しさん:03/06/01 00:48
>>453
ハゲ堂!


459 :デフォルトの名無しさん:03/06/01 11:25
とはいえ、オブジェクト指向かどうかは重要だと思うよ。
最近はオブジェクト指向一色って感じもするけど、そのあたりはどう?


460 :デフォルトの名無しさん:03/06/01 11:29
用途によるんじゃないの?
 なんでもかんでも出来る高機能スクリプトなら欲しいかもしれないし
 ちょっと自分のプログラム中に組み込んで、カスタマイズ性を大きくしたりの用途なら不要だろうし

461 :デフォルトの名無しさん:03/06/03 00:40
少なくとも、rubyみたいに思い付きとも取れるよな標準メソッドテンコモリ
オブジェクト指向はいらん罠〜(w


462 :デフォルトの名無しさん:03/06/03 03:47
>>1
新しいクリトリス言語って何?

463 :423:03/06/17 13:29
ちょっとした事情(^^;でADVのスクリプト処理系を作成中。
といってもほとんど中間コード実行システムになっているな・・・。
簡易コンパイラも作らないと。

私も以前バイトコード(というか4バイトコード)インタプリンタを
作ってみたけど、スクリプト言語を作る前に実験のつもりでバイナリ
コードを実行する仮想マシンを作っておくと良いかも。コードの判別
やパラメータの解釈、メモリの管理などを文字列ベースのコードより
単純な形で練習できる。
テストのためにアセンブラが欲しくなるから、自然にアセンブリ言語
処理系(超簡易スクリプト)も作りたくなるだろうし(^^;。


464 :名無し@沢村:03/06/19 06:07
おまいらよ、コンパイラやスクリプトエンジンをつくるのはいいが、未踏ソフトウエア創造事業に応募してはどうだ?
採用されれば、何千万円もの開発資金を援助してもらえるよ。
もちろん定期的に進行具合をPM(プロジェクトマネージャー)に見せなければならないなどの、面倒くさい点は山ほどあるがね…
だが、それだけあれば、会社なんかやめて、毎日寝てくらせるぞ!!
PMにはアラン・ケイや伊地知をはじめ、いろんな大学教授や企業の研究者などがいる。
またPMは好きなやつを選んで応募できるから、気の合いそうなやつを選ぶといいよ。
これからは、個人でソフトを開発するなら、未踏ソフトウエア創造事業の時代だと思うが、どうよ?

465 :山崎 渉:03/07/15 10:45

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

466 :山崎 渉:03/07/15 14:03

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

467 :デフォルトの名無しさん:03/07/25 23:27
新しいスクリプト言語作りたいなぁ揚げ

468 :山崎 渉:03/08/02 02:19
(^^)

469 :デフォルトの名無しさん:03/08/14 17:56
ほとんどCなスクリプト言語 ICIttp://www.zeta.org.au/~atrn/ici/

470 :山崎 渉:03/08/15 16:29
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

101 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)