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

このエントリーをはてなブックマークに追加
1 ◆opMJSavJhM
これからは、スクリプト言語の時代だそうですが、案外使い勝手の良い平凡な
言語が少ないような気がします。例えば。。。

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

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

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

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

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

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

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

プログラミング言語 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を移植すればおしまい
設計する必要なし
>>22
とりあえず何も作ってない奴にアレコレ言ってやる程暇な香具師はそう多くないってこった。
こういうスレがあるわけだが。

『コンパイラ・スクリプトエンジン』 相談室 2
http://pc2.2ch.net/test/read.cgi/tech/1021136715/
何のビジョンもなければ作る気配もないのがすばらしい。
>>21
GoLua !?
28デフォルトの名無しさん:03/04/23 21:38
実際のところ、オブジェクト嗜好な方って意外と少ないような気がするん
ですが、どうでしょう???
29デフォルトの名無しさん:03/04/23 21:41
というか、目的ありきじゃないのですかな
ところで英語を直訳したようなこのスレタイなんとかならんか
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のことだろ?
ふじつーまんせー
そうだな。Fといったら不治痛だよな。イタタタタ・・・
>>1
>>これからは、スクリプト言語の時代だそうですが

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

109103:03/04/27 01:55
ようわからんくなってきた。Cみたいに文字型は整数型である言語ってほかにあるの?
型なんで全部クラスでいいじゃねーか
「オブジェクト指向でない分かりやすいスクリプト言語」をつくるのがこのスレの趣旨だから、それじゃだめでしょ。
>>111
そもそも、オブジェクト指向って何?っていう話にもどらないか?
情報隠蔽はしない
多態はしない
継承はしない

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

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

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

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

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

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

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

読む気満々だから指摘したまで。
ああそっか。納得。
>>130
LISP は最近触ってないからなぁ...。
一応 Common-LISP とかだとあるみたいね。

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

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

と言うことみたいね。

>>132-135
釣られんなよ。
Io は Unicode に対応してるみたいだけど。OO だから駄目か。

  http://www.iolanguage.com/

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

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

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




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

"Hello,World!" println.
つか、GC付きのCがあればいいよ。
それでみんな幸せになれる。
コンサバはなあ…
145デフォルトの名無しさん:03/04/27 19:48
>>142
どうやればGC付けられますか?
簡単につくんだろうか?
malloc()とnewを全部GCするようにすればよい。
>>146
どうやればGC付けられますか?
簡単につくんだろうか?
コンサバって何?
保守的な
152>>1を無視してアイデアを書き込む人:03/04/27 20:46
endless {
 [RES[
 >>150
 そんなこと俺が知るか!
 ]RES] println.
}

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

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

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

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

そか?
Eiffelなんかだと、他言語へのトランスレーターになってたりするし。
名無し@沢村よ、あまりの無知ぶりが見ているこっちが恥ずかしいからやめれ、頼むわ。
>>183
そこで上げた環境で動くのは、同じIntelのCPU(もしくは、互換品)使ってるからだろ。
お前等釣られ杉。
>>187 沢村
189デフォルトの名無しさん:03/04/28 11:13
読んで判り易くするには、やっぱり日本語化する事でしょ。
190デフォルトの名無しさん:03/04/28 11:21
>>189
そんなことしたら、ソースコードが混沌として読みたくなくなっちゃう
>>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のマニュアルをダウンロードしとけば下位互換性があるはずだから大丈夫だろうけどな…
拡張命令みたいなのはとりあえず知らなくても問題なさそうだな…
拡張命令って新しいから互換性ないからな…
それにしてもずいぶんサイズがでかくてイヤになりそうだが、外れなく一発でおれがコード対応表をダウンロードできるように教えてくれないかな?


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

日本のみで、便利かつ判り易ければそれでいいんだ。
↑Ruby厨
200200:03/04/28 13:28
「世界の多くの人に使ってもらう」のに wchar が 2 バイトとか言ってんのね。
201名無し@沢村:03/04/28 14:40
>>198
>日本のみで、便利かつ判り易ければそれでいいんだ。

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

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

202187:03/04/28 14:56
アフォをスルーできないヴァカばっかりだな。
国際化なんておいといて、まずは使えるものを作るべきだろう
やはり用途を絞るべき
汎用的なのは Perl があれば足りてる
沢村のアフォがいるのか
道理で透明あぼーんが多いと思った
とりあえず過去ログから分かった事。

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

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

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

>おれはこうして少しずつK言語を設計していくからな。このスレでな。
>いままでのことでわからないことがあったら、何でも聞いてくれ!
× flort
○ float
× 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"

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

