トップページ⇒tech
518コメント145KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆opMJSavJhM NGNG
これからは、スクリプト言語の時代だそうですが、案外使い勝手の良い平凡な
言語が少ないような気がします。例えば。。。

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

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

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

いろいろと、アドバイスなりアイデアなりを頂けると嬉しいです。
0002デフォルトの名無しさんNGNG
卒論ですか?
0003デフォルトの名無しさんNGNG
2
0004デフォルトの名無しさんNGNG
>これからは、スクリプト言語の時代
間違い
終了
0005デフォルトの名無しさんNGNG
shige が Ruby の発展の足かせとなったのは事実なわけだが
0006デフォルトの名無しさんNGNG
>>1
もうすでにHSPがあるだろ?
0007デフォルトの名無しさんNGNG
>>1
> これからは、スクリプト言語の時代だそうですが
ハァ?

新しい言語作るなら、
新しいアスペクト指向言語を作ってくれ
0008デフォルトの名無しさんNGNG
>>7
アスペクト指向を自分の言葉で説明してみろ
0009デフォルトの名無しさんNGNG
ともかくがんばれ〜
0010デフォルトの名無しさんNGNG
スクリプト指向言語つくっています。
0011デフォルトの名無しさんNGNG
健康志向言語つくってます。
0012デフォルトの名無しさんNGNG
残業不要言語作ってます。
0013デフォルトの名無しさんNGNG
天地無用言語作ってます。
0014デフォルトの名無しさんNGNG
下積厳禁言語作ってます。
0015デフォルトの名無しさんNGNG
類似スレ

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

