「コンパイラ・スクリプトエンジン」相談室10at TECH
「コンパイラ・スクリプトエンジン」相談室10 - 暇つぶし2ch189:デフォルトの名無しさん
06/05/17 13:18:12
>>188
まあ、それなりに書けるやつならお前みたいなことは書かないと思うけど

190:デフォルトの名無しさん
06/05/17 13:26:23
思うのは自由だしね。

191:デフォルトの名無しさん
06/05/17 13:35:52
一度インタプリタのようなものでも作った事があればそんなに難しいことじゃないことぐらい分かるだろうに、
>>188は一度も何も作ったことがないんだろうなあ。

192:デフォルトの名無しさん
06/05/17 13:39:53
そんなに難しいことじゃないから
できないことが無能に該当するんだよ。

限られた人間しかできないことができなくても、それはせいぜい凡人だよね。
無能と呼ぶのは不適切。

無能の二文字があまりにも図星で頭に血が上ってるのはわかったけど、
噛み付く行為によって一層相手の言い分が証明されるのは悲惨の一語だから
気をつけたほうがいいですよ。

193:デフォルトの名無しさん
06/05/17 13:44:29
>>192
顔が真っ赤ですよ

194:デフォルトの名無しさん
06/05/17 13:54:24
それはお気の毒に。

195:デフォルトの名無しさん
06/05/17 14:52:47
>>187
漏れは傍観者だけど、
「インタプリタで実行するようにコードをなぞってオブジェクトを生成する」と
説明的で長くなるところを「interpreterパターン」と一言で言っているわけです。

別に本等で「interpreterパターン」とかを調べてそれに準拠せよ、
と言っているわけではなくて・・・

>デザインパターンって単に良い設計だと多くの人が思ったパターンを集めたに過ぎないのでは?
単にパターンに名前を付けて話をしやすくしたってだけのことでしょう。
よっぽどのバカじゃないと無理に当てはめるなんてあり得ないし。
本末転倒。

196:デフォルトの名無しさん
06/05/17 15:05:18
命名は認識の規格化であり、互換性の最小単位である。
                           ―ガッツ石松

197:デフォルトの名無しさん
06/05/17 17:11:23
質問カキコ

式の正当性って、どうやってチェックすれば良いのでしょうか?
1+2=3が正しい式で、1 2 + 3 =が正しくない式だというのは人間にはすぐに分かるのですが…。

・左右括弧の数をチェックする
・演算子の数=定数や変数の数-1であるかをチェックする(-5等の-の様な単項演算子は除く)

これぐらいしか思いつかないのですが、具体的な方法等あれば教えて頂ければと………m(_ _)m

198:デフォルトの名無しさん
06/05/17 17:12:12
ちなみに、中置記法の場合です。
正当性をチェックしてから、後置記法に変換しようと思っているので。

199:デフォルトの名無しさん
06/05/17 17:32:55
>>197
「正しい式」を定義して、
その定義に従ってパーサを作って、
パーサが受け付けないものが「正しい式でないもの」。

「正しい式」「正しい式でないもの」を判別するのは出来るだろうけど、
「正しい式」「正しくない式」ってのはなんだかよくわからない。
正しくないけど「式」?

200:デフォルトの名無しさん
06/05/17 17:45:43
「正しくない式」という表現を否定するなら
式にいちいち「正しい」とつける意味も無いのでは。

「式」「式でないもの」でじゅうぶん。

201:デフォルトの名無しさん
06/05/17 18:10:00
なんだかよくわからないなりにも、もしかしたら>>197的には
「正しくない式」というのの定義があるのかもしれないと思って・・・

202:デフォルトの名無しさん
06/05/17 18:10:25
正しい式って仕様どおりの式のことでしょ?

203:197
06/05/17 20:00:19
すみません、「正しい」や「正しくない」は中置記法の数式としての観点からです。

204:デフォルトの名無しさん
06/05/17 20:54:08
>197
詳しく知りたかったら形式言語を勉強するといいんじゃない?

205:デフォルトの名無しさん
06/05/17 21:20:12
あなたの中置記法では -1+-2 は正しい式ですか?

206:197
06/05/17 21:37:23
>204
形式言語ですか? 調べてみます。
>205
はい、正しい式です。

207:デフォルトの名無しさん
06/05/17 22:43:55
>>206
「文脈自由文法」「LL構文解析」「LALR構文解析」「lex yacc 電卓」でググれ

208:デフォルトの名無しさん
06/05/17 23:29:00
LR(1)とかLALR(1)を一言であらわすと
「小さなことからコツコツと(Byキー坊)」
ってことでよろしいでしょうか?

209:デフォルトの名無しさん
06/05/18 05:59:46
>>197
演算子優先順位法で十分

210:デフォルトの名無しさん
06/05/18 12:06:22
        ,.-─ ─-、─-、
      , イ)ィ -─ ─- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ , -─        Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′ お前ら死ねよ
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    > ---- r‐'´
      ヽ_         |
         ヽ _ _ 」

211:デフォルトの名無しさん
06/05/19 01:36:35
>>197
207が言うようにyaccが使えりゃ一発だけど、言語がCじゃないとかの
理由で使えないなら(JavaならJavaCCとか、たいていなんかのパーサジェネレータは
あるけどね)、「再帰下降パーサ」または「再帰下降パーザ」でぐぐればよいかと。


212:デフォルトの名無しさん
06/05/19 02:56:58
再起下降型ならちょっと文法変換しないとだめだよね。

213:デフォルトの名無しさん
06/05/19 10:10:53
下降は負け犬がつかうパーサだからな。
Lisp,Emacs に通じるものがある。

214:デフォルトの名無しさん
06/05/19 11:47:32
>>213

215:デフォルトの名無しさん
06/05/19 16:36:53
>>213


216:デフォルトの名無しさん
06/05/19 16:38:13
このスレでナンセンスなことを言ってるやつはすべてRuby狂信者ということでよろしいですか?>ALL

217:デフォルトの名無しさん
06/05/19 18:16:59
つまりあなたも?

218:デフォルトの名無しさん
06/05/19 20:04:49
>>213
勝ち組はボトムアップってこと?

219:デフォルトの名無しさん
06/05/19 20:22:53
負け犬とか勝ち組とか激しくワラタ

220:デフォルトの名無しさん
06/05/19 21:06:31
というか >>213 が最高にバカだな。本気でいってそうなあたりが。
再帰下降が負け組だって?低能はものを知らないね。

221:デフォルトの名無しさん
06/05/19 22:25:00
>>213 の今後の行動
1. ネタでした
2. 話題をかえて荒す
3. Ruby 狂信者のフリをする
4. Ruby を煽ってごまかす
5. Lisp を煽ってごまかす
バカはどーゆう行動にでるのかな。消えてくれると一番
たすかるけどアホのくせに粘着だからなぁ

222:213
06/05/19 22:33:57
すまん。誤爆した

223:213(リアル)
06/05/20 00:55:22
なんか、馬鹿なレスがついとるけどw

再帰下降ってつまり、パーサーのために文法を変えるでしょ?
そこが負け犬なわけよ。わかる?

言語はツールに縛られてはいかんのよ。

224:デフォルトの名無しさん
06/05/20 01:03:08
>>223
文法を変えるというか、左再帰が起こらないようにBNF的に分解するだけっていうか。実際には文法を変えているわけじゃないんだけど。
文法を変えるって言うと誤解する人がいるから。

225:デフォルトの名無しさん
06/05/20 01:08:07
ちょ www おまっ www

>>213 がいくら馬鹿とはいえ >>223 はありえないだろ?
さすが想像のナナメ上をいくな。え?本物?

226:デフォルトの名無しさん
06/05/20 02:45:58
でも再帰下降で作ってて左再帰回避をするのって負けだよな。
やっぱり上昇型で文脈自由文法に素直に解析したい。

227:デフォルトの名無しさん
06/05/20 02:51:35
>>226
で、それを手で書いてみろと言われたら?

228:デフォルトの名無しさん
06/05/20 03:42:23
CPS変換について、勉強中なのですが、詳しく書いてあるサイトか、書籍を教えてください。


229:デフォルトの名無しさん
06/05/20 04:50:38
#include <vector>
#include <functional>
#include <stdio.h>
#include <ctype.h>
bool expression();
char buf[1000], *pc = buf;
std::vector<int> data; std::vector<bool(*)()> ops;
bool end(int c) { return c == 0 || c == '\n' || c == '\r'; }
bool get(char& c) { while (!end(*pc++)) if (!isspace(c = pc[-1])) return true; return false; }
bool get_digit(char& c) { return get(c) && (isdigit(c) || --pc && false); }
bool is(char c) { char d; return get(d) && (d == c || --pc && false); }
bool number() { char c; if (!get_digit(c)) return false; data.push_back(0); do { data.back() = 10 * data.back() + c - '0'; } while (get_digit(c)); return true; }
template<typename T> bool binary(T t) { int i = data.back(); data.pop_back(); data.back() = t(data.back(), i); return true; }
bool add() { return binary(std::plus<int>()); }
bool subtract() { return binary(std::minus<int>()); }
bool multiply() { return binary(std::multiplies<int>()); }
bool divide() { return binary(std::divides<int>()); }

230:デフォルトの名無しさん
06/05/20 04:52:16
bool no_operation() { return true; }
bool plus() { return true; }
bool minus() { data.back() = -data.back(); return true; }
bool push(bool(*op)() = no_operation) { ops.push_back(op); return true; }
bool pop() { ops.back()(); ops.pop_back(); return true; }
bool additive() { return is('+') && push(add) || is('-') && push(subtract); }
bool multicative() { return is('*') && push(multiply) || is('/') && push(divide); }
bool unary() { return is('-') && push(minus) || (push(plus), is('+')); }
bool factor() { return (number() || is('(') && push() && expression() && is(')')) && pop(); }
bool term() { return unary(), factor() && pop() && (!multicative() || term()); }
bool expression() { return push() && term() && pop() && (!additive() || expression()); }
int main() { while (fgets(pc = buf, sizeof buf, stdin) && push() && expression()) printf(" = %d\n", data.back()); }

231:デフォルトの名無しさん
06/05/20 04:54:38
標準入力から正しい式が入力されたら、計算し、
正しくない場合は、何もせずに終了するプログラムをC++で書いてみた
やっつけですが

232:デフォルトの名無しさん
06/05/20 05:38:51
再帰下降で左再帰を 回避する必要なく ね?
LLじゃないんだから。
そりゃLRよりは制限きついだろうけど。
むしろ再帰下降を避ける理由はバックトラックによる効率の悪さでしょ。

233:デフォルトの名無しさん
06/05/20 05:57:07
スクリプトホストを作っているのですが、IActiveScript::GetScriptDispatch()でわからない所があります。
GetScriptDispatch()でpstrItemNameにNULLを指定した場合には、スクリプトコンテキストのグローバル変数やグローバル関数をスクリプトホストから呼び出す事が可能なIDispatchポインタが取得できます。
しかし、pstrItemNameにNULL以外を指定した場合にはこれはどういう意味があるのでしょうか?
pstrItemNameにはIActiveScript::AddNamedItem()で設定した名前が指定できます。
この名前は一般的にはスクリプトホスト側が提供するオブジェクトの名前ですが、GetScriptDispatch()でこの名前を指定するとやはりIDispatchポインタが取得できます。
このIDispatchポインタにはどういう意味があるのでしょうか?
このIDispatchポインタを使ってもホスト提供のオブジェクトは呼び出すことはできません。まあホスト提供のオブジェクトをわざわざ別のポインタを取得してホストが呼び出す意味は余り無いので、その事は構わないですが、このポインタはいったい何に使えるのでしょうか?

234:デフォルトの名無しさん
06/05/20 08:49:36
スレリンク(win板)
スレリンク(tech板)


235:デフォルトの名無しさん
06/05/20 12:34:45
>>229-231
なかなか、短くて美しいですね


236:デフォルトの名無しさん
06/05/20 14:06:10
>>232
再帰下降=LLだと思ってたんだけど違うの?

237:デフォルトの名無しさん
06/05/20 14:12:22
再帰しない構文解析アルゴリズムもあるよ。自分でスタック管理するだけだけど。
龍書IのP.223参考