Ruby!!
>>209
強型言語でもデータに型は持ってるでしょ。
データに型がなかったらキャストもいらなくなってしまう。
>>209,211
ウホ!いい文法!
>>212
>データに型がなかったらキャストもいらなくなってしまう。

それは違うかと。 キャストはコンパイラを騙すためにするもの。 静的な型を解決するもの。
>>212
動いてしまえば、すべてビット列
216デフォルトの名無しさん:03/04/29 00:55
>>213
rubyマンセ〜の方?すれ違いかも?
>>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は反映されないのね。。。(^^;
>>218
そのレスでちょっとレベルが見えたけど、
ちゃんと基礎からやった方がいいよ。
このまま進めると、車輪を再発明し続ける事なる。
s/なる/になる/
>>218
なんで、struct なの union じゃダメなの ?
あと読み出す時はどうするの (どの型が入っているかわからんでしょ ?)
...
つーか、>>220 の言う通りだと思う。
>>222
> あと読み出す時はどうするの (どの型が入っているかわからんでしょ ?)
メンバ type で判断するんでしょ?

まあ >>220 の言う通りだと思うけど。
>>223
失礼、正直見落とし。
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
当然!
>>226
トリップが無いが226=218だな?
君は見当違いの解釈をした。
>>220はやんわりと「出直して来い」と言っているのだよ。
「あえて」なんて言い訳はクソにもならない。
>>226
そういう問題ではない、ヤバイ
トライするのは勝手だが、ここでやるなって事ね。
232デフォルトの名無しさん:03/04/30 14:24
いっそのこと書式付き文字列型作ってよ。
ソースはRTFで書く。

誰か物好きが使うかもしれん。
233動画直リン:03/04/30 14:26
234デフォルトの名無しさん:03/04/30 16:08
文法チェックするやつ、ついでに作ったら?
http://www4.org1.com/~kitt/labo/pc/html/index.html
見たいなやつ。スクリプトだと詳しいエラーが出ないからよくわからず
部落ら化していたりして・・・
>>235
全然凄くない。俺なら簡単に出来るね。
趣味が悪いって意味じゃないの?
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]

程度でした。

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

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

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

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

なんか作れるわけないと思うよ。
>>240
> >>218 みたいなこと書いてる奴が...
> なんか作れるわけないと思うよ。
ま、そりゃそうだ。
242デフォルトの名無しさん:03/05/01 02:03
つうか実行時間がなんでsec単位なんだよ
単位よりも有効桁数の少なさが…
しかも、sec単位の精度というオチつきだったりするか?
実はストップウォッチ片手に計ったと見た。
ぬるぽの実装まだー?
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()ぐらいしか組み込んでいませんが、私のように
言語系の素人であっても、案外楽しくいろんな制御構造が組み込めるので、
びっくりしました。

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

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

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

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

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

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

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