新言語の制御文を作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1050616566/
0016デフォルトの名無しさんNGNG
織田信長があるじゃん
0017 ◆.CzKQna1OU NGNG
#test
0018デフォルトの名無しさんNGNG
僕の織田信長が暴走しそうです
0019動画直リンNGNG
http://homepage.mac.com/hitomi18/
0020デフォルトの名無しさんNGNG
      _
     _'~_ ミミ
     ひ` 3彡
 カラン_ 匸,.イ  <たて逃げするなら最初からスレッド立てなきゃいいのにな。。。
   rl|iri| /yV/ \

0021デフォルトの名無しさんNGNG
プログラミング言語 Lua スレ↓の 363 あたりから新言語作成の話題がありますた
http://pc2.2ch.net/test/read.cgi/tech/1034182349/
0022デフォルトの名無しさんNGNG
>>2
卒論とかではないです。(もう遥かにそんな年ではないです。)
>>6
HSPはwin用なので、使えんのです。
>>16
なんですか?それ???
0023デフォルトの名無しさんNGNG
HSPを移植すればおしまい
設計する必要なし
0024デフォルトの名無しさんNGNG
>>22
とりあえず何も作ってない奴にアレコレ言ってやる程暇な香具師はそう多くないってこった。
0025デフォルトの名無しさんNGNG
こういうスレがあるわけだが。

『コンパイラ・スクリプトエンジン』 相談室 2
http://pc2.2ch.net/test/read.cgi/tech/1021136715/
0026デフォルトの名無しさんNGNG
何のビジョンもなければ作る気配もないのがすばらしい。
0027デフォルトの名無しさんNGNG
>>21
GoLua !?
0028デフォルトの名無しさんNGNG
実際のところ、オブジェクト嗜好な方って意外と少ないような気がするん
ですが、どうでしょう???
0029デフォルトの名無しさんNGNG
というか、目的ありきじゃないのですかな
0030デフォルトの名無しさんNGNG
ところで英語を直訳したようなこのスレタイなんとかならんか
0031名無し@沢村NGNG
おれはF言語かK言語を開発したいね。
どうしてFかKかといえば、おれは昔K-FACTORYというブランドが好きだったからよ。
おれは新宿丸井店と神宮店によく買いにいってたね。
おれは朝日新聞の白黒写真にK-FACTORYのニットとパンツをはいて出ていたモデルのねーちゃんがかっこよかったから、K-FACTORYを好きになったのよ。
おれもああかっこよくなりたいと思ってね。
いずれにしても開発するならF言語かK言語しかないと思っているね。
K言語がねらい目かもね…?どうよ?
0032デフォルトの名無しさんNGNG
"hello" println system console standerd output stream.
0033デフォルトの名無しさんNGNG
F言語ってF-BASICのことだろ?
ふじつーまんせー
0034デフォルトの名無しさんNGNG
そうだな。Fといったら不治痛だよな。イタタタタ・・・
0035デフォルトの名無しさんNGNG
>>1
>>これからは、スクリプト言語の時代だそうですが

いまさらだな
0036デフォルトの名無しさんNGNG
汎用で使えるスクリプトが少なすぎるのは確かかな?

bashとAWKもあるにはあるが、どちらも目的&ターゲットが限定
されすぎていない?
0037デフォルトの名無しさんNGNG
>>36
pythonとかrubyは?
0038デフォルトの名無しさんNGNG
perl とか rexx とか wsh とかは。
0039デフォルトの名無しさんNGNG
>>37
共にオブジェクト至高
0040デフォルトの名無しさんNGNG
>>38
perlは定番だね
rexxは設計古杉
WSHはwin用?
0041デフォルトの名無しさんNGNG
>>1
そろそろ出来たろう。
早く見せてくれ。
0042名無し@沢村NGNG
>>41
いや、>>1はまだそのままだよ。
>>1は使い勝手のいいスクリプト言語をつくりたいと思ってるんだよ。
いろいろアドバイスやアイデアがほしいんだよ。
0043デフォルトの名無しさんNGNG
>>1
なら、るびぃを手続き型で使えばいいじゃん。
0044デフォルトの名無しさんNGNG
オブジェクト指向だからとっつきにくいとか言ってるやつって
たまいるけど、よっぽど頭かたいんじゃないかと思うよ。
0045デフォルトの名無しさんNGNG
42=1
0046名無し@沢村NGNG
おれはまず変数と型をしっかりと設計するね。
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は無駄だね。どうよ?
まあ名前は別の名前にするかもしれないけどね。
まずこれで変数と型が設計できたぞ!
少しはかどったわけだ。次回はまた♪
0047デフォルトの名無しさんNGNG
wcharいらね。
0048デフォルトの名無しさんNGNG
>>46
糞
0049デフォルトの名無しさんNGNG
>>46 そびえたつクソ
0050名無し@沢村NGNG
>>47
wcharは日本語を表現するのにいるよ!
charしかないと文字変換のとき日本語を二つに分解しないとダメで面倒臭いだろ?
しかしwcharがあれば一発で変換できるよ。
またcharとwcharに互換性を持たせておけば同じ配列にcharとwcharを混ぜて使えるから、テキストエディタを作るとき超便利になるよ!
0051デフォルトの名無しさんNGNG
文字型が2バイトって時点でクソ。
0052デフォルトの名無しさんNGNG
>>50
だせ。
0053デフォルトの名無しさんNGNG
>>46
型宣言どうすんの?
C風に比べてPASCAL風のほうがすっきりすると思うんだが
0054デフォルトの名無しさんNGNG
ださすぎ。
そのうち、お決まりの「もちろん、C言語風のsyntaxに……」とか
言い出すんだろ?見え見え。

いいかげん、一旦Cから離れろよ。できれば、アルゴル系から離れろ。
0055デフォルトの名無しさんNGNG
じゃlisp風に...
0056名無し@沢村NGNG
おまいらよ、つぎは配列の設計だよ。
配列は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言語を設計していくからな。このスレでな。
いままでのことでわからないことがあったら、何でも聞いてくれ!
0057デフォルトの名無しさんNGNG
おれらの発言はスルーですよ。
結局、沢村はここでワンマンショーがしたいだけなんだな。
0058デフォルトの名無しさんNGNG
>>56
既に VB の Variant 型配列で実現されてますが。
0059デフォルトの名無しさんNGNG
>既に VB の Variant 型配列で実現されてますが。
プ
沢村の爪の垢でも飲んどけ
0060デフォルトの名無しさんNGNG
参照の配列にしとけば?
0061デフォルトの名無しさんNGNG
>>59
「プ」しか書けないアフォは、氏ね。
0062デフォルトの名無しさんNGNG
( ゚,_・・゚)プププッ>>61
0063デフォルトの名無しさんNGNG
>>62
やっぱりアフォだったか...。
0064デフォルトの名無しさんNGNG
Rubyの配列はそうだっつーか、静的な型の概念が無い言語はみんなそうだろ
0065デフォルトの名無しさんNGNG
覚えるのめんどいんでやっぱCとおなじような文法がいいなあ。
0066デフォルトの名無しさんNGNG
>>65
おまえは C をつかってろ。
0067デフォルトの名無しさんNGNG
>>56
型が決定されるのはどの瞬間にょ?
0068デフォルトの名無しさんNGNG
>>56
>intつまり4バイト

お、オレは釣られない、釣られないぞぉ。
0069名無し@沢村NGNG
Cがいいよ。おれはDelphiやVBの文を見てもさっぱりわからん…
新しい言語はCをつくりかえるのがいい。
ただアセンブラは必須だよ。アセンブラを知らないとコンパイラはつくれないからね。
コンパイラというのはその新しい言語をアセンブラにエクスポートするソフトだからだよ。
0070デフォルトの名無しさんNGNG
>>67
代入の時でいいんじゃない ?
(つーか、>>64 が言うような言語ではそうなってると思うよ。)
0071名無し@沢村NGNG
>>68
intは4バイトだろが、ハゲ!!
でcharが1バイトでshorつーかtwcharが2バイトよ。
これは処理系の常識だぞ!
0072デフォルトの名無しさんNGNG
>>69
> コンパイラというのはその新しい言語をアセンブラにエクスポートするソフトだからだよ。

別にアセンブラを経由する必要はないと思うが。
あと初期の C++ みたいに、別の言語にコンバートする方法もあるし。
0073デフォルトの名無しさんNGNG
>>71
intのサイズは処理系依存。16ビット系コンパイラなら
intは2バイトが多い。
0074デフォルトの名無しさんNGNG
>>73
ネタにマジレス...、スルーしましょうよ。
0075デフォルトの名無しさんNGNG
>>71
int は割り込み命令だろうがハゲ
0076デフォルトの名無しさんNGNG
やっぱり m17n のためにも char は 8 バイトにするべきですよね。
0077デフォルトの名無しさんNGNG
>>73 つーか C なら char 以外のバイト数は処理系依存でしょ。
0078デフォルトの名無しさんNGNG
>>73, >>77
なんかこの話題になると得意満面な奴がでてくるな。
みんな知ってることなのに...。
0079デフォルトの名無しさんNGNG
得意満面だと思っているあたりが。
0080デフォルトの名無しさんNGNG
とりあえず100%ネタなんだからほっとけよ
0081名無し@沢村NGNG
>>73
ハゲ!!アセンブラにコンバートするんだよ!
アセンブラが実行可能ファイルなんだよ!!わかるか?
そのためにアセンブラの知識が必要なんだよ。
まあいずれにしても、逆アセンブラもつくれないやつにはコンパイラをつくるのは無理ってことだ!!
おまいらは、新しい言語をつくる前に、逆アセンブラをつくって言語のしくみの基礎を勉強してみろ!!いいか!!
0082デフォルトの名無しさんNGNG
>>79
> 得意満面だと思っているあたりが。

ぷぷっ。指摘されて恥ずかしかったのかな ?
0083デフォルトの名無しさんNGNG
81がわけわからんアセンブラ = 実行コード
と思ってる?
0084デフォルトの名無しさんNGNG
また、「プ」とか「ぷぷ」とか書いてるアフォが来たぞ
0085動画直リンNGNG
http://homepage.mac.com/hitomi18/
0086デフォルトの名無しさんNGNG
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
#
0087デフォルトの名無しさんNGNG
>>84
オマエモナー。
0088デフォルトの名無しさんNGNG
>>83
>>80
0089名無し@沢村NGNG
>>83
ハゲ!!
実行可能ファイルつーんだよ!つまりPCが理解できるネイティブコードだよ。な?
だからな、新しくつくった言語をネイティブコードに変換しようと思ったらアセンブラの知識がなくちゃ無理だっつーんだよ!
まあDelphiやVBの知識は必要ないが、CとJavaとアセンブラの知識は必要だということよ。新しい言語にはな。おまえ。
0090デフォルトの名無しさんNGNG
沢村=キチガイ
ってことでFA?
0091デフォルトの名無しさんNGNG
なんか得意満面な奴がでてきたな。
みんな知ってることなのに...。
0092デフォルトの名無しさんNGNG
FA。
0093デフォルトの名無しさんNGNG
沢村=>>1
ってことでFA?
0094デフォルトの名無しさんNGNG
なんか得意満面な奴がでてきたな。
みんな知ってることなのに...。
0095デフォルトの名無しさんNGNG
FA。
0096デフォルトの名無しさんNGNG
>>95
ふぁ ?
0097 ◆opMJSavJhM NGNG
>>1です。 # hash文字列あってたかなぁ。。。(^^;

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

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

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

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

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

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

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

単に、自分がそのような必要を感じていないだけでしょうか???
0098デフォルトの名無しさんNGNG
文字は長さ1の文字列・・・それでいいと思います。
ただCの文字型は実質単なる整数型なわけで、便利なこともある。
例えば配列にアルファベットの大文字を格納するには・・・

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

なんてやればいいわけで。わかりいい。
009998NGNG
>>for(i = 0;i < 'Z' - 'A';i++) array[i] = i + 'A';
修正
0100デフォルトの名無しさんNGNG
アスキーコード依存ってのがね
実際的には問題ないけど
0101デフォルトの名無しさんNGNG
EBCDICは死滅するべきだ
0102デフォルトの名無しさんNGNG
>>97
GC (Garbage Collector) 使ってる言語はそれでいいけど、そうじゃない言語だとちょっとね。
char がないと例えば、一文字の結果を返す関数でも、いちいち文字列領域を確保してそのポインタを返すようにしないといけない。
使った後の解放を忘れたり、二重に解放しちゃった時のバグは見つけにくいし。

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

>>98-99
俺なら...
int i;
char *p = array;
for(i = 'A'; i <= 'Z'; i++) *p++ = i;
0103デフォルトの名無しさんNGNG
>>102
文字列に関しては処理系がしっかりメモリ管理もみてやりゃあいい話でないの?
すくなくともポインタを意識するスクリプトはやだなあ。
0104デフォルトの名無しさんNGNG
なんか得意満面な奴がでてきたな。
みんな知ってることなのに...。
0105デフォルトの名無しさんNGNG
>>103
> 文字列に関しては処理系がしっかりメモリ管理もみてやりゃあいい話でないの?
文字型だけ GC つけろと ? だったら全部そうした方がいいよ。

> すくなくともポインタを意識するスクリプトはやだなあ。
スクリプト言語で文字列型と文字型を区別してる奴なんかあるのか ?
0106デフォルトの名無しさんNGNG
スクリプトはお手軽さが命なんであって
メモリ管理まで気にしたくないのが正直なところ
0107デフォルトの名無しさんNGNG
>105
>スクリプト言語で文字列型と文字型を区別してる奴なんかあるのか ?
文字列型と文字型は全然違うと思うが。
0108103NGNG
>>105
> 文字型だけ GC つけろと ? だったら全部そうした方がいいよ。
ごもっともです。
もし、「組み込み型」と「任意にオブジェクト生成を伴う型」にわけるなら、文字列方は、文法的には組み込み型であって欲しいです。
あ、でもこのスレではオブジェクト指向じゃないスクリプトを目指すわけだから、後者の型はないわけか?

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

0109103NGNG
ようわからんくなってきた。Cみたいに文字型は整数型である言語ってほかにあるの?
0110デフォルトの名無しさんNGNG
型なんで全部クラスでいいじゃねーか
0111デフォルトの名無しさんNGNG
「オブジェクト指向でない分かりやすいスクリプト言語」をつくるのがこのスレの趣旨だから、それじゃだめでしょ。
0112デフォルトの名無しさんNGNG
>>111
そもそも、オブジェクト指向って何?っていう話にもどらないか?
0113デフォルトの名無しさんNGNG
情報隠蔽はしない
多態はしない
継承はしない

でもがんばればCでだってできちゃうなぁ
0114デフォルトの名無しさんNGNG
scheme でいいじゃん。
0115デフォルトの名無しさんNGNG
ここには処理系作ったことある香具師はいないみたいだ。
0116デフォルトの名無しさんNGNG
>>1のいうとおりのものなんてperlから正規表現なくせばいいだけじゃん
0117デフォルトの名無しさんNGNG
たとえ、データと処理をまとめなくてもすべての型において、

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

みたいな手順をふまなくちゃならない言語は、かなりオブジェクト指向だと思うな。
0118デフォルトの名無しさんNGNG
>>116
そんなことしたら使う価値がゼロに近いのだが
0119デフォルトの名無しさんNGNG
つーか正規表現は必須だと思う。
0120デフォルトの名無しさんNGNG
正規表現は標準でつけるべきだと思うが、ライブラリレベルでもいいんじゃないかな?
0121デフォルトの名無しさんNGNG
>>107
> >スクリプト言語で文字列型と文字型を区別してる奴なんかあるのか ?
> 文字列型と文字型は全然違うと思うが。

ん ? 具体的にどう違うの ?
(C言語では... とか言わないでね。スクリプト言語で、と限定してあるから。)
0122デフォルトの名無しさんNGNG
>>121
RubyやLISP系言語参照
0123デフォルトの名無しさんNGNG
>>120
俺もそう思う。

言語自体は、できるだけシンプルに。
普通に欲しい機能は標準ライブラリ。
特殊な機能は include とか require なんかで動的に拡張できればいいと思う。
0124デフォルトの名無しさんNGNG
簡単な目標でも掲げた方がいいよ。
・Perlよりも速く動作する。
・組み込み正規表現マッチ。
・充実した文字列操作ライブラリ。
・日本語が通る。
0125デフォルトの名無しさんNGNG
使用目的決めた方がいいね
そうすれば文字型が要るかどうかも決まるはず。

perlやrubyみたいな汎用言語を作るのは困難だろうから、
まずは使う場面を特化したものがいいと思う。
たとえば、Javascript みたいな
0126デフォルトの名無しさんNGNG
>>122
LISP をスクリプトと言うかは微妙だな。
Ruby はよく知らんけど、ぱっとみた所では文字型が見当たらんが、俺の見落としか ?
文字の文字コードを数値として扱うことはできるようだけど、これなら Perl とかでもできるからな。
できたら具体例を出してくれ。
0127デフォルトの名無しさんNGNG
オレとしては
・文字型が組み込みで
・文字列操作が充実してて
・正規表現があって
・文法はALGOL系で
・シンプルで
・ポインタがなくて
・メモリ管理を意識しなくてすんで
・実行が早い(実行時にコンパイル?)

そんなスクリプト。Perlをきれいにまとめたらできるような気がするが。
0128デフォルトの名無しさんNGNG
Rubyに文字型はない気がする。
Perlの文字は長さ1の部分文字列じゃなかったけ?
0129デフォルトの名無しさんNGNG
ファイル書き出しにおいて、テキストでは文字コードと改行、バイナリではエンディアンを任意に指定できるようになってくれると便利だろうな。
どんな言語でも頭の痛い問題だし。
0130デフォルトの名無しさんNGNG
LISPの文字型は\aとか#\aとか。
数値として扱う場合は明示的な型変換が必要。
LISPには、印字表現という決め事があって、S式の入出力(readとwrite)
の結果が同一になることが望ましいとされる。
その辺がどうでもいい場合は、入力だけ文字の印字表現を受け取れる
様にして、内部は数値で統一して扱う処理系もある。
0131名無し@沢村NGNG
新しい言語も魅力あるテーマのひとつだが、
総合コンパイラや言語コンバーターってのも面白そうだ。
Delphi、VB、LISP、C,Java,どれを打ち込んでもコンパイルしてくれたり、相互に変換してくれたりするやつだ。
両方の機能のあるソフトをつくるとすれば、おれだったらまず他の言語をCに変換した上でコンパイルするソフトをつくるね。
これがあると自分のよく知らない言語でソースが公開されていても、知ってる言語に一発変換できるから超便利だよ!!
0132デフォルトの名無しさんNGNG
>131
トランスレータが吐き出したコードなんて読む気しないよ。
0133デフォルトの名無しさんNGNG
>>132
えと、沢村を擁護するのは気が引けるんだけど、
トランスレータの出力は読む必要ないよ。
0134デフォルトの名無しさんNGNG
>> 133
> これがあると自分のよく知らない言語でソースが公開されていても、知ってる言
> 語に一発変換できるから超便利だよ!!

読む気満々だから指摘したまで。
0135デフォルトの名無しさんNGNG
ああそっか。納得。
0136デフォルトの名無しさんNGNG
>>130
LISP は最近触ってないからなぁ...。
一応 Common-LISP とかだとあるみたいね。

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

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

と言うことみたいね。

>>132-135
釣られんなよ。
0137デフォルトの名無しさんNGNG
Io は Unicode に対応してるみたいだけど。OO だから駄目か。

  http://www.iolanguage.com/

pForth とか tiny-scheme とか、小さな処理系を拡張するのが良いんじゃない?
Forth や Scheme は自己拡張能力が売りなんだし、文法も好き勝手変えられる。
0138デフォルトの名無しさんNGNG
>>113
なにをもって情報隠匿と定義するかに、かなり依存するような気もする。
(オブジェクト指向かどうかの区別の件)

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

真面目に考えてしまうけど、オブジェクト指向が至高でないのは、その
定義が(人によって)異るからではないか?
0139デフォルトの名無しさんNGNG
設計する!であって、開発する!でも、実装する!でもないわけだ。




それって、妄想だよな。
0140デフォルトの名無しさんNGNG
>>139
言葉のハジハジに引っかかる香具師発見!
0141デフォルトの名無しさんNGNG
全部オブジェクトで、区切りは空白で、末尾が「.」な言語をください。

"Hello,World!" println.
0142デフォルトの名無しさんNGNG
つか、GC付きのCがあればいいよ。
それでみんな幸せになれる。
0143デフォルトの名無しさんNGNG
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
0144デフォルトの名無しさんNGNG
コンサバはなあ…
0145デフォルトの名無しさんNGNG
>>142
どうやればGC付けられますか?
簡単につくんだろうか?
0146デフォルトの名無しさんNGNG
malloc()とnewを全部GCするようにすればよい。
0147デフォルトの名無しさんNGNG
>>146
どうやればGC付けられますか?
簡単につくんだろうか?
0148デフォルトの名無しさんNGNG
>>147
>>143
0149デフォルトの名無しさんNGNG
>>148
>>144
0150デフォルトの名無しさんNGNG
コンサバって何?
0151デフォルトの名無しさんNGNG
保守的な
0152>>1を無視してアイデアを書き込む人NGNG
endless {
 [RES[
 >>150
 そんなこと俺が知るか!
 ]RES] println.
}

「endless」は関数呼び出しがいいな。値も返すようにして。
「{ ... }」は単に、関数呼び出しの引数を複数行で書く方法って考えるのはどうだろうか。
この場合だと、endless関数にcode型の構造体の配列が渡るってことで。
「[RES[ ... ]RES]」はヒアドキュメント。これだと、Perlの「<<RES ... RES」より開始と終了がわかりやすいかと。
0153>>1を無視してアイデアを書き込む人NGNG
あ、わかると思うけど、
ヒアドキュメントのインデントは、開始トークンのインデント分
自動的に削除されたほうが便利かと。
0154デフォルトの名無しさんNGNG
わかんねーよ
0155デフォルトの名無しさんNGNG
conservative gc程便利なものも無いわけで。
0156デフォルトの名無しさんNGNG
endless {
 [RES[
 >>150
そんなこと俺が知るか!
]RES] println.
}

と書いたらどうなるの
0157デフォルトの名無しさんNGNG
>>156
ずれてるときにはインデントを無視しないほうが、
プログラマの意図に沿うのではないかと思ったり思わなかったり。
0158デフォルトの名無しさんNGNG
>>150
んなこと俺が知るか!
になります
0159デフォルトの名無しさんNGNG
>>148
GCって結局malloc()をGCのmalloc()に置き換えれば済む話なんですか?
初心者でスマソ
0160デフォルトの名無しさんNGNG
>>159
>>143
0161デフォルトの名無しさんNGNG
endless {
put ">>150
そんなこと俺が知るか!
" ;
}

// これでいいじゃん
0162デフォルトの名無しさんNGNG
>>160
英語にがて何だけど、結局のところ
malloc()->GC_malloc()
free() -> N/A
と理解したんですけど、これでいい?
0163デフォルトの名無しさんNGNG
>>162
freeもあるよ。一応。
0164デフォルトの名無しさんNGNG
一回一回malloc/freeの対を呼ぶよりも、
確保しまくって、GCで一気に開放する方が効率が良い。
というかmalloc/freeを直呼びする方式は元々遅い。
ただしGCはゴミ集めで停止するリスクがある。
それでもGCの速度に太刀打ちするには、
boost::poolなんかを駆使する必要がある。
0165デフォルトの名無しさんNGNG
>>164
ええーそうかー?
0166デフォルトの名無しさんNGNG
>>165
そうだよ
0167デフォルトの名無しさんNGNG
少なくともOSのメモリ確保アルゴリズムは原始的だから、動的なメモリをちまちま要求すると性能は極端に低下するよ。
Cが静的にメモリを取る設計なのはそのため。しかもこの事実はK&R以前の時代から本質的に変わってない。
だから処理系に動的メモリ管理用のロジックを組み込むことは有益かと。
少なくとも生APIよりは。
0168デフォルトの名無しさんNGNG
>>167
brkとかsbrkのことなら、確かにユーザが直接呼び出すんじゃなく、
ライブラリから呼び出すことを前提にしてる気がする
というか、そのためのライブラリだから malloc を使えばいいじゃん
GCの話は別として
0169名無し@沢村NGNG
おまいらよ言語の設計は、字句解析、構文解析、意味解析、コード生成、最適化などの各ステップからなるが、
実はおれはな、コード生成つーのがさっぱりわからんのよ。
まあ最適化の仕方もわからんが、最適化はせんならせんでいいからな…。
しかしコード生成だけはせんとどうしようもないだろ?
コード生成つーのはアセンブラ言語に変換すること?違うよな?
アセンブラ言語に変換だったら時間かければ泥縄式のコード書けんこともないが、アセンブラ言語に変換することじゃないよな?
アセンブラ言語のもととなる数値に変換することだよな?つまりネイティブコードに変換することだよな?
ネイティブコードにはどうやったら変換できるの?つーかネイティブコードが詳しく解説してあるサイト知らない?
ネイティブコードの解説コピペしようと思って、さがすがなかなか見つからんのよ。
0170デフォルトの名無しさんNGNG
>>169
バカ?
アセンブラ言語に変換できりゃ、コードに変換なんて猿でもできる。
単純にアセンブラが分らんのだろ?
素直に言っちまえ。
0171デフォルトの名無しさんNGNG
沢村は無能なんだから喋るな。
0172デフォルトの名無しさんNGNG
>>170-171
相手するなよ。
0173デフォルトの名無しさんNGNG
この手のスレは定期的に立っては何の成果も上がらず消えていくな……
0174名無し@沢村NGNG
>>170
はげ、アセンブラ言語に変換できてもネイティブコードには変換できんよ。
アセンブラ言語で、
mov ah,09h
mov bh,0Bh
add ah,bh
はネイティブコードでどう書くのよ?
それがわからんと変換できんだろ?
つまり新しい言語の作成にはネイティブコードのマニュアルが不可欠だということだよ。

まあ新しい言語の作成で必要なのは極端にいえばコード生成の部分だけだな。
それさえわかれば、字句解析や構文解析なんかしないでソースコードから直接泥縄式に変換できるからな。
0175デフォルトの名無しさんNGNG
>>174
コード対応表見れバカ
一対一対応で分らんとか抜かすやつは逝ってよし
0176名無し@沢村NGNG
>>175
コード対応表ってサイトで見れるのか?
どこで見れるよ?コード対応表は無料か?
0177デフォルトの名無しさんNGNG
>>176
チップメーカーのサイトなり、チップ本なり買え、死んでしまえ。ドアホ。
マニュアル見たことねえのがバレバレだぞ。
0178デフォルトの名無しさんNGNG
手軽に手に入るアセンブラってないの?
そんなに自前のバイナリ化ここだわらなくてもいいと思うけど。
0179名無し@沢村NGNG
>>177
チップメーカー?わからん?
コードはメーカーによって違うのか?
つまり自分が使ってるPCのメーカーのコードに変換するように設計した言語は他のメーカーのPCでは使えないことになるな…。
富士通のPCを使って開発した言語は富士通のPCでしか使えないわけだ。
MSがつくったコンパイラなんかはどうやって機種の互換性を出してるのよ?
0180デフォルトの名無しさんNGNG
>>179
コンピュータの基礎からやりなおしなさい。論外、もう終り。
0181デフォルトの名無しさんNGNG
>>179
>コードはメーカーによって違うのか?
当たり前、マックとWinに互換があるか?
>MSがつくったコンパイラなんかはどうやって機種の互換性を出してるのよ?
互換OSの仕事、コンパイラは関係ない。
0182名無し@沢村NGNG
>>178
バイナリ化ができるならアセンブラ化するよりもバイナリ化するにこしたことはないぞ。
というのもアセンブラがあってもソースコードをアセンブラ言語に変換する作業は不可欠だからな…。
その上でアセンブラを起動してバイナリ化しなくちゃプログラムは実行できんわけだ。
つまりソースを書き終えて「コンパイル」ツールバーを押した時点で、
ソースをアセンブラ言語に変換→アセンブラの起動という二つの作業を内部で実行するようにしなくちゃいかんということだ。
それってちょっとドン臭いよな。
やはりバイナリ一発変換のほうがスマートで知的らしいよ♪
0183名無し@沢村NGNG
>>181
はげ!!
マックとWinは互換性はねーよ、ハゲ!!
だが、MSがつくったコンパイラは同じWinであれば富士通のでもNECのでもHewletPackardのでも動くだろ!!
チップのコードが違うのにだよ…それが不思議なんだよな?
0184デフォルトの名無しさんNGNG
>>182
> やはりバイナリ一発変換のほうがスマートで知的らしいよ♪

そか?
Eiffelなんかだと、他言語へのトランスレーターになってたりするし。
0185デフォルトの名無しさんNGNG
名無し@沢村よ、あまりの無知ぶりが見ているこっちが恥ずかしいからやめれ、頼むわ。
0186デフォルトの名無しさんNGNG
>>183
そこで上げた環境で動くのは、同じIntelのCPU(もしくは、互換品)使ってるからだろ。
0187デフォルトの名無しさんNGNG
お前等釣られ杉。
0188デフォルトの名無しさんNGNG
>>187 沢村
0189デフォルトの名無しさんNGNG
読んで判り易くするには、やっぱり日本語化する事でしょ。
0190デフォルトの名無しさんNGNG
>>189
そんなことしたら、ソースコードが混沌として読みたくなくなっちゃう
0191デフォルトの名無しさんNGNG
>>190
ひまわりやTTSねおを根本から否定する発言だな!
0192デフォルトの名無しさんNGNG
ここで 帰値が倍精度実数の関数 サイン(度:倍精度) を定義します
 πは倍精度のローカル変数です

ここから実装部です
 π ::= PI ();
 帰値 := sin(度*π/256);
ここまで実装部でした
0193名無し@沢村NGNG
>>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のマニュアルをダウンロードしとけば下位互換性があるはずだから大丈夫だろうけどな…
拡張命令みたいなのはとりあえず知らなくても問題なさそうだな…
拡張命令って新しいから互換性ないからな…
それにしてもずいぶんサイズがでかくてイヤになりそうだが、外れなく一発でおれがコード対応表をダウンロードできるように教えてくれないかな?


0194デフォルトの名無しさんNGNG
alpha版のWinはもう無くなったんだっけ?
0195名無し@沢村NGNG
>>191
ひまわりやTTSの話はするな!
ちゃんと世界で話題になるような新しい言語をちゃんと設計してつくれ!!
子供のようなことを考えちゃダメだ。
0196デフォルトの名無しさんNGNG
ちゃんと世界的に話題になるような言語・・・
アラビア語プログラミング言語とか?
0197名無し@沢村NGNG
>>196
ちゃかすなハゲ!!
何がアラビア語だ!!
いいか世界で話題になるような言語とは世界の多くの人に使ってもらえるような言語ということだ。
チョンにも土人にもな。
0198デフォルトの名無しさんNGNG
>>197
スクリプトだぞ? 別に世界中で使ってもらう必要などない。

日本のみで、便利かつ判り易ければそれでいいんだ。
0199デフォルトの名無しさんNGNG
↑Ruby厨
0200200NGNG
「世界の多くの人に使ってもらう」のに wchar が 2 バイトとか言ってんのね。
0201名無し@沢村NGNG
>>198
>日本のみで、便利かつ判り易ければそれでいいんだ。

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

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

0202187NGNG
アフォをスルーできないヴァカばっかりだな。
0203デフォルトの名無しさんNGNG
国際化なんておいといて、まずは使えるものを作るべきだろう
やはり用途を絞るべき
汎用的なのは Perl があれば足りてる
0204デフォルトの名無しさんNGNG
沢村のアフォがいるのか
道理で透明あぼーんが多いと思った
0205デフォルトの名無しさんNGNG
とりあえず過去ログから分かった事。

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

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

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

>おれはこうして少しずつK言語を設計していくからな。このスレでな。
>いままでのことでわからないことがあったら、何でも聞いてくれ!
0206デフォルトの名無しさんNGNG
× flort
○ float
0207デフォルトの名無しさんNGNG
× Soralis
○ Solaris
0208 ◆opMJSavJhM NGNG
>>98
なるほど、charの件ですがこんなことも(多少、行儀悪いですが)出来ますね。
言われてみれば、時々活用することもあるようです。(^^;

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

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

文字=長さ1の文字列

としても良いようですね。
0209 ◆opMJSavJhM NGNG

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

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

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

これはスクリプト系では、あまりにも当たり前の使い方なんでしょうが、大変
便利だな。。。といつも関心しいます。
0210デフォルトの名無しさんNGNG
>>209
その代償として変数名の間違いに気付くのが遅くなるが
0211デフォルトの名無しさんNGNG
>>209

Ruby!!
0212デフォルトの名無しさんNGNG
>>209
強型言語でもデータに型は持ってるでしょ。
データに型がなかったらキャストもいらなくなってしまう。
0213デフォルトの名無しさんNGNG
>>209,211
ウホ!いい文法!
0214デフォルトの名無しさんNGNG
>>212
>データに型がなかったらキャストもいらなくなってしまう。

それは違うかと。 キャストはコンパイラを騙すためにするもの。 静的な型を解決するもの。
0215デフォルトの名無しさんNGNG
>>212
動いてしまえば、すべてビット列
0216デフォルトの名無しさんNGNG
>>213
rubyマンセ〜の方?すれ違いかも?
0217デフォルトの名無しさんNGNG
>>213

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

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

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

必要なデータ型として

・空を表す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!!"
としても、とりあえず対応出来るように思えます。
0219デフォルトの名無しさんNGNG
あらら、tabは反映されないのね。。。(^^;
0220デフォルトの名無しさんNGNG
>>218
そのレスでちょっとレベルが見えたけど、
ちゃんと基礎からやった方がいいよ。
このまま進めると、車輪を再発明し続ける事なる。
0221デフォルトの名無しさんNGNG
s/なる/になる/
0222デフォルトの名無しさんNGNG
>>218
なんで、struct なの union じゃダメなの ?
あと読み出す時はどうするの (どの型が入っているかわからんでしょ ?)
...
つーか、>>220 の言う通りだと思う。
0223デフォルトの名無しさんNGNG
>>222
> あと読み出す時はどうするの (どの型が入っているかわからんでしょ ?)
メンバ type で判断するんでしょ?

まあ >>220 の言う通りだと思うけど。
0224デフォルトの名無しさんNGNG
>>223
失礼、正直見落とし。
0225デフォルトの名無しさんNGNG
name[14]ってのは一体何だ?
0226デフォルトの名無しさんNGNG
>>220
いや、おはずかしい!

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

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

don't invent the wheels again...

よく聞かされる表現です。とはいえ、既に定着しつつあることについても、
あえていろいろとトライしてみることも(時には)よいことかもしれません。
0227デフォルトの名無しさんNGNG
例外にぬるぽは入れてね。
0228デフォルトの名無しさんNGNG
>>227
当然!
0229デフォルトの名無しさんNGNG
>>226
トリップが無いが226=218だな?
君は見当違いの解釈をした。
>>220はやんわりと「出直して来い」と言っているのだよ。
「あえて」なんて言い訳はクソにもならない。
0230デフォルトの名無しさんNGNG
>>226
そういう問題ではない、ヤバイ
0231デフォルトの名無しさんNGNG
トライするのは勝手だが、ここでやるなって事ね。
0232デフォルトの名無しさんNGNG
いっそのこと書式付き文字列型作ってよ。
ソースはRTFで書く。

誰か物好きが使うかもしれん。
0233動画直リンNGNG
http://homepage.mac.com/hitomi18/
0234デフォルトの名無しさんNGNG
文法チェックするやつ、ついでに作ったら?
http://www4.org1.com/~kitt/labo/pc/html/index.html
見たいなやつ。スクリプトだと詳しいエラーが出ないからよくわからず
部落ら化していたりして・・・
0235デフォルトの名無しさんNGNG
http://www4.org1.com/~kitt/labo/pc/html/favo.gif

すごい配色だな。
0236デフォルトの名無しさんNGNG
>>235
全然凄くない。俺なら簡単に出来るね。
0237デフォルトの名無しさんNGNG
趣味が悪いって意味じゃないの?
0238 ◆opMJSavJhM NGNG

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

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

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

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

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

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

程度でした。

シンプルだから早いのか、これからどんどん遅くなっていくのか分かりませんが、
案外素人の作った車輪でもそこそこ転がるのかもしれませんね。
0239デフォルトの名無しさんNGNG
>>238
詳細が分からんことには、実行速度などという実装に大きく依存することには
コメントしようがない。

ただ、一般に組み込み関数はperlのほうがrubyよりも速いと言われてる。
>>238もその手の延長のような気がする。
0240デフォルトの名無しさんNGNG
>>239
ネタにマジレスすんなよ。

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

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

なんか作れるわけないと思うよ。
0241デフォルトの名無しさんNGNG
>>240
> >>218 みたいなこと書いてる奴が...
> なんか作れるわけないと思うよ。
ま、そりゃそうだ。
0242デフォルトの名無しさんNGNG
つうか実行時間がなんでsec単位なんだよ
0243デフォルトの名無しさんNGNG
単位よりも有効桁数の少なさが…
0244デフォルトの名無しさんNGNG
しかも、sec単位の精度というオチつきだったりするか?
0245デフォルトの名無しさんNGNG
実はストップウォッチ片手に計ったと見た。
0246デフォルトの名無しさんNGNG
ぬるぽの実装まだー?
0247デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/unix/1019926525/311-312
0248 ◆opMJSavJhM NGNG
おっと失礼!

確かに、あまりにもアバウトな表示ですね。(^^;
各スクリプトのソースと、実行時間の詳細を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
0249デフォルトの名無しさんNGNG
# すいません、行が多すぎるらしく分けました。

==> 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


と、まぁ、実にたわいもないプログラムです。(^^;
で、次は結果です。
0250デフォルトの名無しさんNGNG
これらは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
0251デフォルトの名無しさんNGNG

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

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

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

やる気さえあれば、言語処理系の専門家でなくとも、多少はスクリプト処理系
「らしいもの」を真似てみることができるのかもしれません...
0252デフォルトの名無しさんNGNG
その if とか while とかはネスト出来るの?
0253デフォルトの名無しさんNGNG
もちろん可能です。
あと、どこかのスレッドで誰か様が提案されていたようなflowを組み込んでみたい
と思っています。(こんな感じの奴です↓)

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

でも、なかなか時間がとれなくって。。。
ちょっと昼休みとかにいじったりしています。
0254デフォルトの名無しさんNGNG
かなりperlやrubyに不利なテストだな。
もっとそれぞれの言語にあった書き方と言うものがあるのに。

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

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

まあruby版はxが最後一回加算されないが。
0255デフォルトの名無しさんNGNG
>>254
たいして代わらんだろう?
0256デフォルトの名無しさんNGNG
ところで、perl以外の汎用スクリプトってunix系では無いよねぇ。。。
(除くruby)
0257デフォルトの名無しさんNGNG
>>254
なるほどrubyは5倍程早くなるようだなぁ。。。(w
0258デフォルトの名無しさんNGNG
>>257
つまり、2倍程遅くなると。。。(w
0259デフォルトの名無しさんNGNG
tclは?
0260デフォルトの名無しさんNGNG
>>259
何剃れ?
0261デフォルトの名無しさんNGNG
>>1
VBScriptがあるじゃないか。
0262デフォルトの名無しさんNGNG
オブジェクト指向ごときで抵抗があるのに言語がつくれるんだろうか?
0263デフォルトの名無しさんNGNG
Pythonは?
0264デフォルトの名無しさんNGNG
>>256はunix使っていないに一票(もしくはよほどのロートル)
0265デフォルトの名無しさんNGNG
ロートルというよりむしろトロール
0266デフォルトの名無しさんNGNG
>>256はムーミンということでよろしいか
0267256NGNG
もう20年近くUNIX系つかってますが、何か?
0268デフォルトの名無しさんNGNG
ロートルの方だったみたいね。
0269デフォルトの名無しさんNGNG
各言語の非汎用っぷりを教えてください
0270デフォルトの名無しさんNGNG
でも、オブジェクト指向でないものとすれば確かに汎用スクリプトなんてperl以外に無いぞ
0271デフォルトの名無しさんNGNG
>>270
awk は ?
0272デフォルトの名無しさんNGNG
>>
tcl, rexx, icon ....
腐るほどあるわけだが。
0273デフォルトの名無しさんNGNG
EMACS LISPは?
0274デフォルトの名無しさんNGNG
汎用ってなによ?
0275デフォルトの名無しさんNGNG
>>274
はん‐よう【汎用】

はんよう
広くいろいろの方面に用いること。
0276デフォルトの名無しさんNGNG
>>271
AWKは激しく汎用ではない罠〜(w

例えば、どうやって2つのファイルをマージできる?
0277デフォルトの名無しさんNGNG
>>276
よく考えたらそうやね。
汎用テキスト処理言語だな。

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

gawk なんかだと、getline var < file という構文で直接ファイル入出力ができるので、マージぐらいは大丈夫。
0278デフォルトの名無しさんNGNG
でも、そのgetlineって使ってみると分かるが、ほとんど使えんぞ!
0279デフォルトの名無しさんNGNG
>>272
どこが、汎用だ?(w

>>273
えらい範囲の狭い環境だなぁ?
0280デフォルトの名無しさんNGNG
PerlはOOPLだよ

WebProg板にゆくと、OOを理解できないやつはPHP厨だとPerl厨に馬鹿にされます。
0281デフォルトの名無しさんNGNG
>>279
Emacs Lisp使ったことないだろ?
0282デフォルトの名無しさんNGNG
俺様流中間言語
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
0283279NGNG
>>281
洩れはvi系だからね。。。(w
でも、言語を見たことはある。
記号のオンパレード!
0284名無し@沢村NGNG
おまいらよ、言語をつくるのはいいがコンパイラをつくっただけじゃ言語をつくったことにならんぞ!
メモ帳に言語を打ち込んでDOSコマンドでそれをコンパイルするなんてのじゃ誰も使わんぞ。
やはり言語はIDEにしなくちゃいかん。それとRADツールとデバッガもないといかん。チュートリアルやサンプルも豊富にないといかん。
ライブラリやコンポーネントも充実していてWin32APIも簡単に使えるようでなくちゃいかん。
それだけやってはじめてやっと言語を開発したことになるのよ。
まあできればExelやIE程度のソフトが3日で開発できるくらい便利にしてあれば言うことはないよ♪

0285デフォルトの名無しさんNGNG
>>283
> 記号のオンパレード!
それはPerlのほうが…
0286デフォルトの名無しさんNGNG
>>284
言語と開発環境を一緒にするな。

> やはり言語はIDEにしなくちゃいかん。
むちゃくちゃなことを言っていることに気づいてくれ
0287デフォルトの名無しさんNGNG
マルチ、ネタでしょ、無視
0288デフォルトの名無しさんNGNG
>>286
>>言語と開発環境を一緒にするな。

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

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

0289デフォルトの名無しさんNGNG
>>286
沢村に釣られてることに気づいてくれ
0290デフォルトの名無しさんNGNG
>>288
そんなものは飾りです(ry
0291デフォルトの名無しさんNGNG
スクリプト言語とはほど遠い話題が進行中
0292デフォルトの名無しさんNGNG
沢村を沢村であると見抜ける人でないと(新しいスクリプト言語を設計するのは)難しい
0293デフォルトの名無しさんNGNG
http://www.geocities.co.jp/Milkyway-Lynx/4133/dqn/dqn.html
Linux板で見つけた
C++製でOO厨にも読みやすいZO!
0294デフォルトの名無しさんNGNG
>>293
沢村のサイトか?
悪趣味だな
0295デフォルトの名無しさんNGNG
粉末たんは暇つぶしに読むと面白いよ。
0296デフォルトの名無しさんNGNG
perlが暗号っぽくなるのは変数を使うときに必ず$がいるからだよねぇ?
これってshellの影響ですか?
0297デフォルトの名無しさんNGNG
コード中の正規表現も、結構原因かもね
0298デフォルトの名無しさんNGNG
>>296
$は関係ないだろ。
0299デフォルトの名無しさんNGNG
省略できすぎるからだろ。
0300デフォルトの名無しさんNGNG
$は省略できるんですか???
ウッソ〜???
0301教えてNGNG
なんか良い Cシェルのプログラムないですか?教えてね。
0302デフォルトの名無しさんNGNG
>>278
?? 一応仕様どおり動きますけど。
使いにくいのは認めるけどね。

>>300
せっかくの 300ゲトーなのに釣りかよ。
0303_NGNG
〜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
0304教えてNGNG
お願いします!!
0305デフォルトの名無しさんNGNG
>>304
スレ違い。
0306教えてNGNG
どこに行けばいいですか?
0307デフォルトの名無しさんNGNG
そもそも、パンの焼き方を知りたいのか、空の飛び方を知りたいのかも解らん。
0308教えてNGNG
ふーん。
0309デフォルトの名無しさんNGNG
>>306
そのくらい自分で調べてくれ。
0310教えてNGNG
調べたけどわからないの。
そのくらい教えてよ。
0311デフォルトの名無しさんNGNG
>>310
何がしたいんだよ。
だいたい「良い」 Cシェルのプログラムなどというものはない。
0312教えてNGNG
すいません。
初心者向けの簡単なってことです。
0313デフォルトの名無しさんNGNG
もしかしてこれを読みたかったの?
「なぜ csh でプログラムを書くのが良くないのか」
http://www.klab.ee.utsunomiya-u.ac.jp/~hiroki/csh-whynot.euc
0314教えてNGNG
いや、そーじゃなくて実際に書きたいのです。
0315デフォルトの名無しさんNGNG
>>314
だから、いい加減うざいよ、氏ね
0316教えてNGNG
氏ねだって。ははははは。
お前らオタクにゃ用はねーよ。
そんなもん本気で勉強するかってーの。
0317デフォルトの名無しさんNGNG
お前たち!
信長はどーした!
俺は待っているんだぞ!
0318デフォルトの名無しさんNGNG
信長?
0319デフォルトの名無しさんNGNG
>>318
信長。 http://pc2.2ch.net/test/read.cgi/tech/1047230229/
0320デフォルトの名無しさんNGNG
暇人ですね。
0321デフォルトの名無しさんNGNG
わけのわからんスレになってきたな
0322デフォルトの名無しさんNGNG
沢村みたいなやつに関わるとこうなる
この板、荒らし耐性無さすぎ
0323300NGNG
$は省略出来んですね。
勘違いスマソ
0324デフォルトの名無しさんNGNG
しかし、なんでパールはあんなに記号暗号じみてるんだ???
0325デフォルトの名無しさんNGNG
コード中の正規表現が、結構原因かもね
0326デフォルトの名無しさんNGNG
>>325
いいえ。違います。
0327デフォルトの名無しさんNGNG
C風味の文法 foo($bar, $baz);
に無理やりsh風味の演算子 s/foo/bar/;
を持ち込んでいるせいだあとズボラするための演算子とか
qq(foo bar);
m{^hoge}ego;
0328デフォルトの名無しさんNGNG
sh に演算子なんか無い。
0329デフォルトの名無しさんNGNG
ex だろ。
0330デフォルトの名無しさんNGNG
>>328
[122]: uname -smr
FreeBSD 4.7-RELEASE i386
[123]: man sh | grep 演算子
シェルにとって特別な意味を持つ特定の文字列 ( ``演算子'' と呼ばれるもので
す) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリダ
イレクト演算子の 2 種類があります (これらの意味については後述します)。以
制御演算子:
リダイレクト演算子:
引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味
予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子の
制御演算子がある場合は、そのあとの最初の単語) が予約語でない場合、シェル
環境に代入します。リダイレクト演算子とその引数 (後述) を取り除き、あ
ここで、 `redir-op' は前述したリダイレクト演算子のいずれかです。これらの
演算子をどのように利用するかの例をいくつか以下に挙げます。
適用します。演算子が ( ``<<'' でなく) ``<<-'' の場合は、 here-doc-text の
複合コマンドは、単純コマンドの組み合わせで作ります。制御演算子または予約
パイプラインは、複数のコマンドを制御演算子 `|' によってつないだものです。
クト演算子で指定されたリダイレクトを処理する前のことだと考えて下さい。
短絡リスト演算子で後述) を順次実行します。 ``&'' は、直前の AND-OR リスト
コマンドが制御演算子がアンパサンド (&) で終了している場合、シェルはそのコ
``&&'' と ``||'' は AND-OR リスト演算子です。 ``&&'' は最初のコマンドを実
0331デフォルトの名無しさんNGNG
>>327
> に無理やりsh風味の演算子 s/foo/bar/;
それはsed
0332デフォルトの名無しさんNGNG
>>327
つぅかそれPerl
0333デフォルトの名無しさんNGNG
>>332
馬鹿
0334デフォルトの名無しさんNGNG
ってかスレタイ読めよ、それが新しいスクリプト言語じゃねえのか?
0335デフォルトの名無しさんNGNG
つーか1が終わってる・・・
0336デフォルトの名無しさんNGNG
perlは、流行らんでしょう?
いまは、perlしか無いからいやいや使ってるだけでは?

ruby/pythonはオブジェクト指向が癌
0337デフォルトの名無しさんNGNG
釣 り で す か ?
0338popoNGNG
ネーミングを何にするか・・これが悩みだよ。
0339デフォルトの名無しさんNGNG


 t c l / t k

新 時 代 の 予 感 

0340デフォルトの名無しさんNGNG
GNU's Not Unix
みたいな再帰モノ

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

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

この辺からどう?
0341名無し@沢村NGNG
おまいらよ、新しいスクリプト言語を設計はネーミングがすべてだよ。
ネーミングが決まった時点で、新しいスクリプト言語の設計は完了したといえるな。
0342デフォルトの名無しさんNGNG
まんこ
0343namingNGNG
鉱物物だったら

・花崗岩
・玄武岩

あたりが、堅牢そうなイメージがあっていいんじゃないかな?
0344サンプルですNGNG
★大人になってから★
http://jbbs.shitaraba.com/travel/832/kenbetu.html
0345デフォルトの名無しさんNGNG
スクリプト言語作るのって楽しい? > 作ってる香具師ら
0346デフォルトの名無しさんNGNG
黒曜石
なんてかっこよくない?>343
0347デフォルトの名無しさんNGNG
キモチワルイ
0348デフォルトの名無しさんNGNG
黒曜石は切れるがもろいぞ
0349デフォルトの名無しさんNGNG
>>345
楽しいぞ!
0350343NGNG
おお、かっこいいな!ソレ
鉱物では、

ウンモ

っていうのもあるが、必ずいらんレスが付きそうだなぁ(w
0351bloomNGNG
http://homepage.mac.com/ayaya16/
0352デフォルトの名無しさんNGNG
国別でも、同様だ

オマーン

という国名があるが、(以下...
0353デフォルトの名無しさんNGNG
ぬるぽでええやん
0354デフォルトの名無しさんNGNG
>>353
いかにも「2ch製」って感じでかっこわるい
0355デフォルトの名無しさんNGNG
じゃあ、モナーでいいじゃん
0356デフォルトの名無しさんNGNG
モナド
0357デフォルトの名無しさんNGNG
拡張子とかも考えないと
0358デフォルトの名無しさんNGNG
.exe
がいいかな
0359デフォルトの名無しさんNGNG
.pu
0360デフォルトの名無しさんNGNG
で、
1、テキストインタプリタ実行
2、中間言語吐出型、中間言語インタプリタ実行
3、ネイテブバイナリ吐出型実行
のどの方式でやるの?

0361デフォルトの名無しさんNGNG
2と3の中間ってところがいいと思うのですがいかが?

2だと、仮想VMとか仮想CPUみたいなものをつかうけど、
スクリプトと限定するんだから、ちょっとオーバースペックと言う気がする。
0362デフォルトの名無しさんNGNG
>>361
Javaか.NETでいいじゃん。終了。
0363デフォルトの名無しさんNGNG
ちょっとした処理にはインタプリタでやって重い処理には
コンパイルして機械語にも変換できるというやつきぼんぬ。
0364デフォルトの名無しさんNGNG
ocaml
0365デフォルトの名無しさんNGNG
LISPも機械語コンパイラあるだど
0366デフォルトの名無しさんNGNG
>>361 普通は 1,2,3の順に実装は手間になりますよ。

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

 1はpascalのPCODEからJAVA-VMから一般的な手法
 2の方が面倒、領域のムダ ただし機械語を吐き出す時には効率的でコンパイラに利用されている
0367デフォルトの名無しさんNGNG
4つ組って何。
かなり限定的な話してる?
0368デフォルトの名無しさんNGNG
4つ組というのは
 命令のスタイルを のように3番地コード a <- b + c に分解する方式です
 一つの命令を a,b,+,c の4つのメンバーに別けるわけです
 命令、代入先、演算ソース1、演算ソース2 ですね。

スタックマシンよりも現実のCPUに近い表現とも言えます。
0369デフォルトの名無しさんNGNG
中間言語では、3つ組よりも4つ組の方がいいんだっけ?
0370デフォルトの名無しさんNGNG
3つ組は4つ組から代入先を除いたものです。
計算結果は、そのコード自体が保持してるという感じですね。
ですんでインタプリタ実行させるには向いてないと思います。
0371デフォルトの名無しさんNGNG
Paul graham の arc を勝手に作ってみるとか。
0372デフォルトの名無しさんNGNG
三つ組みも四つ組も最適化を行うコンパイラ向きだと思う。
中間コードを実行するならスタックマシンの方がいいよ。
0373デフォルトの名無しさんNGNG
では次の選択肢

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

独自に作成してもスタックマシンだと誰が設計しても50歩100歩。
JAVA-VMをマネれば、作成した中間言語をそのままJAVA-VMで動かしたりと便利だとは思うけど?
0374デフォルトの名無しさんNGNG
真似るのと JavaVM のサブセットを作るのとは別かと。
0375デフォルトの名無しさんNGNG
そうですか。では独自バイナリで行きますか。 まあそんな苦労も楽しみの一つですね。
0376デフォルトの名無しさんNGNG
最低必要なのはメモリアクセス系・2項演算・1項演算・分岐・JSR/RETです

このスレで既に 中間言語を発表してるのは >>282 だけのようですが、
>>282ではループ用の専用命令を追加してるようです
ループ用の専用命令を追加しますか?
0377デフォルトの名無しさんNGNG
テキストインタプリタ実行でいいじゃん
0378デフォルトの名無しさんNGNG
下手糞な設計するぐらいならアセンブラ吐いた方がマシ
0379デフォルトの名無しさんNGNG
>>368
詳しい説明TNX。
実際のところ「4つぐみ」の実装はそれほど難しくないのでは?

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

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

の分解部分がちょっと面倒そうだけど、あとは結構らくかも?
0380デフォルトの名無しさんNGNG
>>376
中間言語なんだろうけど、それって中間よりだいぶ下に位置してないですか?
(つまり、機械語よりってことです。)
0381デフォルトの名無しさんNGNG
つーか>>366>>368>>376は参考書の丸写しだろ
0382デフォルトの名無しさんNGNG
命令の種類を考える前に、命令長とメモリモデルを考えた方が良くね?
0383デフォルトの名無しさんNGNG
>>377
ギコbasicがテキストインタプリタ実行なんで、それよりはがんばりたいですね。

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

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


>>382
中間言語はバイトマシンが殆どです。
1バイト目で命令を識別し、その後に必要なバイト列が続くという事ですね。
メモリモデルは、最初は32bit固定少数点単一、後から浮動小数点等を増やしては?
0384デフォルトの名無しさんNGNG
>>376
のループ専用命令を入れるかどうかですが、
専用命令があると解釈処理が楽になります。
for分の のような処理で 
現在の実行番地の次をスタックに詰むという命令があれば 
 初期値を設定して push(実行番地)
 他の処理
 goto (pop) で済みます。

ただし、このfor文は1回も実行させないという事が出来ません。
0385デフォルトの名無しさんNGNG
>>383
逆ポーランドですか。。。どうも苦手だなぁ。。。
むしろ、最高プリオリティをもつ4つ組部分のみを処理するルーチンを書いて、
リカーシブコールにしたほうが、現場っぽくてよくないですか?

あと、

固定少数点なんて必要でしょうか?
浮動少数点のみで十分とも思いますが。。。
0386デフォルトの名無しさんNGNG
中間言語より、肝心のスクリプト言語を設計しろよ
0387デフォルトの名無しさんNGNG
LISPでいいよ
0388デフォルトの名無しさんNGNG
スタックマシンだからといって逆ポーランドとは限らないわけだが。
つーか、中間コードだから、ただのバイト列だろ。
0389デフォルトの名無しさんNGNG
シンプルな処理系がいいと思うよ。

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

0390デフォルトの名無しさんNGNG
>>389
あまりにもシンプル過ぎないかい?
0391デフォルトの名無しさんNGNG

つぅかバッファオーバーランするスクリプト言語なんてイラネ。
0392デフォルトの名無しさんNGNG
じゃあもう全部Variant型でゆくか
0393デフォルトの名無しさんNGNG
まあ、全部 Variant って言うスクリプト言語は多いからな。

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

| 整数型
| 文字列型

| 1次元配列

は必須として、

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

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

| ...

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

俺が思うに、どうせ便利スクリプトは既製の色んな中から選べばいいんだから
自作するなら、自作アプリに簡単に組めて、そこそこ速度も出てみたいなのが欲しいな。
0395デフォルトの名無しさんNGNG
取りあえず>>394は無視して話し続けるか。
0396389NGNG
ガ〜ン・・・・トボトボ
0397389NGNG
とりあえず、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
0398389NGNG
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
0399デフォルトの名無しさんNGNG
とりあえず、ひまわりのソースをベースにするか
0400デフォルトの名無しさんNGNG
文字型はイラネ。
オブジェクト型もイラネ。
通貨型もイラネ。
ポインタもイラネ。
0401デフォルトの名無しさんNGNG
>通貨型もイラネ。
こんなのを組み込み型にする言語はVBだけ
0402デフォルトの名無しさんNGNG
シンボル入れれ。
0403デフォルトの名無しさんNGNG
>>401
Delphiにもある罠。
0404デフォルトの名無しさんNGNG
Hue
0405デフォルトの名無しさんNGNG
NScriptor最高!
0406デフォルトの名無しさんNGNG
human type も入れてね!

B=83
W=62
H=85

見たいな奴
0407デフォルトの名無しさんNGNG
>>406の痛い人間判断基準について学級会を開きたいのですが?
0408デフォルトの名無しさんNGNG
例示の値がマズいよな。B>80 ってのは。
0409デフォルトの名無しさんNGNG
理想と現実だいぶ違うから、夢から覚めなさい〜♪
0410名無し@沢村NGNG
おまいら、スクリプト言語をつくってみろ?
0411デフォルトの名無しさんNGNG
>>393
ネイテブコンパイル出来る事を目標にして、WindowsAPIを呼べるようにしたいなら

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

COMも使うなら OLEVariant/BSTR も表現出来ないといけない。
0412デフォルトの名無しさんNGNG
>>411
それならWSHと言う良いスクリプト言語環境がある。
0413デフォルトの名無しさんNGNG
>>411
はぁ ?
VB6 は、DWORD, PDWORD, PINT32, PCHAR, 関数ポインタ なんて型無いけど、WindowsAPI 呼べますが。
まあ、使いにくいというのは確かだが。
0414デフォルトの名無しさんNGNG
まあ
DWORD は INT32でもいいと言えばいいか
参照渡しが出来れば多少広い範囲が呼べるね
構造体型で渡す場合に多少不便程度だけど、そういうのは大抵COMサポートのもっと便利なの用意されてるしね。
0415デフォルトの名無しさんNGNG
C言語でpushとかCALLとかってできますでしょうか?
0416デフォルトの名無しさんNGNG
アホだなあ・・
0417デフォルトの名無しさんNGNG
もちろんできます。
0418デフォルトの名無しさんNGNG
>>413
ものすごい分厚さのオブラート(ラップ)を通じてな。
0419デフォルトの名無しさんNGNG
>>417
どうやって???
0420デフォルトの名無しさんNGNG
>>419
_asm{}
0421デフォルトの名無しさんNGNG
スレ違いです
0422デフォルトの名無しさんNGNG
ネットのバイト見つけた。バナー収入登録したら1000円くれるってさ。
http://members.goo.ne.jp/home/madcap0  
         
0423デフォルトの名無しさんNGNG
今作ろうとしているスクリプト言語。
画像処理ソフトの組み込み用だけど、このソフトを作る目的自体が
画像処理ソフトというより簡易スクリプトの実験だったりして。

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

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

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

変数の管理や関数呼び出しはやったことがあるから、この段階で
難しそうなのは制御構文か。
0424名無し@沢村NGNG
おまいらよ、おれがいま研究している2方向量子ウォーク1カウンタオートマトンのアルゴリズムはだな、
出発点 (0,0,…,0), 吸収点 (1,1,…,1) の
n次元超立方体上の対称量子ウォークの
吸収時間は Tr Xn - 1 で与えられるんだよ。
ここで Xnは方程式の解となるんだよ。わかるか?
おれはいまそういう簡単な研究に取り組んでいるんだよ!!!
0425デフォルトの名無しさんNGNG
>>423
関数呼出しって、どうやって実現しましたか?
例えば、sin()/log()/exp()/... ってあったとして、

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

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

OS組み込みor標準関数なら、なんかうまくやって
一発で書き表すことができんでしょうかね?
0426デフォルトの名無しさんNGNG
>>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;
}
こんな関数作ってた
俺の式入れるとグラフだしてくれるソフト
0427デフォルトの名無しさんNGNG
ちゃんとしたスタック作れば引数も返値も思いのままだな。
ちょっぴり勉強になった。
0428名無し@沢村NGNG
おまいらよ、量子PCというのはな、量子重ね合わせの状態を使って並列計算を行うことができるPCのことよ。わかるか?。
おまいらよ、量子重ね合わせの状態とは何かわかるか?
まあくだいていえば、一台の車が右向きに走っている状態と左向きに走っている状態が同時に成立しているということよ。
だが、おれらが実際見ると、車は右向きか左向きかに固定して走ってるだろ?それは観測することによって、重ね合わせの状態のうちのひとつが固定するからよ。
おまいらよ、重ね合わせの状態のうちのひとつがどれに固定するかは、重ね合わせの係数によって決まるのよ。おまいらよ、重ね合わせの係数は複素数よ。複素数の勉強をしてみろ?
おまいらよ、量子PCでいう演算とは、この量子重ね合わせの状態を担う物理系に対して、パルス電波を与えることよ。
いままでのPCでは4bitで表現できる16の状態のうち一つについて1回づつ演算を行い、合計16回計算して16通りの結果を出力してたが、量子PCでは4bitで表現できる16の状態を同時に実現している重ねあわされた量子状態に対して1回の演算を行い、結果を出力するんだよ。
当然処理bit数が増えるほど、量子PCの威力は大きくなるわな。だから並列処理よ。
だが、おまいらよ、その演算結果を見ようとすると、重なり合った状態のうちの一つしか見れないだろ?
この問題を解決するものとしてShorのアルゴリズムというのがあるよ。
Shorのアルゴリズムは量子PCの教科書には必ず出てくる有名なアルゴリズムだから、見てみろ?
おまいらよ、このようにこれからのプログラムは量子の時代よ。
おまいらもひとつ量子言語をつくってみたらどうだ?量子でないプログラミングなんてザコよ!
0429423NGNG
>>425
私が以前作ったプログラムは、変数・関数を数値として評価し、代入文
で変数にその結果入れていくようなスクリプトを処理するもので、

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

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

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

文字列1(文字列2)

という形の部分があったら、文字列2を評価し、有効な数値(即値
か変数、または評価しうる関数呼び出し)であれば、その値を取得。
続いて文字列1を検査し、関数名なら文字列2を評価した引数の
数値に対して関数の機能(+1など)を適用し、その値を関数全体の
評価とする、という処理をしてみた。
0430名無し@沢村NGNG
>>429
おまえのそのやり方は古典よ。サルがやっと2足歩行を覚えた段階だな。
少しは頭を使ってみろ?
0431_NGNG
http://homepage.mac.com/hiroyuki43/hankaku05.html
0432423NGNG
>>430

私の場合は、そもそも「外」を歩いてみたこともない段階だからね。
2足歩行より先に4本足で動き回る練習からしないといけない。
0433デフォルトの名無しさんNGNG
>>429
やっぱり括弧付四則演算が書けないと読み辛いよ。
再帰下降で処理すれば括弧付四則演算も容易だから挑戦してみたら?
0434名無し@沢村NGNG
>>433
再帰下降法?原始的なやり方だな。
離散フーリエ変換で処理したほうがスマートだよ。
0435デフォルトの名無しさんNGNG
沢村って何?口だけ達者な人?
0436デフォルトの名無しさんNGNG
ツッコミを待ってるんだろうけど、ちょっと方向性が悪いね。
単なるバカが無理してるとしか見えない芸風だ。 改善を求む
0437デフォルトの名無しさんNGNG
>>433
だな。
俺も昔は式の解析でいろいろ苦労した記憶があるんだが
最近書き直したらやたら簡単に書けてびびった。
0438山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0439デフォルトの名無しさんNGNG
沈みすぎ・・
山崎渉のしわざかー
0440デフォルトの名無しさんNGNG
LL(1)程度ならccなんて不用
0441デフォルトの名無しさんNGNG
>>440
釣りか ?
0442デフォルトの名無しさんNGNG
>>426
それはどのように動く?
局ののところ、(例えOS標準の数学関数であったとしても)
1関数づつ記述しているのと、大差ないとおもわれ
0443>>429NGNG
なるほど、確実なやり方ですね。
で、OSのライブラリ呼ぶときはどうしてましたか?

1つ1つライブラリを呼ぶコードを書いてましたか?
0444デフォルトの名無しさんNGNG
null指向
0445デフォルトの名無しさんNGNG
レベル低すぎ。
平均はおまえらが下げてる。
0446デフォルトの名無しさんNGNG
>>445
おまえには分からんだろう?(w
0447_NGNG
http://homepage.mac.com/hiroyuki43/hankaku01.html
0448デフォルトの名無しさんNGNG
スクリプト言語 Sapphire 出せ
0449デフォルトの名無しさんNGNG
シンプルな中間言語作って公開して、中間言語のインタプリタとネイテブコンパイラ と
自作スクリプト言語からその中間言語に変換するコンパイラの3つのプロジェクトを作ったらいいんじゃないか?

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

程度でどうでしょ? あんまり機能豊富にするならJavaVM使えって言われそうだし
0450デフォルトの名無しさんNGNG
なんでそんなに中間言語にこだわる?

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

実装手段として中間言語が出てくるかもしれないが
順番が逆。
0451デフォルトの名無しさんNGNG
LISPでいいよ
0452デフォルトの名無しさんNGNG
>>450
中間言語の仕様と違ってスクリプト言語の仕様は、これはもう簡単には決まらないぞ。
特に実用的なって事になるとな

ギコbasicの時は、面白いというだけで作ったけどなあ
0453デフォルトの名無しさんNGNG
これまで2chで言語仕様から決めようとしたプロジェクトは
ことごとく潰れている‥‥‥。
まず作者がある程度動作するプロトタイプを好き勝手につくり、
それを叩き台にして議論して改良したほうが実は現実的かと。
0454デフォルトの名無しさんNGNG
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 とか即値用短形式に割り振る
0455デフォルトの名無しさんNGNG
バイトコードインタプリタだけ作って満足しそうな奴ばっかりだな。
0456デフォルトの名無しさんNGNG
バイトコードインタプリタの例:
http://www.geocities.co.jp/SiliconValley-Oakland/8522/data/Script.txt
0457デフォルトの名無しさんNGNG
>>455-456

要は自分の功績を自慢したいと。
0458デフォルトの名無しさんNGNG
>>453
ハゲ堂!
0459デフォルトの名無しさんNGNG
とはいえ、オブジェクト指向かどうかは重要だと思うよ。
最近はオブジェクト指向一色って感じもするけど、そのあたりはどう?
0460デフォルトの名無しさんNGNG
用途によるんじゃないの?
 なんでもかんでも出来る高機能スクリプトなら欲しいかもしれないし
 ちょっと自分のプログラム中に組み込んで、カスタマイズ性を大きくしたりの用途なら不要だろうし
0461デフォルトの名無しさんNGNG
少なくとも、rubyみたいに思い付きとも取れるよな標準メソッドテンコモリ
オブジェクト指向はいらん罠〜(w
0462デフォルトの名無しさんNGNG
>>1
新しいクリトリス言語って何?
0463423NGNG
ちょっとした事情(^^;でADVのスクリプト処理系を作成中。
といってもほとんど中間コード実行システムになっているな・・・。
簡易コンパイラも作らないと。

私も以前バイトコード(というか4バイトコード)インタプリンタを
作ってみたけど、スクリプト言語を作る前に実験のつもりでバイナリ
コードを実行する仮想マシンを作っておくと良いかも。コードの判別
やパラメータの解釈、メモリの管理などを文字列ベースのコードより
単純な形で練習できる。
テストのためにアセンブラが欲しくなるから、自然にアセンブリ言語
処理系(超簡易スクリプト)も作りたくなるだろうし(^^;。
0464名無し@沢村NGNG
おまいらよ、コンパイラやスクリプトエンジンをつくるのはいいが、未踏ソフトウエア創造事業に応募してはどうだ?
採用されれば、何千万円もの開発資金を援助してもらえるよ。
もちろん定期的に進行具合をPM(プロジェクトマネージャー)に見せなければならないなどの、面倒くさい点は山ほどあるがね…
だが、それだけあれば、会社なんかやめて、毎日寝てくらせるぞ!!
PMにはアラン・ケイや伊地知をはじめ、いろんな大学教授や企業の研究者などがいる。
またPMは好きなやつを選んで応募できるから、気の合いそうなやつを選ぶといいよ。
これからは、個人でソフトを開発するなら、未踏ソフトウエア創造事業の時代だと思うが、どうよ?
0465山崎 渉NGNG

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

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0467デフォルトの名無しさんNGNG
新しいスクリプト言語作りたいなぁ揚げ
0468山崎 渉NGNG
(^^)
0469デフォルトの名無しさんNGNG
ほとんどCなスクリプト言語 ICIttp://www.zeta.org.au/~atrn/ici/
0470山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0471デフォルトの名無しさんNGNG
プッ
0472デフォルトの名無しさんNGNG
>>21
Luaスレ dat落ちしてまったの!?
プログラミング言語 Lua
http://pc2.2ch.net/test/read.cgi/tech/1034182349/
0473デフォルトの名無しさんNGNG
ぷろくしてすと
0474デフォルトの名無しさんNGNG
八ヶ月ぶりのカキコ
0475デフォルトの名無しさんNGNG
お手軽 GUI 作成用のスクリプトが欲しいな。Tcl/Tk に変わる様なやつ。
0476デフォルトの名無しさんNGNG
 
0477デフォルトの名無しさんNGNG
>>476
やたら古いスレあげてますね。
ところで、あなたに明日はあるんでしょうかねえ?
0478デフォルトの名無しさんNGNG
>>12 マダー
0479デフォルトの名無しさんNGNG
もうできてるよ
残業なくなったのは助かったけど、
職も失った
0480デフォルトの名無しさんNGNG
Perl/Tkはどう?
0481KMNGNG
誰かエミュレータに詳しい人が居たら、
http://bbs.infoseek.co.jp/Board02?user=qlbkncgtxapyiで教えてください・・・
また、このような質問はどこでするべきなのか教えてください、時間が無いもので。
0482selfNGNG
3ヶ月以上レスが無かったので、このスレ再利用しても良いですか?
お題目は Parrot です。

o メインサイト
http://www.parrotcode.org/

o メーリングリスト
http://www.nntp.perl.org/group/perl.perl6.internals

o Parrot のソース
http://cvs.perl.org/snapshots/parrot/

o Parrot の CVS ツリー
http://dev.perl.org/cvs/

o Parrot 入門
http://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html

o 洗練されたPerl: Perl 6文法と正規表現
http://www-6.ibm.com/jp/developerworks/linux/041203/j_l-cpregex.html
0483selfNGNG
Parrot について使い方や最新情報を調べて、ここにメモしていきます。
要するにチラシの裏です。基本的には sage 進行で行きます。

まず現状ですが、2004/10/9 に 0.1.1 がリリースされています。
コード名は Poicephalus でムラクモインコの事です。

必要な機能は大分揃ってきているみたいです。
http://www.parrotcode.org/
> Objects, threads, garbage collection, a JIT compiler, namespaces,
> subroutines, a range of basic types (e.g., arrays, hashes, BigInt), NCI
> (for calling into native libraries) and multi-method dispatch for vtable
> methods are all available.

また、i386/ppc linux と Mac OS X ではちゃんと動くようです。
http://cvs.perl.org/viewcvs/cvs-public/parrot/PLATFORMS?rev=1.30
0484selfNGNG
今の所、気になっている点

o Thread を使うには PMC を定義しなくては行けないの?
(PASM/IMC オンリーでスレッドサポートを書けないのか?)

o コンパイラを書くとしたら、Perl が良いのか、C が良いのか
(Perl のモジュールを呼び出せる様にする作法とか)

o Perl 5 と同居させるにはどうしたら良いか
(まだコンパイルしていないです)

o ブートストラップはやはり面倒くさい
(各 OS に入るまで時間掛かりそう)

o FreeBSD と Solaris での開発状況
(サポートプラットフォームには入ってる)

取り敢えず、使い方や内部構造を調べていきたいです。
0485selfNGNG
気になっている点 その2

o tarball がでかい
(実行ファイルがどのくらいの大きさになるかの方が大事だけど)

o ソースツリーがちょっと分かりにくい
(ast, classes, dynclasses, dynoplibs とかは root に無い方が
分かり易い気がする)

o Build システムが Perl 依存、それもかなり
(Perl でプリプロセスした C のソースとか見たくないし)

o 実行速度と必要メモリサイズはどのくらいか
0486デフォルトの名無しさん05/01/19 22:38:23
ここはお前の日記帳だ!
0487デフォルトの名無しさん05/01/24 14:58:08
そのとうり。どんどん書き込め。
漏れらはケツの穴がガバガバだからな!
0488デフォルトの名無しさん05/02/09 15:20:39
では遠慮なくageさせて貰う(´・ω・)
0489デフォルトの名無しさん05/02/10 00:47:07
ガンがれ
Parrotは面白そうだけど、使えるようになるのはいつかなぁ
0490デフォルトの名無しさん05/02/16 03:11:00
parrotって糞仕様の気がするんだが
0491デフォルトの名無しさん05/02/17 23:46:25
どこが糞か説明してみろ。

出来なければお前の頭が糞ね。
0492デフォルトの名無しさん05/02/18 01:38:20
/* --- チラシの裏 ここから --- */

parrot-0.1.1をWinXP+VC.NETでインスコ。
README.win32 の指示に従ってicu-2.8-Win32_msvc7.zipを入手。
Configure.pl に対するオプションも指示通り。パスだけ自環境に合わせて変更。
何の問題もなくnmake完了。parrot.exe は 2,172KB。

ttp://www.namikilab.tuat.ac.jp/~sasada/prog/parrot-intro.html なんかでは
アセンブラとJakoが紹介されていたので、とりあえず、Jakoを弄る。

わかったことは、
・上記ページのJakoに関するコードは古くて駄目っぽい。
・現状のJakoではPerlArrayが使えないっぽい。

配列が使えないのはキビシイのでJakoは窓から投げ捨てた。

/* --- チラシの裏 ここまで --- */
0493デフォルトの名無しさん05/02/18 02:00:36
/* --- チラシの裏 2枚目 ここから --- */

Jakoを窓から投げ捨てたので、Perl6を弄る。

parrot-0.1.1\languages\perl6 にて
>perl perl6 HelloWorld.p6 するも、だいぶ経ってから Hello, World! 。

perlコード → imcに変換 → pbmに変換 → parrot実行 という流れか?
毎回imcファイルもpbmファイルも消し去ってくれるので毎度時間がかかる。

-B オプション(stop after creating .pbc file)で解決。
と思いきやさっぱりpbcファイルが残らない。
しかたないので -I オプションで imcファイルを残し、残りはparrot.exeで。

>perl perl6 -I hoge.p6
>parrot -o hoge.pbc hoge.imc
>parrot hoge.pbc
HelloWorld.

面倒すぎるので、俺は何か間違ってるはずだ。

perl6を一寸だけ弄ってわかったこと。
・現状forループが使えないっぽい。10回のループを3回で抜ける。そもそもカウンタ変数が++されない。
・メタくそ遅い。ほぼ同内容のスクリプトでperl5.8の4倍かかる。-Oオプションがいる?

/* --- チラシの裏 2枚目 ここまで --- */
0494デフォルトの名無しさん05/02/19 12:51:42
/* --- チラシの裏 3枚目 ここから --- */

>>493
> perlコード → imcに変換 → pbmに変換 → parrot実行 という流れか?
> 毎回imcファイルもpbmファイルも消し去ってくれるので毎度時間がかかる。
これ、勘違いだった模様。
そもそもpbcファイルは吐いておらず、imcファイルをparrotで実行っぽい。

/* --- チラシの裏 3枚目 ここまで --- */
0495デフォルトの名無しさん05/02/27 14:46:21
チラシの裏は白地じゃないのが多いから、レシートの裏に汁。
0496デフォルトの名無しさん05/03/13 13:48:08
>>495
ちょっと狭すぎる。
0497デフォルトの名無しさん05/03/14 00:56:24
ティッシュとかトイレットペーパーなら
いざとなったらトイレに流せるから安全。
0498デフォルトの名無しさん2005/04/06(水) 13:48:23
いざって、ナニ?FBIとか踏み込んできたとき?
0499デフォルトの名無しさん2005/04/30(土) 15:57:00
Xファイル?
0500デフォルトの名無しさん2005/04/30(土) 16:00:39
それより、道で配ってるティッシュをトイレに流すと詰まる可能性があるそうですが、
本当ですか?
怖くて確かめられません。
0501デフォルトの名無しさん2005/04/30(土) 16:25:03
流せるティッシュっつーのもあるらしいが
0502デフォルトの名無しさん2005/04/30(土) 16:34:27
大抵のポケットティッシュは流しちゃいけないらしいけど。
0503デフォルトの名無しさん2005/05/01(日) 09:19:03
僕は絵を書くとプログラムになるものを探していますがありませんかね?
0504デフォルトの名無しさん2005/05/01(日) 17:20:48
>>503
Squeakが近いかな
0505あげ2005/06/29(水) 09:19:50
エンドユーザ向けのスクリプト言語:チャミー
ttp://staff.aist.go.jp/y-ichisugi/chummy/
ってどーよ?
0506デフォルトの名無しさん2005/06/29(水) 20:41:14
手をつなぎたくなる
0507デフォルトの名無しさん2005/07/02(土) 13:57:37
言語仕様はJavaScript風で、pythonのバイトコードにコンパイルするコンパイラ作って。
0508デフォルトの名無しさん2005/07/04(月) 20:29:46
pythonのバイトコードの解説をお願いします
0509デフォルトの名無しさん2005/07/04(月) 22:03:09
parrotじゃだめ?
0510デフォルトの名無しさん2005/08/17(水) 22:34:58
DBC(Design By Contract)ができるスクリプト言語を探してます。
適当なスレが見つからないので、ここで。

ようは、COBOLやC++やEiffelのような、妙に面倒な型宣言と、
Perlもびっくりの安直な本文コーディングが混在した
奇妙な言語です。
Cでいえば、.c ファイルは Perl なみ。が、しかし、.h ファイルはCOBOLなみ、
みたいな風ですね。
0511デフォルトの名無しさん2005/08/17(水) 22:53:42
>>509
じゃあ、parrotでおながいします。
0512デフォルトの名無しさん2005/08/18(木) 00:48:26
>>510
その説明だけだとすごくバランス悪く感じる…
0513デフォルトの名無しさん2005/08/18(木) 11:47:55
>>512

やりたいことは、
ようは、Perlぐらいしか使えない下請けクンに、
仕事を丸投げしたいわけです。
なんで、せめてデータ構造だけでもこっちでばっちり決めておければ。

0514デフォルトの名無しさん2005/08/21(日) 01:04:57
assertion なり unit test をきっちり書いてやればいいんでない。
0515デフォルトの名無しさん2005/08/21(日) 22:56:53
>>514
プログラムに仕込むassertionやプログラムの外に構築するUnit Testと、
言語仕様としての事前条件・事後条件・不変条件の制約は
意味や目的が全く違う。

自主規制(自分で手心を加えられる)と強制(逃げ道がない)の違い。
0516デフォルトの名無しさん2005/08/22(月) 06:57:58
>>515
assertion なり unit test なりが指定されている状況で、
下請けがどうやって手心を加えるんだ?
0517デフォルトの名無しさん2005/08/22(月) 18:58:25
事前事後はともかく、不変表明するって難しい気がする
0518デフォルトの名無しさん2005/09/23(金) 06:43:06
>>1
Airなんかがそういう趣旨の言語じゃないの。
昔スレあったけど消えちゃったね。
http://sourceforge.jp/projects/air-lang/
久々に見たらコツコツ更新が続いてるようで。
■ このスレッドは過去ログ倉庫に格納されています