238:デフォルトの名無しさん
06/05/20 19:16:56
>>235
ありがと
式の正当性のチェックだけならもっときれいになるかなあ・・・やってみた

#include <ctype.h>
#include <stdio.h>
bool expression();
char buf[1000], *pc;
bool get(char& c) { while (c = *pc++) if (!isspace(c)) return true; --pc; return false; }
bool get_digit(char& c) { return get(c) && (isdigit(c) || --pc && false); }
bool is(char c) { char d; return get(d) && (d == c || --pc && false); }
bool number() { char c; if (!get_digit(c)) return false; while (get_digit(c)); return true; }
bool factor() { return number() || is('(') && expression() && is(')'); }
bool term() { return is('-') || is('+'), factor() && (!is('*') && !is('/') || term()); }
bool expression() { return term() && (!is('+') && !is('-') || expression()); }
int main() { while (fgets(pc = buf, sizeof buf, stdin) && expression() && !*pc) printf("OK\n"); }

239:デフォルトの名無しさん
06/05/21 19:49:25
何言語? bool とかつかってるけど、

240:デフォルトの名無しさん
06/05/21 19:57:21
C++?

241:デフォルトの名無しさん
06/05/21 20:23:24
C++も知らんのか

242:デフォルトの名無しさん
06/05/21 21:56:58
どう見てもCです

243:デフォルトの名無しさん
06/05/21 22:21:37
どう見てもC++です

244:デフォルトの名無しさん
06/05/21 23:01:48
どう見ても>>229,230 はC++ >>238 はCです。本当に有難うございました。

245:デフォルトの名無しさん
06/05/21 23:09:13
boolとtrueとfalseがあるからC++

246:デフォルトの名無しさん
06/05/21 23:13:59
釣れますか?

247:デフォルトの名無しさん
06/05/21 23:25:25
俺のVC++6.0がC99?なにそれ?とおっしゃっているのでC++ですよ

248:デフォルトの名無しさん
06/05/21 23:26:47
入れ食いですな

249:デフォルトの名無しさん
06/05/22 08:22:58
C99を考慮しても使ってるのはC++
Cと言ってるのはキチガイ

250:デフォルトの名無しさん
06/05/22 11:01:30
また釣れた

251:デフォルトの名無しさん
06/05/22 13:37:56
どう見てもC++だろが。アホか。
じゃあCと言うことを証明して見ろ。

252:デフォルトの名無しさん
06/05/22 13:40:51
晒しageとこう

253:デフォルトの名無しさん
06/05/22 19:29:49
何でこんなに、釣れるんだ
書いた本人はC99知らんのでC++ですわw
C99って参照あるの?

254:デフォルトの名無しさん
06/05/22 22:34:27
アフォかお前ら?
Cにboolなんかあるか!ボケw

255:デフォルトの名無しさん
06/05/22 22:39:48
そうだね。ついでにCにはsize_tもあるわけないよ。

256:デフォルトの名無しさん
06/05/22 22:42:40
また釣れましたよ。

257:デフォルトの名無しさん
06/05/22 23:09:18
つか、本気でわかっていないんだけど、なんでboolがCで使えるの?
釣れたつれてないとかではなく、誰かC++だといっている人がなぜ間違っているのか教えて。

258:デフォルトの名無しさん
06/05/22 23:10:28
>>257
どうでもいいから。

259:デフォルトの名無しさん
06/05/23 00:23:23
>つか、本気でわかっていないんだけど、なんでboolがCで使えるの? 
C99ではstdbool.hをincludeすればbool型が使える。

>釣れたつれてないとかではなく、誰かC++だといっている人がなぜ間違っているのか教えて。 
例えば
 bool get(char& c) { while (c = *pc++) if (!isspace(c)) return true; --pc; return false; } 
で関数の引数にCには無い参照(&)を使ってる。

260:デフォルトの名無しさん
06/05/23 00:30:19
もしboolがないなら自分で定義すりゃいいじゃん。
どちらにしてもboolはプリミティブじゃないんだからさ。

261:デフォルトの名無しさん
06/05/23 00:31:04
標準ライブラリとかそういうのってCの機能じゃねーだろ。死ねよ。

262:デフォルトの名無しさん
06/05/23 01:21:02
しかしCの仕様書には標準ライブラリも含まれている罠

263:デフォルトの名無しさん
06/05/23 10:51:55
>>262
俺に見られるようなソース出せ

264:デフォルトの名無しさん
06/05/23 10:58:16
言語としての仕様かどうかと言われたら、所詮は「ライブラリ」なわけで・・

265:デフォルトの名無しさん
06/05/23 12:20:47
>>263
図書館行くか通販でJISの規格書読め。

266:デフォルトの名無しさん
06/05/23 18:03:50
WEBで読めるやん

267:デフォルトの名無しさん
06/05/23 18:53:22
そろそろエサが古くなってきたか・・・

268:デフォルトの名無しさん
06/05/23 23:15:05
C99 が bool ?
本当か?


269:デフォルトの名無しさん
06/05/25 00:38:01
   λ,,,,,,λ ガオー!
  ∩`iWi´∩ λ,,,,λ グオー!
  ヽ |m| .ノ∩`iWi´∩
   |  ̄| ヽ |m| .ノ
   |   | |  |
   U⌒U  U⌒U

270:デフォルトの名無しさん
06/05/25 15:35:22
C#のパーサーガ必要なので、勉強をかねてLEX、YACCもどきを作ろうかとも考えたのですが、皆さんから見ると無謀でしょうか?
コンパイラ系は素人です。
C#の言語仕様見て、文法定義ファイルをつくってやれば何とかできるかなとも思ったのですが・・・
プロの皆さんの意見を聞きたいです。

271:デフォルトの名無しさん
06/05/25 16:11:49
A parser for C# using flex/bison
URLリンク(www.cs.may.ie)


272:デフォルトの名無しさん
06/05/25 16:44:59
>>271 C#のアウトプットが欲しい・・・

273:デフォルトの名無しさん
06/05/25 17:25:02
C#の言語仕様って出回ってないの???

274:デフォルトの名無しさん
06/05/25 18:01:34
>>273 でてる。

275:デフォルトの名無しさん
06/05/25 22:05:46
関係ないけど「コンパイラコンパイラ」って言葉、いまだに内心違和感アリ (´・∀・`)

意味解析,中間コード生成,最適化処理,目的コード生成は
(当然ながら)別にする必要があるのに、
”コンパイラを作成するためのコンパイラ”は看板に偽りがあるのでは?

実際、使い方の紹介でも、パターンに対応するアクションの処理の都合上
「スクリプトジェネレーター」的な例が大半だったから
勉強はじめた頃は余計にそう思ってた。 (´・д・`)

個人的には「コンパイラ作成用プロセッサ」なら許せるかな…

276:デフォルトの名無しさん
06/05/26 00:12:21
あっそ。

そういうくだらない感想文は、キミのつまんない糞ブログにでも書いてろ。
もう来んな。

277:デフォルトの名無しさん
06/05/26 00:29:29
個人で意味解析以降まで実際手がけてる人はあんまいないみたいよ
中田を買って良書とコメントする人はいぱーいぱーいいるけど

278:デフォルトの名無しさん
06/05/26 00:32:21
一番面白い部分をやらないなんてありえない

279:デフォルトの名無しさん
06/05/26 01:02:58
フフフ…
三平君ってそういうやつなんですよ

280:デフォルトの名無しさん
06/05/26 02:25:18
意味解析以降しかやらない、の間違いじゃないかと思いたい。


281:デフォルトの名無しさん
06/05/26 02:51:26
>>276
同じくくだらない感想でしかない上、さらにコンパイラさえまったく関わってこない
そのご自分のレスを通しちゃったら、なんの説得力も無いですよ :-)

282:デフォルトの名無しさん
06/05/26 03:33:48
ダイナミックトランスレーションってどういう手法なんでしょうか。
QEMUがやってるらしいのですが。

283:デフォルトの名無しさん
06/05/26 03:37:41
機械語を機械語にオンザフライで変換する事じゃない?
コードモーフィングみたいな。

284:デフォルトの名無しさん
06/05/26 03:45:25
あー、そんな面倒なことだったのか。。。
両方のインストラクションに詳しくないと駄目っすね。

285:デフォルトの名無しさん
06/05/26 08:28:46
>>275
現代では普通 parser generator と呼ぶよ。

286:デフォルトの名無しさん
06/05/26 08:42:42
>>281
はいはい。で、キミの足りない脳でブログは作れたか?

287:デフォルトの名無しさん
06/05/26 08:45:25
>>286
> はいはい
己の愚が理解できたようでなによりです。

288:デフォルトの名無しさん
06/05/26 10:59:45
>>287 俺じゃないのに乙
>>285 ありがとう

289:デフォルトの名無しさん
06/05/26 22:21:32
ANTLR使ってる人います?
なんかサンプルからエラー出て動かないんですが・・・

290:デフォルトの名無しさん
06/05/26 23:11:09
とりあえずバージョン (2.7.6とか3.0ea9)とか、
エラーメッセージくらい書いてもばちは当たらないと思うよ。


291:デフォルトの名無しさん
06/05/26 23:19:54
えーと落としなおして
antlr 2.7.5です。
javaの使い方の問題だと思うのですがGettingStarted の
java antlr.tool t.g をしても
Exception in thread "main" java.lang.NoClassDefFoundError:antlr/toolとなります。


292:デフォルトの名無しさん
06/05/26 23:28:02
それはアレだよ。初心者スレに行った方がいいんじゃね?

293:デフォルトの名無しさん
06/05/26 23:30:54
とりあえずJava質問スレで同じことを質問してあります・・・
結果わかり次第報告します。

294:デフォルトの名無しさん
06/05/26 23:32:34
言語ってほとんど枯れてしまったね。
出るのは重箱の隅ばかりw

295:デフォルトの名無しさん
06/05/27 00:14:33
Epigramなんか、めちゃくちゃ熱いと思うんだが。

296:デフォルトの名無しさん
06/05/27 00:38:05
>>295
依存型(dependent type)の利点をキボンヌ

297:デフォルトの名無しさん
06/05/27 00:46:50
>>294
つ[関数型言語]


298:デフォルトの名無しさん
06/05/27 07:07:10
スクリプトホストを作っています。
IActiveScriptSiteWindow::EnableModeless()なのですが、これが何に使うのかがよくわかりません。
VBScriptがMsgBoxやInputBoxを表示する際に呼び出されるという事はわかったのですが、これは何を意味しているのでしょうか?

299:デフォルトの名無しさん
06/05/27 09:36:58
知らない人は答えなくて結構です

300:293
06/05/27 11:12:09
えーとクラスパスの設定と大文字小文字とかをなおすことでうごきました・・・

やりたいことはC#2.0のパーサーを動かすことなんですが、
今kcsparse動かそうとして奮闘中。

301:デフォルトの名無しさん
06/05/27 11:29:17
質問です

グリーンピースでアンコって作れますか?

302:デフォルトの名無しさん
06/05/27 12:35:39
つ 「うぐいす餡」

303:デフォルトの名無しさん
06/05/27 23:00:19
「や…やめてください…」
「へへへ……ラップはもうビリビリだぜ、あとはフタだけだ」
「いやぁ! だめ、フタを開けないで…!」
「ひゃっはあ! なんて嫌らしいノンフライ麺だ!」
「おいおい、スープの素が2袋もあるぜぇ、こいつ誘ってんじゃねえのか?」
「そ、そんなんじゃありません…!」
「『食べる直前に入れてください』だぁ? 待ちきれねえ、今すぐ入れてやるぜ!」
「や、やめてー! ま、まだお湯も沸ききってないのに…!」
「うはぁ、すっげえ、冷えてる油とかやくでグチャグチャだぜ…たまんねえ!」
「そーれ、お次はお湯だ! 中にたっぷり入れてやる!」
「あああ! ぬ、ぬるい…! ……て、れてえ!」
「聞こえねえなあ、はっきりいえよオラッ!」
「せ、線まで! きちんと線まで入れてくださいぃいぃ!!」
「残念だったなあ、俺は1センチ残す派なんだよぉ! ははは!」