まあruby版はxが最後一回加算されないが。
>>254
たいして代わらんだろう?
ところで、perl以外の汎用スクリプトってunix系では無いよねぇ。。。
(除くruby)
257デフォルトの名無しさん:03/05/08 23:46
>>254
なるほどrubyは5倍程早くなるようだなぁ。。。(w
258デフォルトの名無しさん:03/05/09 00:29
>>257
つまり、2倍程遅くなると。。。(w
tclは?
260デフォルトの名無しさん:03/05/09 00:51
>>259
何剃れ?
>>1
VBScriptがあるじゃないか。
262デフォルトの名無しさん:03/05/09 03:04
オブジェクト指向ごときで抵抗があるのに言語がつくれるんだろうか?
Pythonは?
>>256はunix使っていないに一票(もしくはよほどのロートル)
ロートルというよりむしろトロール
>>256はムーミンということでよろしいか
267256:03/05/09 20:25
もう20年近くUNIX系つかってますが、何か?
ロートルの方だったみたいね。
269デフォルトの名無しさん:03/05/09 20:49
各言語の非汎用っぷりを教えてください
270デフォルトの名無しさん:03/05/09 21:50
でも、オブジェクト指向でないものとすれば確かに汎用スクリプトなんてperl以外に無いぞ
>>270
awk は ?
272デフォルトの名無しさん:03/05/09 22:00
>>
tcl, rexx, icon ....
腐るほどあるわけだが。
EMACS LISPは?
汎用ってなによ?
>>274
はん‐よう【汎用】

はんよう
広くいろいろの方面に用いること。
276デフォルトの名無しさん:03/05/10 21:20
>>271
AWKは激しく汎用ではない罠〜(w

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

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

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

>>273
えらい範囲の狭い環境だなぁ?
PerlはOOPLだよ

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

>>283
> 記号のオンパレード!
それはPerlのほうが…
>>284
言語と開発環境を一緒にするな。

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

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

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

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

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

ruby/pythonはオブジェクト指向が癌
釣 り で す か ?
338popo: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
おまいらよ、新しいスクリプト言語を設計はネーミングがすべてだよ。
ネーミングが決まった時点で、新しいスクリプト言語の設計は完了したといえるな。
まんこ
343naming:03/05/19 22:35
鉱物物だったら

・花崗岩
・玄武岩

あたりが、堅牢そうなイメージがあっていいんじゃないかな?
344サンプルです:03/05/19 22:36
★大人になってから★
http://jbbs.shitaraba.com/travel/832/kenbetu.html
スクリプト言語作るのって楽しい? > 作ってる香具師ら
黒曜石
なんてかっこよくない?>343
キモチワルイ
黒曜石は切れるがもろいぞ
>>345
楽しいぞ!
350343:03/05/20 15:10
おお、かっこいいな!ソレ
鉱物では、

ウンモ

っていうのもあるが、必ずいらんレスが付きそうだなぁ(w
351bloom:03/05/20 15:11
352デフォルトの名無しさん:03/05/20 15:11
国別でも、同様だ

オマーン

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

あと、

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

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

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

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

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

| 整数型
| 文字列型

| 1次元配列

は必須として、

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

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

| ...

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

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

B=83
W=62
H=85

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

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

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

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

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

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

1つ1つライブラリを呼ぶコードを書いてましたか?
null指向
レベル低すぎ。
平均はおまえらが下げてる。
446デフォルトの名無しさん:03/05/31 05:07
>>445
おまえには分からんだろう?(w
447_:03/05/31 05:09
スクリプト言語 Sapphire 出せ
シンプルな中間言語作って公開して、中間言語のインタプリタとネイテブコンパイラ と
自作スクリプト言語からその中間言語に変換するコンパイラの3つのプロジェクトを作ったらいいんじゃないか?

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

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

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

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

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

要は自分の功績を自慢したいと。
458デフォルトの名無しさん:03/06/01 00:48
>>453
ハゲ堂!
459デフォルトの名無しさん:03/06/01 11:25
とはいえ、オブジェクト指向かどうかは重要だと思うよ。
最近はオブジェクト指向一色って感じもするけど、そのあたりはどう?
用途によるんじゃないの?
 なんでもかんでも出来る高機能スクリプトなら欲しいかもしれないし
 ちょっと自分のプログラム中に組み込んで、カスタマイズ性を大きくしたりの用途なら不要だろうし
461デフォルトの名無しさん:03/06/03 00:40
少なくとも、rubyみたいに思い付きとも取れるよな標準メソッドテンコモリ
オブジェクト指向はいらん罠〜(w
>>1
新しいクリトリス言語って何?
463423: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
(^^)
ほとんどCなスクリプト言語 ICIttp://www.zeta.org.au/~atrn/ici/
470山崎 渉:03/08/15 16:29
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
プッ
472デフォルトの名無しさん:03/08/26 01:45
>>21
Luaスレ dat落ちしてまったの!?
プログラミング言語 Lua
http://pc2.2ch.net/test/read.cgi/tech/1034182349/
473デフォルトの名無しさん:03/08/26 13:37
ぷろくしてすと
八ヶ月ぶりのカキコ
お手軽 GUI 作成用のスクリプトが欲しいな。Tcl/Tk に変わる様なやつ。
476デフォルトの名無しさん:04/09/26 17:19:25
 
477デフォルトの名無しさん:04/09/26 17:22:34
>>476
やたら古いスレあげてますね。
ところで、あなたに明日はあるんでしょうかねえ?
478デフォルトの名無しさん:04/09/26 17:41:56
>>12 マダー
479デフォルトの名無しさん:04/09/26 18:27:25
もうできてるよ
残業なくなったのは助かったけど、
職も失った
480デフォルトの名無しさん:04/09/27 01:37:42
Perl/Tkはどう?
481KM:04/09/27 01:38:54
誰かエミュレータに詳しい人が居たら、
http://bbs.infoseek.co.jp/Board02?user=qlbkncgtxapyiで教えてください・・・
また、このような質問はどこでするべきなのか教えてください、時間が無いもので。
482self:05/01/10 04:37:04
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
483self:05/01/10 04:54:33
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
484self:05/01/10 05:01:57
今の所、気になっている点

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

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

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

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

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

取り敢えず、使い方や内部構造を調べていきたいです。
485self:05/01/10 05:11:30
気になっている点 その2

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

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

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

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

出来なければお前の頭が糞ね。
492デフォルトの名無しさん: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は窓から投げ捨てた。

/* --- チラシの裏 ここまで --- */
493デフォルトの名無しさん: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枚目 ここまで --- */
494デフォルトの名無しさん:05/02/19 12:51:42
/* --- チラシの裏 3枚目 ここから --- */

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

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

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

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

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

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