「コンパイラ・スクリ ..
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
命名の参考までに
宝石の一覧
Wikipedia項目リンク
鉱物の一覧
Wikipedia項目リンク
神の一覧
Wikipedia項目リンク
悪魔の一覧
Wikipedia項目リンク
伝説の生物一覧
Wikipedia項目リンク
Category:一覧
Wikipedia項目リンク
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
Wikipedia項目リンク
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
Wikipedia項目リンク
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ビットの仮想スタックマシン.
つかコンパイラ系の処理の何を会得したいのか不明じゃあんまり示唆のしようもないんだけどな。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5369日前に更新/217 KB
担当:undef