304:デフォルトの名無しさん
06/05/28 04:06:42
Persecについて、yaccやlex、boostのspiritしか知らない俺にも
わかる解説が欲しい。ご存知ありませんか?
URLリンク(www.lab2.kuis.kyoto-u.ac.jp)
を読んでもサッパリわかりませんでした。


305:デフォルトの名無しさん
06/05/28 18:25:15
>>303
焼きそばというオチじゃなかったっけ?
別バージョン?

306:デフォルトの名無しさん
06/05/30 18:23:09
>>304
おれもおれも

307:デフォルトの名無しさん
06/05/31 13:36:34
NTTの未来想論2006行く人挙手ノ

308:デフォルトの名無しさん
06/05/31 23:08:42
Parsec, ケ篦ョ、ハ・ウ・モ・ヘ。シ・ソ・ム。シ・オ

確かにさっぱりわからん

309:デフォルトの名無しさん
06/05/31 23:10:18
>>304
そこみて分からんようじゃぁ、何見ても(ry
Lispでもつかとけw

310:デフォルトの名無しさん
06/06/01 09:57:37
>>304
Haskelしらねぇと話にならないってことじゃないのかえ?


311:デフォルトの名無しさん
06/06/01 17:07:35
Persecの仕組みが知りたかったのですが、
Haskel知らないととダメということならあきらめます。
ありがとうございました。


312:デフォルトの名無しさん
06/06/02 03:22:33
>>311
難しくないからおぼえりゃいい。
というかあそこのページ読み下すのにコード例を読めなければ意味が半減じゃろ?



313:デフォルトの名無しさん
06/06/02 16:58:22
あのページ以外にももっとわかりやすい記述
(Haskell以外の言語を使うとか、もっと概念的な説明があるとか)
があればうれしかったのです。

でも、せっかくなのでなんとかHaskellを覚えようと思います。
そもそもParsecがHaskell固有の機能や概念を使ったものかどうかすら
わからないので、とにかくParsecのコード例を読めるよう勉強します。


314:デフォルトの名無しさん
06/06/03 03:09:34
ちょうど Haskell の入門書が出た所だよ。内容は Haskell スレで聞いてみれ。

315:デフォルトの名無しさん
06/06/03 03:28:22
世界一簡単なMonadの説明みたいなのが欲しいかもね

316:デフォルトの名無しさん
06/06/03 03:44:50
ANTLRのチュートリアルでおすすめのものってないですか?
C++のコード吐かせて使いたいんですが、APIがよ~わからん。

317:デフォルトの名無しさん
06/06/03 03:51:10
解ればどうってことない。<モナド

318:デフォルトの名無しさん
06/06/03 06:22:43
そうそう。要は自己関手と自然変換からなる圏にモノイド構造を
入れ込んだものと思えばよい。

319:デフォルトの名無しさん
06/06/03 16:59:28
>>318
あぁ、ナルホド。凄い分かり易い...



わけねーだろw

320:デフォルトの名無しさん
06/06/04 12:36:38
298ですが、299は私ではないです。一応念のため。
それと2chなんでダメ元で聞いておりますので別にレスが無くても特に構わないのです。でわでわ。

321:デフォルトの名無しさん
06/06/04 15:42:55
あ、もともと2chを見てる人に答えがわかるとは期待してないという意味です。でわ。

322:こゆのは晒すべきだろう
06/06/04 16:20:18
2chを見てる人=321
捨て台詞にしても陳腐だな。おまえ心に棚を作り過ぎたんじゃねえのw

323:デフォルトの名無しさん
06/06/04 16:32:47
心の棚はいくつあっても無駄にはならん

324:デフォルトの名無しさん
06/06/04 17:36:10
>>322
相手にすんなって。寂しいだけなんだから。
居座られても困るだろ。

325:デフォルトの名無しさん
06/06/04 19:39:53
>>323
変に数が多いと埃が溜まりやすいけどな

326:デフォルトの名無しさん
06/06/05 03:03:12
320と321が同一人物であるとも限らんわけだが。
いずれにしても、だれかこいつに「スレ違い」という言葉の意味を教えてやれよ。

327:デフォルトの名無しさん
06/06/05 10:15:20
誰かが自分を気にしてるとでも思ってるのかこいつはw

328:デフォルトの名無しさん
06/06/05 14:10:12
>>327
それ、お前が書き込むまでは成立してたんだがなw

329:デフォルトの名無しさん
06/06/05 14:26:02
注目し関心を持つところまでいかなきゃ
「気にする」とは言えないだろ

330:デフォルトの名無しさん
06/06/05 20:14:42
反応してる時点で気にしまくり

331:デフォルトの名無しさん
06/06/05 21:03:26
どうしてもそう思うなら別にそれでもいいけど

332:デフォルトの名無しさん
06/06/05 21:53:34
Conservative Garbage Collection の基礎を説明しているペーパーが
あったら教えて下さい。↓みたいな基本的な事が書いてあると嬉しいです。

- 何を以てポインタと判断するのか
- ポインタが指している先の変数のサイズをどうやって知るのか
- 実装で良く使われる効率化手法

333:デフォルトの名無しさん
06/06/06 06:20:41
>>331
誰もお前のことなんか気にしてないから頑張らなくていいよw

334:デフォルトの名無しさん
06/06/06 08:40:52
>>333
それ、お前が書き込むまでは成立してたんだがなw

335:デフォルトの名無しさん
06/06/06 18:51:13
注目し関心を持つところまでいかなきゃ
「気にする」とは言えないだろ

336:デフォルトの名無しさん
06/06/07 00:03:45
反応してる時点で気にしまくり

337:デフォルトの名無しさん
06/06/07 00:11:11
どうしてもそう思うなら別にそれでもいいけど

338:デフォルトの名無しさん
06/06/07 08:25:05
Conservative Garbage Collection の基礎を説明しているペーパーが
あったら教えて下さい。↓みたいな基本的な事が書いてあると嬉しいです。

- 何を以てポインタと判断するのか
- ポインタが指している先の変数のサイズをどうやって知るのか
- 実装で良く使われる効率化手法


339:デフォルトの名無しさん
06/06/07 21:59:54
>>337
誰もお前のことなんか気にしてないから頑張らなくていいよw

340:デフォルトの名無しさん
06/06/07 23:22:27
>>339
それ、お前が書き込むまでは成立してたんだがなw

341:デフォルトの名無しさん
06/06/07 23:45:31
なにこの強烈なデジャヴ

342:デフォルトの名無しさん
06/06/07 23:53:14
押井守のアレかよ!



343:デフォルトの名無しさん
06/06/08 08:05:27
注目し関心を持つところまでいかなきゃ
「気にする」とは言えないだろ

344:デフォルトの名無しさん
06/06/08 08:35:11
明日はコンパイラ祭。でも、俺の夢は、333や334さまや335さま、
336ちゃんや337さんや338さん達とずーっと、ずーっと煽りあって
楽しく過ごすことだ。

345:デフォルトの名無しさん
06/06/08 08:55:38
反応してる時点で気にしまくり

346:デフォルトの名無しさん
06/06/08 19:11:02
どうしてもそう思うなら別にそれでもいいけど

347:デフォルトの名無しさん
06/06/08 19:28:41
Conservative Garbage Collection の基礎を説明しているペーパーが
あったら教えて下さい。↓みたいな基本的な事が書いてあると嬉しいです。

- 何を以てポインタと判断するのか
- ポインタが指している先の変数のサイズをどうやって知るのか
- 実装で良く使われる効率化手法


348:デフォルトの名無しさん
06/06/08 20:06:07
>>346
誰もお前のことなんか気にしてないから頑張らなくていいよw


349:デフォルトの名無しさん
06/06/08 21:34:03
>>348
それ、お前が書き込むまでは成立してたんだがなw

350:デフォルトの名無しさん
06/06/08 22:09:02
なんかデジャブった

351:デフォルトの名無しさん
06/06/08 22:29:06
押井守のアレかよ!

352:デフォルトの名無しさん
06/06/08 23:36:14
注目し関心を持つところまでいかなきゃ
「気にする」とは言えないだろ

353:デフォルトの名無しさん
06/06/09 03:32:30
どうしてもそう思うなら別にそれでもいいけど

354:デフォルトの名無しさん
06/06/09 08:05:10
Conservative Garbage Collection の基礎を説明しているペーパーが
あったら教えて下さい。↓みたいな基本的な事が書いてあると嬉しいです。

- 何を以てポインタと判断するのか
- ポインタが指している先の変数のサイズをどうやって知るのか
- 実装で良く使われる効率化手法


355:デフォルトの名無しさん
06/06/09 08:58:59
>>353
誰もお前のことなんか気にしてないから頑張らなくていいよw

356:デフォルトの名無しさん
06/06/09 12:26:19
>>355
それ、お前が書き込むまでは成立してたんだがなw

357:デフォルトの名無しさん
06/06/09 16:56:43
なにこの強烈な押井守

358:デフォルトの名無しさん
06/06/09 18:49:18
注目し関心を持つところまでいかなきゃ
「気にする」とは言えないだろ


359:デフォルトの名無しさん
06/06/09 20:50:20
反応してる時点で気にしまくり

360:デフォルトの名無しさん
06/06/10 01:45:52
どうしてもそう思うなら別にそれでもいいけど

361:デフォルトの名無しさん
06/06/10 06:34:54
>>360
誰もお前のことなんか気にしてないから頑張らなくていいよw

362:デフォルトの名無しさん
06/06/10 08:07:09
>>361
それ、お前が書き込むまでは成立してたんだがなw

363:デフォルトの名無しさん
06/06/10 08:28:39
注目し関心を持つところまでいかなきゃ
「気にする」とは言えないだろ

364:デフォルトの名無しさん
06/06/10 08:30:20
Conservative Garbage Collection の基礎を説明しているペーパーが
あったら教えて下さい。↓みたいな基本的な事が書いてあると嬉しいです。

- 何を以てポインタと判断するのか
- ポインタが指している先の変数のサイズをどうやって知るのか
- 実装で良く使われる効率化手法


365:デフォルトの名無しさん
06/06/10 08:44:29
反応してる時点で気にしまくり

366:デフォルトの名無しさん
06/06/10 08:45:47
どうしてもそう思うなら別にそれでもいいけど

367:デフォルトの名無しさん
06/06/10 08:46:41
Conservative Garbage Collection の基礎を説明しているペーパーが
あったら教えて下さい。↓みたいな基本的な事が書いてあると嬉しいです。

- 何を以てポインタと判断するのか
- ポインタが指している先の変数のサイズをどうやって知るのか
- 実装で良く使われる効率化手法

368:デフォルトの名無しさん
06/06/10 08:55:49
>>366
誰もお前のことなんか気にしてないから頑張らなくていいよw

369:デフォルトの名無しさん
06/06/10 11:30:59
>>367
そろそろレポートの締め切りも近いわけだが、がんばってくれ…。

370:デフォルトの名無しさん
06/06/10 11:40:39
>>367 ほれ
URLリンク(www.google.com)

371:デフォルトの名無しさん
06/06/10 11:57:56
どうしてもそう思うなら別にそれでもいいけど

372:デフォルトの名無しさん
06/06/10 12:19:46
>>371
そろそろレポートの締め切りも近いわけだが、がんばってくれ…。

373:デフォルトの名無しさん
06/06/10 14:13:44
>>372
いや、お前が書き込むまでは頑張ってたんだがなw

374:デフォルトの名無しさん
06/06/10 14:50:05
>>373
誰もお前のことなんか気にしてないから頑張らなくていいよw

375:デフォルトの名無しさん
06/06/10 17:58:05
あ、なんかデジャヴった

376:デフォルトの名無しさん
06/06/10 18:12:25
押井守のアレかよ!

377:デフォルトの名無しさん
06/06/10 18:22:55
話すネタ無いし、ループ好きなのわかったからそろそろ











ループしようぜ!

378:デフォルトの名無しさん
06/06/10 19:54:52
どうしてもそう思うなら別にそれでもいいけど

379:デフォルトの名無しさん
06/06/11 00:28:50
シャヨウ分野だなw

380:デフォルトの名無しさん
06/06/13 22:41:32
なんか、この分野の日本人研究者って、
WーCUPサッカーレベルだねw

381:デフォルトの名無しさん
06/06/13 23:39:09
いや、むしろスキーのジャンプって感じじゃないか?

382:デフォルトの名無しさん
06/06/14 08:42:29
そのこころは?


383:デフォルトの名無しさん
06/06/14 18:40:44
体重が軽い人ほど優秀

384:デフォルトの名無しさん
06/06/14 21:53:52
>>383
いつの時代だよw

385:デフォルトの名無しさん
06/06/14 22:54:08
確かにT先生もN先生もひょろひょろだな

386:デフォルトの名無しさん
06/06/17 21:16:46
>>367
まだここを読んでればだけど、370が示したリンクで最初に出てくる
Boehmの解説ページなり、英語が嫌ならRubyの解説ページなんかいいんじゃないか。

URLリンク(i.loveruby.net)

Rubyの手法の場合、Rubyのオブジェクトしか管理できないので、
Cのmalloc()の代替が欲しいということなら役に立たないけど。


387:デフォルトの名無しさん
06/06/17 22:11:57
そしてループが始まった

388:デフォルトの名無しさん
06/06/18 23:52:57
なんか、この分野の日本人研究者って、
WーCUPサッカーレベルだねw

389:デフォルトの名無しさん
06/06/18 23:58:24
サッカーって書かれると吸血鬼を思い出す。

390:デフォルトの名無しさん
06/06/19 00:01:51
そのこころは?

391:デフォルトの名無しさん
06/06/19 00:40:05
sucker でしょ

392:デフォルトの名無しさん
06/06/19 00:41:09
引き分けたで~
日本の言語技術も、よくて引きわ(ry

393:デフォルトの名無しさん
06/06/19 00:43:30
なんか、この分野の日本人研究者って、
WーCUPフットボールレベルだねw

394:デフォルトの名無しさん
06/06/19 18:53:01
>>393
おそらく一番の馬鹿w

395:デフォルトの名無しさん
06/06/19 19:06:55
>>394
いや、お前が書き込むまでは馬鹿だったんだがなw

396:デフォルトの名無しさん
06/06/19 19:09:06
そのこころは?

397:デフォルトの名無しさん
06/06/19 19:10:39
>>395
誰もお前のことなんか気にしてないから頭良くなっていいよw

398:デフォルトの名無しさん
06/06/19 19:12:04
真の馬鹿がレスしてしまったら
そいつを「馬鹿」とは言えないだろ

399:デフォルトの名無しさん
06/06/19 20:29:35
つまりお前が馬鹿ってことだ。

400:デフォルトの名無しさん
06/06/19 23:32:05
ここは出来の悪い荒らしスクリプトの実験場みたいですね

401:デフォルトの名無しさん
06/06/20 02:25:56
荒らしスレとして、削除されたりしてなw

402:デフォルトの名無しさん
06/06/20 20:57:50
>>400
いや、お前が書き込むまでは実験場じゃなかったんだがなw

403:デフォルトの名無しさん
06/06/20 21:04:49
なにこの強烈な鷹村守

404:デフォルトの名無しさん
06/06/21 03:11:29
ようし、ラットをつれてこい

405:デフォルトの名無しさん
06/06/21 15:24:39
ようし、ラットをつれてこい

406:デフォルトの名無しさん
06/06/22 01:19:53
ようし、マッチョつれてこいキュピピンっていうやつな

407:デフォルトの名無しさん
06/06/24 04:11:36
データフロー解析の簡単な例プリーズ

408:デフォルトの名無しさん
06/06/25 21:04:50
たとえばリンクリスト内にサイクルがあるかを解析するデータフロー方程式は
以下のように書ける。




記号が出なかったので、やっぱりやめ。

409:デフォルトの名無しさん
06/06/26 19:39:40
結論として、Rubyは糞!でよろしかったですか?

410:デフォルトの名無しさん
06/06/26 20:36:14
RubyもLispも糞

411:デフォルトの名無しさん
06/06/26 20:37:19
JavaがBEST

412:デフォルトの名無しさん
06/06/26 20:37:19
それでは、結論として、RubyもLispも糞!でよろしかったですか?

413:デフォルトの名無しさん
06/06/26 23:28:29
それでいいよ。
Haskellに比べたら、それぞれ「不純物」「いい加減」でしかないし。

414:デフォルトの名無しさん
06/06/26 23:44:40
いえ、Haskellは、元々問題外でしたから…

415:デフォルトの名無しさん
06/06/28 21:26:27
質問です、一版論として文字列中への変数値の文字列展開は、どのタイミング
で行うのが一般的でしょうか?

PATH="$PAHT:/etc"

として、文字列リテラルを認識したとき?
それとも左辺へ代入したとき?
それとも左辺値を評価するとき?

416:デフォルトの名無しさん
06/06/28 22:32:20
>文字列リテラルを認識したとき
実装の容易さで大抵これになる。

>左辺値を評価するとき
でもLazy実装もいいかも。

文字列オブジェクトが不変であれば
本当の最後になるまでは展開しなくてもよさげ。


417:デフォルトの名無しさん
06/06/28 23:59:39
>>416
横やりだが、例えば、

x=3
Sample="#x is three."
x+=1
p Sample

のときの表示って、考え方によって異なるね。

418:デフォルトの名無しさん
06/06/29 02:25:02
もし、その表示が異なるなら、考え方の違いと言うより、仕様の違いだと思う>>417

419:デフォルトの名無しさん
06/06/29 23:26:31
設定ファイルを解析し
ソースコードをC、JAVA、C++用に自動出力したいのですが

構造解析までは終わったのですが、そのデータをもとに中間言語を
吐き出したいのです。中間言語のみを作るソフトってありませんか?

420:デフォルトの名無しさん
06/06/30 00:00:48
javac

421:デフォルトの名無しさん
06/06/30 00:02:09
>>419
・設定ファイルって一体なんだ
・中間言語のみを作るソフトはいっぱいあるが、それがどうしたのか
・というか、あんたは一体何をしたいのか

422:デフォルトの名無しさん
06/06/30 00:08:27
>>421
設定ファイルには制御機器のパラメタとかそんな情報が入ってます。
この設定ファイルを読み込み各機器に合わせた設定を行う
Cのソースを吐かせたいのですよ。

中間言語だけ作るソフト教えてくれませんか?

423:デフォルトの名無しさん
06/06/30 00:13:06
> ソースコードをC、JAVA、C++用に自動出力したいのですが

> Cのソースを吐かせたいのですよ。

JAVAとC++は何処へ行った

424:デフォルトの名無しさん
06/06/30 00:18:34
>>422
設定ファイル     C/C++/Java のプログラム
→→→→→→→→→→→→→→→→→→→→
        変換機

この 「変換機」 が作りたいという判断でOK?
んで、求めているのは

設定ファイル          中間言語       C/C++/Java のプログラム
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
       中間言語作るソフト    自作の変換機

これか?

425:デフォルトの名無しさん
06/06/30 00:23:05
うんうんそうそう
俺なんか>>424が神様に見えてきたよ
ありがたやありがたや。

>>423
最初から欲張るなとか怒られそうなので控えめな
最小限の希望を最後に書きました

426:デフォルトの名無しさん
06/06/30 00:26:22
>>425
とりあえず 「設定ファイルの仕様」 「変換後の C/C++/Java ソースコードのサンプル」 だけでも教えてくれ。
それが分からないと、どうにも言いようがない罠w

427:デフォルトの名無しさん
06/06/30 00:33:03
まだファイルの仕様とか決めていないのですよ
中間言語作るソフトって具体的にどんなソフトなのでしょうか

428:デフォルトの名無しさん
06/06/30 00:37:29
求めてるソフトに望んでる仕様は何なんだ?
多分そんなソフトはないし全部作ることになると思うけど。

429:デフォルトの名無しさん
06/06/30 00:38:11
>>427
バカスwwwwwwwwwwww
お前が求めているソフトは未来人でしか作れんわwwwwwwwww


どうだろうね。.NET の CodeDOM とか参考になるかも。

430:デフォルトの名無しさん
06/06/30 00:45:53
えーと、gccのRTLという中間言語どうやって出来たんだろう
なんかツールで文法とか作ったのかな

431:デフォルトの名無しさん
06/06/30 01:02:23
>>430
もしかして、中間言語の仕様を自動生成しようとか思ってるw?

432:デフォルトの名無しさん
06/06/30 02:51:42
言語をいくつか嗜んでくうち野心に満ちてきました。
俺言語作りたい!!

ポインタをハッシュテーブルで包んであげたらOOPなる?
そんなあまかないですね。
質問であります。俺言語作る人って出回ってるライブラリとか使わないの?

433:デフォルトの名無しさん
06/06/30 03:00:01
>>432
新しく作った言語は、Red-Sapphire と命名しましょう。

434:デフォルトの名無しさん
06/06/30 03:20:35
>>432
命名の参考までに

宝石の一覧
URLリンク(ja.wikipedia.org)
鉱物の一覧
URLリンク(ja.wikipedia.org)
神の一覧
URLリンク(ja.wikipedia.org)
悪魔の一覧
URLリンク(ja.wikipedia.org)
伝説の生物一覧
URLリンク(ja.wikipedia.org)

Category:一覧
URLリンク(ja.wikipedia.org)

435:デフォルトの名無しさん
06/06/30 03:22:48
>>432
>ポインタをハッシュテーブルで包んであげたらOOPなる?
Io をオススメしてみる。

436:デフォルトの名無しさん
06/06/30 04:58:18
スロットの問い合わせにハッシュを使わない動的型付けな OOPL の実装ってある?

437:デフォルトの名無しさん
06/06/30 06:15:36
>>432
名前はダイナモンドにしろ

438:デフォルトの名無しさん
06/06/30 10:16:15
それいけそれいけガイコッツー うんうん ガァ~イコツー

439:デフォルトの名無しさん
06/06/30 20:31:34
命名の参考にもっとも必要なのは、
プログラム言語名称の一覧ではないかと愚考する

440:デフォルトの名無しさん
06/06/30 21:32:11
>>439
それもそうだな。

プログラミング言語一覧 - Wikipedia
URLリンク(ja.wikipedia.org)
ABC's Song - kMonos.NET
URLリンク(www.kmonos.net)
Hello, World Page!
URLリンク(www2.latech.edu)

もっと詳しいのなかったっけ?

441:デフォルトの名無しさん
06/07/01 01:06:27
>>440
2つ目のリンクがオッパイのflashかと思ってしまいましたorz


442:デフォルトの名無しさん
06/07/01 02:05:09
>有志の皆様
ふれてない命名だけこんな濃いアドバイス頂きありがとうございます。

>435
io をちょろっといじくってますけど、
他の言語手を出せば出すほど車輪が頭を過ぎりました

関係ないですけど、flexとbisonをいじり倒してみて思った事があります。
サンプルの使い方から馴染むと苦労する。そんな事無い?


443:デフォルトの名無しさん
06/07/01 09:43:31
最近の流行は手書きだぞ
gcc4.1だってフルスクラッチで書いてあるんだぞ

444:デフォルトの名無しさん
06/07/01 14:37:43
C++のfrontも?

445:デフォルトの名無しさん
06/07/01 14:41:46
>>444
front?

446:デフォルトの名無しさん
06/07/01 18:46:45
お客様frontは、3階になっております

447:デフォルトの名無しさん
06/07/07 01:10:43
正規表現のRFCってどこにあったっけ?

448:デフォルトの名無しさん
06/07/07 01:58:58
POSIX じゃ駄目?

449:デフォルトの名無しさん
06/07/07 02:01:57
完全にサポートしているソフトがない規格

450:デフォルトの名無しさん
06/07/08 08:05:00
>>449
アフォ?
ふつうフルサポートされてますが、


451:デフォルトの名無しさん
06/07/08 09:39:59
されてないよ

ケーパビリィティとか

つうかPOSIXったって細かく色々あるわけで

452:デフォルトの名無しさん
06/07/08 16:03:26
POSIXのどれか指定しないと意味のない議論だね。


453:デフォルトの名無しさん
06/07/09 18:02:50
ん?アフォ?
正規表現の話でしょ?
Posixで確定できるよ。


454:デフォルトの名無しさん
06/07/09 18:37:58
そうですね

455:デフォルトの名無しさん
06/07/09 19:01:20
なんだよいいともかよ

456:デフォルトの名無しさん
06/07/12 04:44:30
POSIXよりPerlの正規表現が強力な件

457:デフォルトの名無しさん
06/07/12 04:57:22
N88BASICみたいな初心者向けの言語で、広く使われている言語ってありますかね?

458:デフォルトの名無しさん
06/07/12 09:34:29
すぐ思いつくのは Python かな。もともと教育用言語だった。

459:デフォルトの名無しさん
06/07/12 12:04:09
>>458
なるほど、教育用言語は間違いなく初心者向けですね
教育用言語と言われるとPascalも思い出しますね
ありがとうございます

ただ、プログラミングの教育用言語というようなもの以外に、
普段プログラミングをしない人が初めてのプログラミングが必要になる、
そういう場合に適した言語を探しています。
VisualBasicは書いたことがないけど、感覚的にはそういうのです

460:デフォルトの名無しさん
06/07/12 18:23:21
教育用=初心者用 ということならば、

Lisperは皆初心者ってことでOK?


461:デフォルトの名無しさん
06/07/12 18:42:35
>>459
そういうことならTcl/TKが適しているように思う。
必須となる概念が少ない、GUI作成が容易、環境非依存等々。

462:デフォルトの名無しさん
06/07/12 21:00:07
>>459
JavaScript か Python かなぁ。
色んなツールのマクロ言語として良く使われているから、非プログラマにも
受け入れられ易いんじゃないかな。

>>460
Lisp が対象としている初心者は、将来 Wizard になる事を期待されている
理工系の学生とかじゃないかな。

463:デフォルトの名無しさん
06/07/12 21:57:37
>>462
ECMAScriptは初心者用とは違うでしょう。Pythonは知らないけど。

N88BASICかVisualBasicかでいいんじゃないかと思う

464:デフォルトの名無しさん
06/07/12 22:28:44
初心者専用という意味ではなく、初心者にも取っ付き易い言語って事で挙げたんだけどな。
ドキュメントが多いし、インストール不要だし、エディタマクロやちょっとしたウェブページの装飾
にも使われているし。

後は用途次第かな。

465:デフォルトの名無しさん
06/07/12 22:37:57
皆さんありがとうございます。

>>464
用途としては、実はJavaScriptを書かせるのが難しすぎるため、
もっと簡単な言語を用意してあげられないか、という話なのです。
プログラマじゃない人間にとってはJavaScriptも難しすぎるようです。

466:デフォルトの名無しさん
06/07/12 22:52:17
さあどんどん後出し設定がでてきますよ

467:デフォルトの名無しさん
06/07/12 22:56:58
実は生徒は日本語が(ry

468:デフォルトの名無しさん
06/07/12 23:02:20
>>465
JavaScript がダメなら Python もダメだろうね。
普通の人なら半日も教えれば自習出来るようになるとは思うけど...

469:デフォルトの名無しさん
06/07/12 23:24:35
>>468
はい。実はPythonも試してみましたが難しすぎるようでした。

470:デフォルトの名無しさん
06/07/12 23:36:19
BASICでいいじゃん。

変数の宣言もいらないし、関数の概念すらないし、
GOTOは直感的にわかりやすいだろうし、
初めてプログラムを書く人にとっては良いと思うよ

471:デフォルトの名無しさん
06/07/12 23:41:01
URLリンク(ja.wikipedia.org)
Full BASICという標準化されたベーシックがあるらしいな
でも行番号のないベーシックはベーシックでない気がする

472:デフォルトの名無しさん
06/07/13 00:02:23
BASICの肝ってインタラクティブ環境だってことだと思うんだけどなぁ。
言語がlispでエディタ機能がグッとよくなったらemacsって言うのかもしれないけど


473:デフォルトの名無しさん
06/07/13 00:26:39
>>472
インタラクティブ、懐かしいね。すっかり忘れてた

474:デフォルトの名無しさん
06/07/13 02:44:19
Javascriptのどこが難しいんだよ
奥は深いけど、軽く使う分にはお手軽じゃんよ

いきなり「プロトタイプ指向の~」とか教えてないよな

475:デフォルトの名無しさん
06/07/13 03:34:49
>>474
例外的な文法が多くて混乱させる悪質な言語だと思う。
・グローバルスコープでは変数の宣言が必要なくて、関数スコープでは必須
・オブジェクトへのアクセスと配列へのアクセスの表記が全く同じ
・o["name"]とo.nameが同じにも関わらず、o["123abc"]は問題なくo.123abcは文法違反

476:デフォルトの名無しさん
06/07/13 09:31:05
>>475
>・オブジェクトへのアクセスと配列へのアクセスの表記が全く同じ

これは良いんじゃないの。同じなんだから。

477:デフォルトの名無しさん
06/07/13 09:50:37
>>476
var a = []; a[0] = 0; a[1] = 1; window.alert(a.length);
var o = {}; o[0] = 0; o[1] = 1; window.alert(o.length);

478:デフォルトの名無しさん
06/07/13 10:28:25
javascript は with が邪悪に感じるよ
with ("") toString = toString();
こんなよーなのに殺意を抱く
あと
this[0]
this["0"]
this[00]
this["00"]
this[false]
this["false"]
ここらへん違和感


479:デフォルトの名無しさん
06/07/13 13:42:41
>>475にとっては自分自身で設計した言語じゃないと全て例外ありまくりだな。


> ・グローバルスコープでは変数の宣言が必要なくて、関数スコープでは必須

グローバルスコープでも宣言すりゃあいいんでは。
「宣言したら宣言のあったところのスコープになる。なければグローバル」
と理解すればいいんじゃないの。

> ・オブジェクトへのアクセスと配列へのアクセスの表記が全く同じ

どこが例外的なのかさっぱり理解できん。

> ・o["name"]とo.nameが同じにも関わらず、o["123abc"]は問題なくo.123abcは文法違反

後者でo.123abcを許す方が例外的だと思う。


480:デフォルトの名無しさん
06/07/13 15:24:27
>>475
>・オブジェクトへのアクセスと配列へのアクセスの表記が全く同じ
ECMAScript のArrayは「配列型」みたいな専用の型じゃなくて「Arrayオブジェクト」だもの…
オブジェクト型である以上他のオブジェクトと同じようにアクセスできるのが自然.

# だからといってECMAScript がそれほど初心者向き言語だとは思わないが…

481:デフォルトの名無しさん
06/07/13 15:29:51
>>479

> 後者でo.123abcを許す方が例外的だと思う。

実装屋さんからすればその通りだが、俺が初めてCに触ったときに
void 3kaku() {}
という関数が受け入れられない理由がさっぱりわからなかった。

技術者の発想では、初心者用の言語は出来ないだろうね。

482:デフォルトの名無しさん
06/07/13 20:56:59
言語の方からすべて初心者の要望にあわせた言語を作るなら
使い物にならん日本語言語が出来るか
VBやHSPをはるかに超えたクソ言語ができるだろう。


483:デフォルトの名無しさん
06/07/13 21:10:24
コンパイラに入門をしたいのですが、
最低限動かしながら覚えていく手段はありませんでしょうか?
コンパイラの簡単な理論の本は読んだんですが、
コンパイラが動くための全ての理論を理解して全て実装してから
というのは膨大な時間が必要なようで困っています。


484:デフォルトの名無しさん
06/07/13 21:23:27
まずRubyの一行スクリプトから初めて、
次の日に二行スクリプト、
次には三行スクリプト。

485:デフォルトの名無しさん
06/07/13 21:26:07
Intelにインターンとして行ってみたら?

486:デフォルトの名無しさん
06/07/13 23:04:30
>>478
どこが?

お前の感覚では、100円と100Kg が違うのも違和感だろうなぁ


487:デフォルトの名無しさん
06/07/13 23:16:05
>>486
あれ、478は100円と100kgが同じであることに違和感を感じているんでしょ?

488:デフォルトの名無しさん
06/07/13 23:55:05
>>485
Intelとは技術展で飴もらうくらいしか関わり合いがないれすorz。


489:デフォルトの名無しさん
06/07/14 00:17:48
>>483
仮想マシンつくってそのマシン用のコンパイラを今の自分の環境で作って
その次にその新しい言語のコンパイラを自己記述してから仮想マシンに持って行く
という方法が一番学習には向いてるとおもう。

古い文献(30年位前?)でμplanって言語の紹介がbitにあったけどああいうもので始めるのはある意味正解かもしれない
planのvmは4Kバイトのアドレス空間しかない16ビットの仮想スタックマシン.

つかコンパイラ系の処理の何を会得したいのか不明じゃあんまり示唆のしようもないんだけどな。

490:デフォルトの名無しさん
06/07/14 02:30:37
>>483

機械語コードを吐くコンパイラ作成の入門としては、昔こんなのがあったんだけど、

yaccによるCコンパイラプログラミング (単行本)
近藤 嘉雪
URLリンク(www.amazon.co.jp)

今はもう手に入らないしねえ。

>>489の言うとおり、最初は簡単な仮想マシン上で動くものを作るほうがいいように思う。

yacc/lex―プログラムジェネレータonUNIX (単行本)
五月女 健治
URLリンク(www.amazon.co.jp)

この本では、簡単なスタックマシン上で動作するCライクな処理系の
フルソースが載ってたはず。でもこれも絶版…と思ったら、Amazonで中古が
手に入るのか。

レビューでは星ひとつになってるが、俺には結構役に立ったんだがなあ。
# でもやっぱり説明は役に立たずに、ひたすらサンプルコードを読んでたが。



491:デフォルトの名無しさん
06/07/14 16:08:20
全部持ってるけどさわり以外まったく読んでないな

492:デフォルトの名無しさん
06/07/14 23:19:36
本読んで理解するより、自分で作った方が早い
BNFと再帰程度の知識で、コンパイラは書ける

493:デフォルトの名無しさん
06/07/14 23:35:12
コンパイラ作れない香具師はプログラマとして認められず

494:デフォルトの名無しさん
06/07/14 23:50:47
どっちの人にもメール送ったけど原稿は紙だし再販する気は
ないみたい

495:デフォルトの名無しさん
06/07/15 01:18:14
────────────────
参加者:筑紫 鳥越 古舘 小倉 田原  閲覧(1)
────────────────
筑紫 : ROMってる奴ってネットウヨなんじゃないの?
────────────────
鳥越 : インターネッツのゴミ貯め・2chに生息するあの連中ですかww
────────────────
古舘 : 怖い怖い、我々も論破されちゃうんですかね~(藁
────────────────
田原 : 論破して貰おうじゃないの、ホラ、入ってきなさいよ
────────────────
小倉 : さっさと入って来いよ、ハゲ!
────────────────
『櫻井よしこ』が入室しました
────────────────
『筑紫』が退室しました
────────────────
『鳥越』が退室しました
────────────────
『古舘』が退室しました
────────────────
『田原』が退室しました
────────────────
『小倉』が退室しました

496:デフォルトの名無しさん
06/07/15 12:13:26
>>483
こんなのもあった。

URLリンク(www.watalab.cs.uec.ac.jp)


497:デフォルトの名無しさん
06/07/15 15:52:21
>>483
これも小さいね。

URLリンク(www.nk.rim.or.jp)

498:デフォルトの名無しさん
06/07/15 21:07:09
なんでどっちも、圧縮形式で何十キロもあるんだよ
最低限のことしかやってなかったら、そんなに大きいはずない
俺が暇つぶしに書いたヤツ、圧縮しなくても18キロだよ?

499:デフォルトの名無しさん
06/07/15 21:25:16
このスレで IActiveScript 系の質問するとスルーされるようなのですが、
他に専用スレでもあるんでしょうか?

500:デフォルトの名無しさん
06/07/15 21:59:54
>>498
vtlの方はしょうがないんじゃないの、実行ランタイムもついてたし。
なにしろvtlでvtlコンパイラ書いてあるの初めてみた(近いものでgameコンパイラ以来かも、つってもラベル使えるvtlってのはvtlと認めたくないけど)


501:デフォルトの名無しさん
06/07/16 09:44:55
DQN玄子はするーされまつ


502:デフォルトの名無しさん
06/07/17 22:36:41
インタプリタつくってるんだけど、実行部分のクラス名をExecutorにするかEvaluatorにするかで迷ってます。
どっちがいいと思う?
つまらん質問でごめん!

503:デフォルトの名無しさん
06/07/17 22:40:00
古の REPL に倣うなら Eval... の方。

504:デフォルトの名無しさん
06/07/17 23:07:54
小さいコンパイラシリーズもっとキボンヌ

505:デフォルトの名無しさん
06/07/18 01:33:43
>>498
496のほうだけど、圧縮ファイルほどくとドキュメントが一番でかいよ。

506:デフォルトの名無しさん
06/07/19 19:42:17
りんごタン


507:デフォルトの名無しさん
06/07/20 14:27:02
>>499
IActiveScriptのIDispatch の話なら、

URLリンク(alpha.sourceforge.jp)
この辺見たら何かわかるかも。

「自分のグローバルメンバを公開するか」ということと、
「他の言語のグローバルメンバにアクセスできるか」ということに分けて考えられる。
前者については IActiveScript::GetScriptDispatch で得られる
IDispatch (IDispatchEx で実装していることが多いみたい) ポインタがグローバルオブジェクトになり、

等とかいてあるけど。



508:デフォルトの名無しさん
06/07/20 17:52:38
あ?ケンカう

509:デフォルトの名無しさん
06/07/21 13:26:41
>>502
Executor インタプリタ の検索結果 約 1,520 件中 1 - 10 件目 (1.46 秒)
Evaluator インタプリタ の検索結果 約 279 件中 1 - 10 件目 (0.83 秒)
Executor interpreter の検索結果 約 147,000 件中 1 - 10 件目 (0.14 秒)
Evaluator interpreter の検索結果 約 554,000 件中 1 - 10 件目 (0.33 秒)
日本だと、Executor 国際的にはEvaluatorが多いみたい。


510:デフォルトの名無しさん
06/07/21 19:32:04
executorは殺されそうで怖い

511:デフォルトの名無しさん
06/07/21 22:08:03
executeだとVMのようなバイトコードエンジンのイメージがある
evalだと値の評価って感じなのでノードを扱ってるイメージかも

>>510
死刑執行人だっけ?

512:デフォルトの名無しさん
06/07/21 22:22:17
えくせきゅーしょなー

513:デフォルトの名無しさん
06/07/21 23:26:24
evaluator の方は validate 噛ましてるようなイメージない?

514:デフォルトの名無しさん
06/07/25 22:41:35
一方ロシアはawkを使った。

515:デフォルトの名無しさん
06/07/25 23:48:30
それ、元ネタなんだっけ?

516:デフォルトの名無しさん
06/07/25 23:58:22
安西先生

517:デフォルトの名無しさん
06/07/26 00:49:16
>>515
鉛筆を使ったって奴じゃろ。


518:デフォルトの名無しさん
06/07/26 22:58:00
しかし、日本はRubyを選んだ。

519:デフォルトの名無しさん
06/07/27 03:06:29
しかし島根は Ruby を選んだ



URLリンク(www.rubyist.net)

520:デフォルトの名無しさん
06/07/28 16:59:13
アンチRuby房は、竹島を韓国領土とでもいうのでしょうな。



521:デフォルトの名無しさん
06/07/28 22:35:19
>>520
言おうものなら自分の立脚している大地をぶちこわすだけだよ(笑

#国民は総統の(元台湾のw)声を聞く!
#元ネタわかる人は原語で書いてみよう

522:デフォルトの名無しさん
06/07/28 22:37:02
台湾の総統って4人しかいないんか

523:デフォルトの名無しさん
06/07/29 13:28:59
>>520
そんなアンチ「Ruby房」は君の妄想の中にしかいないから安心しろ。

Rubyの実装が腐ってるのは事実だし、これは作者も認めるだろう。
言語仕様は結局好みの問題だろうが。


524:デフォルトの名無しさん
06/07/29 15:47:47
実装が腐っているとか、作者も認めているとか
言いたい放題言いやがって、

脳内玄子お宅馬鹿は、すっこんでろ!


525:デフォルトの名無しさん
06/07/29 18:19:21
とまぁこんな風にRuby信者は頭が悪いわけです

526:デフォルトの名無しさん
06/07/29 18:34:14
こういうのって安置rubyが意図的に書き込んでるじゃなかったの?w

527:デフォルトの名無しさん
06/07/29 19:52:43
使う側にとっては実装が腐ってても別にかまわんわけで
でもbeginとendで囲むのはめんど(ry

528:デフォルトの名無しさん
06/07/29 21:36:44
beginとendで囲むと言ってる時点でruby使って無いのがバレている訳で

529:デフォルトの名無しさん
06/07/29 21:38:59
python使いです

530:デフォルトの名無しさん
06/07/29 23:15:18
{}でも大丈夫です


531:デフォルトの名無しさん
06/07/29 23:36:34
> Rubyの実装が腐ってるのは事実だし、これは作者も認めるだろう。

おい、ソース出してみろよw
ふざけたこと書き込むなよな。馬鹿が信じるだろw

532:デフォルトの名無しさん
06/07/29 23:47:43
>>531
URLリンク(www.rubyist.net)
>まあ、自分のことを言語実装者としてよりも言語設計者と考えている私としては

URLリンク(www.rubyist.net)
>これでRiteの実行系は任せることができるかもしれない。楽できる。
>というか、モノをつくり出す能力が減退しているので、笹田くんのような若い力はありがたい


ぱっと思い出せるフレーズとしてはこんな感じ。
まあ、これは自虐じゃなくて謙遜だろうけど。

533:デフォルトの名無しさん
06/07/30 00:06:49
それだけの情報で「腐ってる」とは・・・

534:デフォルトの名無しさん
06/07/30 00:21:07
どの行間読んだら、作者が認めていることになるんだw

535:532
06/07/30 00:25:53
>>534
あ、俺 >>523 じゃないから注意ね。言っても信じてもらえんとは思うが。

536:デフォルトの名無しさん
06/07/30 01:03:43
どうにもこうにも、Rubyの実装が腐っていることは事実なんだけどな。

いまどきVMでもない、再帰で構文木を下降するような実装で、
本質的に速度を追求できない構造であるにもかかわらず、
いらんところでCの低レベルな機能に頼りすぎ。
breakごときでlongjmp()するし、GCはスタックの構造に依存してるし、
Fixnumの持ち方なんかなんだありゃ。
スレッドがアレなのは、時代からするとしょうがないのかもしれないけれど。

それ以前に、ソース自体グローバル変数使いすぎだし。

ちなみにPerlの実装はもっと腐ってるが。つかあれのソースは読めない。


537:デフォルトの名無しさん
06/07/30 03:33:11
Fixnumはオブジェクトとして扱いながら即値としても扱えるというメリットがあって好きだけど

538:デフォルトの名無しさん
06/07/30 04:41:31
最近VMベースのruby実装もできてきてるがな。

539:デフォルトの名無しさん
06/07/30 11:23:35
>>537
タグつきで数値とポインタを切り分けること自体は
Lispとかじゃあたり前にやってることで
別におかしくない

Ruby自体知らんから、Fixnumの何処が悪いかは知らんが

540:デフォルトの名無しさん
06/07/30 11:33:59
>本質的に速度を追求できない構造であるにもかかわらず、
>いらんところでCの低レベルな機能に頼りすぎ。

これ一行目と二行目で言ってること矛盾してるんだよね。

本質的に速度を追求できない構造であるからこそ
いらんところでCの低レベルな機能に頼ってるんだよ。


541:デフォルトの名無しさん
06/07/30 11:35:18

あ、漏れ一応 >540 だけど

Fixnum は良いと思うよ


542:デフォルトの名無しさん
06/07/30 15:10:07
>>539
Lispどころか、コンパイルするのが前提のMLなんかでも普通に
タグつけてる。

543:デフォルトの名無しさん
06/07/30 18:22:30
だんだんと、Ruby 擁護スレになりつつありま(ry


544:デフォルトの名無しさん
06/07/30 19:46:53
>>568
お前はよくこのスレの流れを変えれたよな
すごい尊敬するよ

545:デフォルトの名無しさん
06/07/30 19:57:41
さすがだよな>>568

546:デフォルトの名無しさん
06/07/30 19:58:14
すげーや>>568

547:デフォルトの名無しさん
06/07/30 20:07:01
オレも>>568はやってくれると思っていたよ。

548:デフォルトの名無しさん
06/07/30 20:21:42
>>568に嫉妬


549:デフォルトの名無しさん
06/07/30 20:26:16
また厨房大好き未来安価か

550:デフォルトの名無しさん
06/07/30 20:36:58
>>551
また「もう夏休みか」って聞き飽きたよ!

551:デフォルトの名無しさん
06/07/30 20:44:45
>>540
>本質的に速度を追求できない構造であるからこそ
>いらんところでCの低レベルな機能に頼ってるんだよ。

rubyの実装の詳細を全く知らないあたしには、
一行目と二行目が全くつながりません

速度的に絶望な上に、プログラム的にも汚くて
どうしようもない実装には、なんとなく聞こえますが

552:デフォルトの名無しさん
06/07/30 20:57:53
「知らないからわかりません」
そりゃそうでしょうな。

次の方どうぞ。

553:デフォルトの名無しさん
06/07/30 21:42:23
そりゃ、おまいもしらんもんなw

554:デフォルトの名無しさん
06/07/30 21:47:13
よくわかんないけどさ、

 ruby は (perlよりも) 純粋なオブジェクト指向言語だ

ってあたりでみんな同意して次いかないか?

555:デフォルトの名無しさん
06/07/30 21:52:34
話題なんかねーんだからムリして話流そうとしてもムダだよ

556:デフォルトの名無しさん
06/07/31 10:48:07
lispは主にリスト処理だけど、リストは線形探索とかで効率悪い。
配列を主に処理する言語としてarraypというのはどうだろう。
arraypでは語呂悪いのでrayp。




そこのあなた、
レイプじゃなくてレイピーと読みます。

557:デフォルトの名無しさん
06/07/31 16:51:41
XMLなんてlispがあれば必要ない、って言ってた馬鹿はまだいますかね?

558:デフォルトの名無しさん
06/07/31 17:18:22


559:あばよ
06/07/31 18:10:54
明日コンパイラの試験があるんだが
無理

560:デフォルトの名無しさん
06/07/31 22:17:22
配列も探索は線形だろアホ

561:デフォルトの名無しさん
06/07/31 23:54:09
いや、ハッシュとか使えるじゃん
リストは苦しいっしょw

562:デフォルトの名無しさん
06/08/01 00:04:12
lispでもhash使えることも知らんからアホ扱いされるんだよ

563:デフォルトの名無しさん
06/08/01 00:06:44
>>561
わけわかめ。
配列はメモリ上に連続するデータ構造で、リストはポインタでつなげて順番を保つデータ構造って感じのイメージなんだが、違うんか?
ハッシュとか言い出したら、ハッシュ表からそれぞれの要素へのポインタ張れば、配列にでもリストにでも組み込めるじゃん。

564:デフォルトの名無しさん
06/08/01 00:24:51
>リストはポインタでつなげて
厳密には、それは 『線形連結リスト』 だと思う。

565:デフォルトの名無しさん
06/08/01 00:39:02
ArrayListとかあるしな

566:デフォルトの名無しさん
06/08/01 00:57:51
つうかリストは悪者にされすぎだと思うんだ
使い方間違えなければ配列よりも適した場面だって多々ある

567:デフォルトの名無しさん
06/08/01 01:03:56
>>562
Lispで配列もハッシュも使えること知ってて
わざとぼけたの
ネタにマジレスすんな

568:デフォルトの名無しさん
06/08/01 01:07:13
>>567
文字列も使えるよ

569:デフォルトの名無しさん
06/08/01 01:10:01
>>563
配列しかデータ構造がない場合でも
配列があれば、配列を使ってハッシュ表を実装することができる
そうすれば、線形探索以外の探索ができる

リストしかデータ構造がない場合は、
ちょっと思いつかねえや
まあ、苦しいでしょ

570:デフォルトの名無しさん
06/08/01 01:31:22
>>567
はいはい、いつものネタでした宣言ですね。
まいどありー。もう来ないでくださいねー。

571:デフォルトの名無しさん
06/08/01 01:59:19
だからそのリストしかデータ構造がないってのはどこ系の思い込みなのかと

572:デフォルトの名無しさん
06/08/01 16:52:33
もうネタはいいよw
Lisp は List Processor だろ。もう来るな!


573:デフォルトの名無しさん
06/08/01 17:29:47
luaはテーブル操作主体の言語だけど、どうだろうか。

574:デフォルトの名無しさん
06/08/01 17:40:54
配列厨はAPL使ってろ

575:デフォルトの名無しさん
06/08/01 20:47:10
>>571
556がそれっぽいこといってるから
適当にそういう状況を想定して書いただけだけだ
殆どのヤツが、ついて来れなかったみたいだな

576:デフォルトの名無しさん
06/08/01 21:50:27
はいはい。お子様はよそで遊んでおいで



577:デフォルトの名無しさん
06/08/01 22:57:11
ネタとしては非常に分かり難かったから仕方が無いでしょう。

578:デフォルトの名無しさん
06/08/02 07:11:13
リスト構造を使わない速いschemeを作ろう
スレリンク(tech板)


579:デフォルトの名無しさん
06/08/03 10:02:43
パーサってテキストをパースしてアクションを起こすものだと思うんですが、
オブジェクトの状態をパースしてアクションを起こしたいと思ったら、
オブジェクトをテキスト表現に変換して、そのテキストをパーサに食わせる

って考え方でいいんでしょうか?

rubyでたとえると「p obj」で得られたテキスト表現を
raccで書いたパーサに食わせるとか、p()じゃなくて
YAML形式にしてYAMLのサブセットのパーサを書いて食わせるとか

580:デフォルトの名無しさん
06/08/03 14:19:25
オブジェクトのままじゃダメなの?

581:デフォルトの名無しさん
06/08/03 15:54:59
テキストである必然性はないので、dump/loadとか


582:579
06/08/03 17:49:21
>>580
オブジェクトのままでいいんです。
でもオブジェクトをパースしてアクション起こすものって、
結局rubyでゴリゴリプログラムを書かないとダメじゃないですか。
raccなら文法を専用の記法で書けるし、メンテ楽だし。
raccの入力がテキストである以上、いちどオブジェクトを
テキスト表現にしないといけないのかな、と。

583:デフォルトの名無しさん
06/08/04 02:15:26
Rubyでゴリゴリってのと
専用の記法というのの違いがわからない。

Rubyじゃなくて他の記法でparserを書きたい、
けどparseする対象はRubyのオブジェクトですよ、ってこと?


584:デフォルトの名無しさん
06/08/04 03:04:59
なんとなく有限状態マシン的なコードを楽に書ける方法ない?ってだけな希ガス

585:デフォルトの名無しさん
06/08/04 03:42:13
オブジェクトをパース
っていう意味がわからない
説明よろ

586:デフォルトの名無しさん
06/08/05 00:44:41
普通にEnumとかのデータ読み込んで次のオブジェクト作ったり
読んだりするだけじゃね?

587:デフォルトの名無しさん
06/08/05 01:16:30
だけじゃね?厨はスルーでよろ

588:デフォルトの名無しさん
06/08/05 10:50:40
オブジェクト脳で無い奴にはあまりピンとこないかもしれないが、
オブジェクト思考はこれからの言語の基本となることは確か。


589:デフォルトの名無しさん
06/08/05 10:56:42
お前らが言ってることがさっぱり分からない。
具体的に語れ。

590:デフォルトの名無しさん
06/08/05 12:31:14
10年前からタイムスリップしてきた奴が見受けられるな・・・
具体的に語ると>>588とか

591:デフォルトの名無しさん
06/08/05 12:35:26
時代はMQだしなMQサイコーMQは素晴らしい

592:デフォルトの名無しさん
06/08/06 08:40:24
「すべてがオブジェクト」って、意訳すると「手抜きしました」
ってことだよね?

593:デフォルトの名無しさん
06/08/06 11:08:43
O(log n) であくせすできるリスト構造
URLリンク(www.informatik.uni-bonn.de)

594:デフォルトの名無しさん
06/08/06 14:06:21
>>593
ざっと読んでみようと思ったけどさっぱりわからんかったorz
ハッシュ表作ればO(1)でアクセスできるけど、それ以上のメリットって何なの?

595:デフォルトの名無しさん
06/08/06 14:23:09
>>594

ゴキブリみたいなデータ構造になって気持ち悪くなるってメリットあると思う

596:デフォルトの名無しさん
06/08/06 16:00:12
>>594 abstractも読んでないのかよ。



597:デフォルトの名無しさん
06/08/06 16:27:48
>>594
いいハッシュ関数がないときはどうするの。

598:デフォルトの名無しさん
06/08/06 16:41:18
そこそこいいハッシュ関数を探す

599:デフォルトの名無しさん
06/08/06 17:24:04
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| 先輩。ハッシュならいいのがありますよ

   ̄ ̄ ̄|/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ・∀・)  ∧ ∧ <  MD5とかいうなよ
 (  ⊃ )  ( ゚Д゚)  \____________
 ̄ ̄ ̄ ̄ ̄ (つ_つ__
 ̄ ̄ ̄日∇ ̄\| DELL |\
       ̄   =======  \


600:デフォルトの名無しさん
06/08/06 17:28:04
配列のが速いよ絶対

601:デフォルトの名無しさん
06/08/06 17:51:31
関数型言語でリスト的にアクセスできるってのが目的じゃない?

602:デフォルトの名無しさん
06/08/06 20:04:44
2-3木っつーから平衡木の話かと思ったらそうじゃなかったのか。
誰か日本語に翻訳してくれ。
リストに対するアドバンテージは何なのかな。

603:デフォルトの名無しさん
06/08/06 20:33:18
いやだからゴキブリみたいな構造がキモイだけって
だけのはなしなんだが

604:デフォルトの名無しさん
06/08/07 15:09:34
私は英語苦手なんだけど、皆さんはどうやって訳してます?
PDF→テキスト→辞書を英次郎で引く→テキストに1個書くってやってるんだけど。
機械翻訳は補助には使うけど。結局使えないし。

605:デフォルトの名無しさん
06/08/07 15:45:53
普通に読んでるけど。量をこなせば日本語と同じように読めると思う

606:デフォルトの名無しさん
06/08/07 16:06:55
>>604
俺も大学のときはそんな感じでやってた。
先輩風吹かすと、
技術書の場合、予備知識なしに英文だけ読んでも分からない場合があるので、
その技術に関する日本語の本も並行して読むといい。
一言一句を表面的に和文に置き換える能力は基礎の基礎で、
こなれた訳文を作る能力をみがきたい(文章の内容を理解して、それを表現する能力)。
辞書は英英も使いたい。英英なら言葉の意味が文章で説明されているが、
英和は(項目によっては?)あたらずとも遠からずな日本語の単語が羅列されてるだけ。
お勧めはOALD。(ホントは英英を和訳した辞書があればいいのにと思う)
余裕があれば、将来英文を書くときのために、使えそうな言い回しをメモっておくとよい。

607:デフォルトの名無しさん
06/08/07 16:17:06
ある程度、自己解決しました。
最近はブラウザでピロっと出てくれるけど、
すぐ忘れるので頭に残ってくれない。
出たテキストがブラウザに貼り付いててくれるといいんだがと思って、
TrEditっての見つけて、辞書引く効率UPしました。
VBで作られてて良く落ちるんだけどまぁいいや。
今までに比べはるかに、スピードUPしました。ありがとうございました。
勝手に嬉しくなって読んで見てます。

とりあえず内容は遅延評価前提だけど、
今までは一般的に速いリストの操作はあったけど、複雑だったのが
簡潔に一般的に書けるようになったってことでしょうか?

前提となる知識として、モノイドとRight and left reductions 右と左還元があるとか。

モノイド自体よくわからないけど、、、書いてある式はこれだけ。
class Monoid a where
0 :: a
(c) :: a → a → a

このモノイドの+と○を合体させたような演算子は結合演算子?
++のこと?
aは0か、++の2項演算子があるってだけなのでしょうか???


608:デフォルトの名無しさん
06/08/07 16:31:21
超基本的な質問なんだけど、プログラミング言語の処理系で使うハッシュ表ってエントリーがどんどん増えていく場合も考慮して、動的にテーブルを大きくする必要あるじゃん。
そのコストを踏まえてもO(1)なの?

609:デフォルトの名無しさん
06/08/07 17:50:01
コスト的にもO(1)
hashでコリジョン多いならTrieの方が速いかも
ただし、単なるTrieは遅く、Ternary Search Trieというのが速いらしい
スレリンク(tech板:121-番)

610:デフォルトの名無しさん
06/08/07 18:43:59
>>609
お前、2chのどこのダレかもわかんない、どんな実装を使ったのかもわからない
そんなベンチマークを盲目的に信じてるのかよ。馬鹿すぎだ。

611:デフォルトの名無しさん
06/08/07 18:55:43
「盲目的に信じてる」というほど断定してるようにも見えんが・・・。
暑いからってめちゃくちゃな八つ当たりするのはどんなもんかね。

612:デフォルトの名無しさん
06/08/07 19:50:46
>>609
>O(1)
テーブル拡大のポリシーによると思うが、
どういうポリシーならO(1)になるか教えてちょ。

613:デフォルトの名無しさん
06/08/07 20:24:01
最大nビットのデータに対して2n-1ビットのハッシュ値を使う

614:デフォルトの名無しさん
06/08/07 21:55:19
>>611
暑いからって、根拠の乏しいレスを信じる馬鹿よりマシかと

615:デフォルトの名無しさん
06/08/07 22:10:07
なんで素直に 2ch の外で裏を取らないのだろう...

616:609
06/08/07 23:16:29
>>610
すんません
そのスレの121、実は俺なのですよ・・・
あれから色々試したけど、tstが検索においては
hashよりだいぶ速いのは検証済みです
ただしデータ構造上メモリを結構食います
TrieはO(1)に加えてインクリメンタルなので、
途中の結果も無駄にならなかったりするメリットもあります
ちなみにうちのコンパイラはtst使ってます

617:610
06/08/08 01:12:48
2chのベンチマークなんて信じる奴は馬鹿。
俺は住所氏名年齢電話番号までわかってる奴じゃなきゃ
一切信用しない。

618:デフォルトの名無しさん
06/08/08 01:22:43
>>606
英英辞書ですか。人生長いし買ってみようかな。CD付いてるらしいし。


619:デフォルトの名無しさん
06/08/08 03:44:18
>>606

>(ホントは英英を和訳した辞書があればいいのにと思う)


それだ!



620:デフォルトの名無しさん
06/08/08 08:40:39
>>617
当然の話だな

621:デフォルトの名無しさん
06/08/08 12:22:17
>>617
そんなんで信用できるのか?

俺はソースコードと追試手順があって自分で追試できて追試したものしか信用しない.
住所氏名年齢電話番号がわかってても意味ないだろ…

622:デフォルトの名無しさん
06/08/08 14:32:30
あからさまな釣りにひっかかっといて
慎重な姿勢とか見せても笑えるだけw

623:デフォルトの名無しさん
06/08/08 16:21:53
>>606
URLリンク(www.zkai.co.jp)
ワードパワー英英和辞書とケンブリッジ英英和がありました。


624:デフォルトの名無しさん
06/08/08 16:39:23
>>623
あるんかい!
けどサンプル見た感じジーニアスとか例文豊富な英和辞書とあんま変わらなくね?

625:デフォルトの名無しさん
06/08/08 19:14:56
>622
単に真面目な性格なだけじゃないの?

626:デフォルトの名無しさん
06/08/08 23:25:35
ここはLinux板みたいに嫌な雰囲気ですね

627:デフォルトの名無しさん
06/08/08 23:54:56
ハッシュ表やSTL vectorの拡張のコストについては
amortized complexity analysis (償却計算量解析)について勉強すれば納得がいく

628:デフォルトの名無しさん
06/08/09 23:25:34
やべ、Ternary Search Trieすごい速いねw

629:デフォルトの名無しさん
06/08/10 13:28:06
Linuxみたいな嫌な雰囲気ってどんな感じ?


630:デフォルトの名無しさん
06/08/11 01:30:06
世界の宗教の原理主義派を集めたようなギスギスした
息の詰まる雰囲気だと思うよ。
Windowsを目の敵にしないと生きていけない。そうゆうゴミの集まり

631:デフォルトの名無しさん
06/08/11 07:52:05
それは何?
もっと構って欲しいのにって事?

632:デフォルトの名無しさん
06/08/11 10:36:08
意味不明です。

633:デフォルトの名無しさん
06/08/14 19:10:55
flexでCのコードを出力すると、yy_acceptやyy_ecといったテーブルが作成されますが、
このテーブルの作成アルゴリズムみたいなものはあるのでしょうか?


634:デフォルトの名無しさん
06/08/14 19:28:24
あります

635:633
06/08/14 20:35:45
それは、何というものでしょうか?よかったら教えてください。

636:デフォルトの名無しさん
06/08/15 00:34:08
非決定性有限オートマトン (NFA) → 決定性有限オートマトン (DFA) 、
だったかな?

637:デフォルトの名無しさん
06/08/15 00:48:43
flexが実際どうやってるか知らないけど、NFA→DFAの変換は大学でやったな。
subset constructionだっけ?
実際の手順をノートに手書きでいっぱい書いた記憶があるw

638:デフォルトの名無しさん
06/08/15 01:36:45
>>637
この前取材に行った某高校のクラブ活動でやっていた事を自慢げに語られてもw

639:デフォルトの名無しさん
06/08/15 01:41:09
やったな。
だっけ?
w     ←どこ笑う所?


何が楽しいの?

640:デフォルトの名無しさん
06/08/15 02:20:46
>>639
昔を懐かしんでるんじゃないのか?

電車で思い出し笑いしてる人とかいるぢゃん


641:デフォルトの名無しさん
06/08/16 00:12:21
Coins はどうなったんかな…

642:デフォルトの名無しさん
06/08/18 19:15:55
なんだか、子難しい話して、話せないようにされてるような希ガス。
NFA→DFAの変換とかすごいじゃん。

643:デフォルトの名無しさん
06/08/18 21:49:40
そーでもない
大学で情報科学取った人なら大体やったんじゃまいか

644:デフォルトの名無しさん
06/08/18 22:25:39
講義の内容的には、序の口もいいところ。


645:デフォルトの名無しさん
06/08/19 01:13:32
オートマトン最小化とポンピング補題は中間試験の必出問題ですな。

646:Flex
06/08/19 21:27:44
初めまして、宜しくお願いします。50の手習いでFlexを勉
強しています。早速の質問ですが、お手柔らかにお願いしま
す。

Flexではinputの再定義は、#undefと#defineで出来ます。
unputの再定義はどうすれば良いでしょうか?

最初から、いきなりの質問で迷惑をかけるかと思いますが、
宜しくお願いします。

647:デフォルトの名無しさん
06/08/20 09:29:13
flexには詳しくないですが、unputの再定義は不可能のよう。
(The `unput()' routine is not redefinable.
This restriction is in accordance with POSIX. )

自前のunputを利用したければ、%option unputを指定して、
最初からunputが生成されないようにすれば良いのかも。

648:デフォルトの名無しさん
06/08/22 12:02:27
LLやLRの構文解析表なんかも大学の講義などでは手書きでたくさん書くことになる。
flex/bisonをいじれるだけで満足な奴は知らないんだろうけど、コンパイラコンパイラで楽してる背景にはけっこう面白いアルゴリズムがいくつも使われてて、理解するには手書きでこつこつやるのが近道だったりする。

649:デフォルトの名無しさん
06/08/22 13:18:32
LL(k)とLALRの違いについて調べてます。
文法的にLL(k)だと不可能になるもの。エラー処理の煩雑さなどで違いを教えてもらえませんか。

650:デフォルトの名無しさん
06/08/22 13:53:43
A -> ( B
B -> A ) | ) A | )

括弧の対応を取るだけの文法だが、任意のkについてLL(k)でない。

651:デフォルトの名無しさん
06/08/22 21:48:04
おまいらJavaのパーサー作るとしたらどのぐらい時間かかるんですか?

652:デフォルトの名無しさん
06/08/22 21:55:21
>>651
ざっと走査するだけなら楽

653:デフォルトの名無しさん
06/08/22 22:07:36
うそつけw
ホントなら書いてみろ

654:652
06/08/22 22:16:08
分かった。嘘だから書かない。

655:デフォルトの名無しさん
06/08/22 23:33:28
>>653
Generics無しの頃(swing無かった頃だが)に一度書いた。
Generics使えばもっと楽に書けるだろうがGenerics自体の文法は入れたくない(w




656:デフォルトの名無しさん
06/08/22 23:33:41
口だけ君はこれだから困る

657:デフォルトの名無しさん
06/08/23 00:09:38
○だけ君はこれだから困る

658:デフォルトの名無しさん
06/08/23 00:21:23
△だけ君はこれだから困る

659:デフォルトの名無しさん
06/08/23 03:20:08
656 :デフォルトの名無しさん :sage :2006/08/22(火) 23:33:41
口だけ君はこれだから困る

657 :デフォルトの名無しさん :sage :2006/08/23(水) 00:09:38
○だけ君はこれだから困る

658 :デフォルトの名無しさん :sage :2006/08/23(水) 00:21:23
△だけ君はこれだから困る

659 :デフォルトの名無しさん :sage :2006/08/23(水) 03:20:15
|だけ君はこれだから困る

660:デフォルトの名無しさん
06/08/23 07:48:57
>>655
yaccとか使う場合だと、
specificationの内容を全部BNF文法に直す。
うまくあわないところ少し小細工する
意味解析ルーチンつける
て感じですか?
・・・・なんか気の遠くなりそうな作業だな・・・・
・・・・Genericsとかやりたくないな・・・・

661:デフォルトの名無しさん
06/08/23 08:16:39
>>651
パーサだから意味解析は置いといていいのね?
>>3の¬<><∪∪なら、
言語仕様書からシンタックス部分をまる写しするだけだから簡単。
というかサンプルについてるけど。
>>3ではLALR(1)になってるけどLALR(∞)。

662:デフォルトの名無しさん
06/08/23 23:09:21

URLリンク(www.quut.com)
URLリンク(www.quut.com)



663:デフォルトの名無しさん
06/08/23 23:50:56
ついにJavaにもクロージャ? - James Gosling氏らJDK7へ導入提案
URLリンク(journal.mycom.co.jp)

Javaもなんでもかんでも取り込むようになったもんだ

664:デフォルトの名無しさん
06/08/24 01:44:02
その記事、単に匿名ローカル関数のことをクロージャと呼んでるようだが
カリー化しなくてもそう呼んでいいものなのか?

665:デフォルトの名無しさん
06/08/24 02:36:45
>>664
クロージャは語の通り囲い込みしか指さないので(ry

666:デフォルトの名無しさん
06/08/24 04:36:54
関数型言語の本で封入って訳を見たことあるな

667:デフォルトの名無しさん
06/08/24 06:06:41
ふみゅ~ん

668:デフォルトの名無しさん
06/08/24 10:37:04
>>664
>>665も書いてるが
カリー化とクロージャは、全く無関係な概念
関数からその関数を囲む環境にアクセスできればクロージャと言ってよい

669:デフォルトの名無しさん
06/08/24 21:10:06
じゃあ、単に匿名ローカル関数のことをクロージャと呼ぶのは間違いでよろしいか?
記事、ろくに読んでないが、ラムダ式のことをクロージャと呼んでるように見えたモナ

670:デフォルトの名無しさん
06/08/24 21:40:35
>>669
ラムダ式はクロージャを持つけど、クロージャはラムダ式じゃない

671:デフォルトの名無しさん
06/08/24 21:43:14
チョットワカッテキタ...

672:デフォルトの名無しさん
06/08/24 22:37:34
C#の匿名メソッドはクロージャとは別物ですか?


673:デフォルトの名無しさん
06/08/24 22:44:38
「匿名メソッド is-a クロージャ」 あるいは 「匿名メソッド has-a クロージャ」 な関係

674:デフォルトの名無しさん
06/08/24 23:20:30
記事、も一回読んでみたけど
Cの関数へのポインタ程度のものを、導入するぐらいにしか見えん
そしてそのCの関数へのポインタのようなものを、クロージャといってるような
カリー化とかできそうに見えない、高階クロージャ(?)すらあやしい

675:デフォルトの名無しさん
06/08/24 23:30:18
まぁ糞JAVA言語がそろそろ行き詰まってきたってことだろうなw


676:デフォルトの名無しさん
06/08/24 23:41:03
>>674
int func int(int x) {
    return (int y) { x + y; };
};
int result = func(2)(3);

こういうのならできるんじゃね?
実際の java で動くかどうかはしらないけど、一応カリー化できてるはず。

677:デフォルトの名無しさん
06/08/24 23:47:51
>>674
おまえはカリー化とクロージャの意味をわかってるのかと
今回提案された仕様のローカル関数及び匿名ローカル関数は
れっきとしたクロージャだし、関数型も導入されるので、
カリー化するのも容易なはず

>>676

ホワイトペーパーの例からだと、たぶんこんな感じではないかと

int(int) add(int x){
 return (int y) : x + y;
}
int result = add(2)(3); // => 5

678:デフォルトの名無しさん
06/08/24 23:52:34
>>677
いや、その例からだと add は有名関数だから、宣言は int(int) じゃなくて int では?
4ページ目の一番上。

さすがに、OCaml ばりの厳密で容易なカリー化は期待できないっすよ。
let add fun x y -> x + y;
で宣言して add 1 2 で 3、add 1 で fun y -> 2 + y みたいなのは java では無理でしょ。

679:デフォルトの名無しさん
06/08/24 23:53:13
あ、間違えた。まあ良いや。

680:デフォルトの名無しさん
06/08/25 00:17:56
>>678
addはカリー化された加算関数で、型はint(int) (int)なので
これでOKなはず。4ページ目の一番上の例は、int (int)な関数だよね

> さすがに、OCaml?ばりの厳密で容易なカリー化は期待できないっすよ。

そりゃOCamlほど容易ではないけど、厳密かどうかで言えば同程度には厳密でしょ

681:デフォルトの名無しさん
06/08/25 00:25:58
>>680 上段
ほんとだー。すまねー orz

>>下段
あ、すいません。『厳密』 ってのは 『制約』 ってのと同じような意味で使いました。
OCaml ではカリー化された関数しか扱えないみたいっスから。

int add(int x, iny y) { return x + y; }

「こんな感じに定義して add(1) ってしても 1 + y が帰ってこないじゃないかー」
って >>674 は想像しているのでは? って思いましたんで (^-^;;

682:デフォルトの名無しさん
06/08/25 00:27:23
オーバーロードとカリー化の共存は難しい。

683:デフォルトの名無しさん
06/08/25 00:39:23
すみません。某スレから誘導されてきました。
yaccやlexで生成したソースはどうやって使ったらいいのでしょうか?

684:デフォルトの名無しさん
06/08/25 01:00:40
>>683
きっとお前も質問だけして居なくなるんだろうな…>646みたいに。

685:デフォルトの名無しさん
06/08/25 01:23:18
>>684
いえ、ホント基本的な動作からわかってないので藁にもすがる思いですよ。
yyparseやyylexなんかがどういう動作をしてるのか?とかそっからわかっていません。
とりあえず、まず、大まかな流れが知りたいのですが、日本語でいいサイトないでしょうか?
なんかyacc lexが独自に吐き出す関数とか変数とかわかってないです。

やりたいことはプログラムである文字列をパーサに渡して解析結果を取得することなんですが
yacc lexの吐き出したソースが何をどこまでやってくれるのかってそこからいってわかってないです。

686:デフォルトの名無しさん
06/08/25 05:18:48
そうですか

687:デフォルトの名無しさん
06/08/25 05:55:38
>>683
main() {
  yyparse();
}

yylexはyyparseのなかで勝手に呼ばれる

688:デフォルトの名無しさん
06/08/25 09:38:52
>>677
どうも、そういうことが出来そうに見えなかったんだよね
Javaにクロージャ導入なんて記事を書くんなら
俺なら絶対カリー化の例をあげる
でも、カリー化どころか高階関数の例もないので、どうもな
まあ、ライターのレベルが低いだけかもしれんが


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch