「コンパイラ・スクリプトエンジン」相談室16 (649レス)
1-

59: 2014/11/01(土)19:25 ID:etXlBO/A(1) AAS
ファイル名…かな
60: 2014/11/01(土)20:57 ID:68QCuiUg(1) AAS
エラー表示は?だけでいい
というネタがあったな
61: 2014/11/02(日)00:04 ID:FPvqJpqA(1/3) AAS
人間が見てるのとコンパイラが解釈してるので大きくズレがある場合とか
エラーメッセージ見てわからんことが多々ある

xxの前にxxがあります/ありません系のエラーはウンザリ
62: 2014/11/02(日)00:22 ID:E/aMB+tP(1) AAS
print " _人人 人人_ \n",
"> 突然の死 < ", col, ",", row, " in ",filename,":", reason, "\n",
"  ̄Y^Y^Y^Y ̄\n";
die;

楽して素晴らしい方向を考えた
63: 2014/11/02(日)04:19 ID:l3Xq9EsR(1/2) AAS
$ nmlc -run examples/lablgl/triangle.nml
Fatal error: exception Failure("
_人人 人人_
> 突然の死 < parse error line 33
 ̄Y^Y^Y^Y^Y ̄
")
って出るようにしてみた。
64
(1): 2014/11/02(日)07:10 ID:Pf8ySLA3(1) AAS
何のエラーか
なぜ起こったか
どうすれば良いか

のうちどこまでエラー表示するか
表示しないものはマニュアルに書くか
統一しておくと良い
65: 2014/11/02(日)10:22 ID:P2QTHoYV(1) AAS
何のエラーか数字で提示
あとはknowledge baseで
knowledge baseは迷宮
66: 2014/11/02(日)11:43 ID:6U4Atlhd(1) AAS
基本的には書いた人の頭のエラーだからな。
コンパイラ的には「チェンジ!チェンジ!この子変えて!!!」
だけでいい。
67: 2014/11/02(日)12:31 ID:4dYx0WR7(1) AAS
> 関西型プログラミング言語のひとつ Kyoto のコンパイラは,文法ミスのあるコードを与えると「ふうがわりなコードどすなぁ」とだけ返すので,何が間違っているかはこちらで推測する必要がある.
68: 2014/11/02(日)12:39 ID:FPvqJpqA(2/3) AAS
何回も間違ったらぶぶ漬けが出てきそうだな
69: 2014/11/02(日)12:58 ID:i2BOrYsG(1) AAS
>>64
> どうすれば良いか

これは余計なお世話だわ
70: 2014/11/02(日)13:03 ID:FPvqJpqA(3/3) AAS
この道路は工事中なので次の迂回路をご利用ください
71: 2014/11/02(日)16:35 ID:l3Xq9EsR(2/2) AAS
コンパイル速ければ、エラーは1個で十分だったりするよなぁっとか。
大量に出すなら、一番先頭のエラーを一番下に出すと嬉しいとか。
72: 2014/11/03(月)12:49 ID:ljM6XCm0(1) AAS
>> 70

迂回は出来ないんだなぁ
73: 2014/11/03(月)18:22 ID:6fFurIEN(1) AAS
最近のghcとかだと、関数名をタイポすると似た存在する関数名を示してくれる。外してる時もあるけど。
ああいう親切さをもっと充実させるのも方向性としてはありだと思う。
あらゆるコンパイルエラーがクラウドサーバに送られ続けて典型的なミスを蓄積し続ける、とかね。
74: 2014/11/04(火)11:17 ID:bZGUB4M2(1/3) AAS
大量のデータをまとめて整理した結果をどこかで見たけど
よくあるスペルミス・インポート忘れ・宣言忘れが飛び抜けていて
それ以外はごくわずかでどうでもいいという印象だった
75: 2014/11/04(火)11:19 ID:bZGUB4M2(2/3) AAS
中級者以上と入門者はつまずく所が全く違うから
後者のデータだけを集めれば「入門者に最適」な言語やツールが作れるかもしれない
76
(1): 2014/11/04(火)13:56 ID:OXvDS9Yh(1) AAS
C言語は、研究結果;はあった方が良いみたいな話を聞いた事があるような気がする。
けど、最後だけ無しとかだったのかもしれないし、良く覚えてないなぁ。
今作ってる言語は必要な所だけ;を書くって作ってるのだけど。
初心者には難しいのかもしれないです。
77: 2014/11/04(火)15:36 ID:bZGUB4M2(3/3) AAS
気の利いたエディタサポートまで考えるなら改行をまたぐ構文を禁止すべき
VBはそうなってる
78
(1): 2014/11/04(火)15:58 ID:vqrMdBMn(1) AAS
lispとかでマクロ展開したときに中でエラーが起こったら行と桁の表示は諦めるしかないのかな
前に作ったとき展開後も展開前の行を引き継ぐやり方をしてたけど
79: 2014/11/04(火)17:04 ID:99dxtSJ/(1) AAS
>>78
トークンに文字列だけじゃなく、もとあった位置の情報も付けたら?

>>76
どんな言語でも、ある程度本格的なプロダクトなら、たいてい、「やたら長くなるから改行を挟みたい式」と
「やたら短くて似たようなのが連続するから1行にまとめたい文」の両方が出てくるので、
どちらを強制するのも一長一短。

構文的には (a, b, c, d) と {a; b; c; d;} の、どちらも似たようなものだけど、機械的なコード生成では
後者のほうが以前は楽だった(最近は可変長配列みたいなオブジェクトに入れて、最後に
joinとか、ライブラリが充実してる言語を使うのが普通なので、あまり差は無い)。

人間の作業としては、複数行にまたがるものでは前者のほうはちょっとめんどい。
(最後の行を削ったあとで、前の行の最後も削る必要があるので)
{a,
b,
c}
みたいに閉じカッコを行末に付けてしまえばそうでもないかもだが。

あとそもそもC言語の構文では ; の規則がちょっと変則的。
80: 2014/11/04(火)23:11 ID:DC7Ttoit(1/2) AAS
Lispマクロのデバッグはちょっと難しいよな。
backquoteのように構文上の構造を引き継ぐような奴ばかりならいいんだけど。
81: 2014/11/04(火)23:12 ID:DC7Ttoit(2/2) AAS
デバッグ→デバッグ情報
82: 2014/11/04(火)23:31 ID:6PskSs9/(1) AAS
複雑なマクロでもたいていは展開系見れば何とかなるね。それでも動かないマクロがたまーにあって辛いけど。
83
(1): 2014/11/04(火)23:40 ID:cufVHbaO(1) AAS
自作のコンパイラなりなんなりはデバッグと最適化を考えたらなにも出来ない
むしろ潔く投げ捨てる勢いと割り切りで走らないとダメっしょ
俺様考えたルールで動いた万歳終わりな感じ
四則演算と条件文、あとGOTOなりCALLなりがあれば立派
それ以上の高度化は努力しだいってことで
それとも大人しくCommon Lispあたりを使って妥協するとか
Lispだと関数を生成して実行できるんだよね
例えば入力画面の項目数とか要件とかを与えて関数の形で生成して実行な感じの

俺様コンパイラ、Lispコード生成するからコンパイルや実行デバッグはそちらでオネガイみたくw
84: 2014/11/05(水)01:50 ID:j8mQRcC4(1) AAS
そこまで楽するなら構文をリードマクロで定義したほうが早そう
85
(2): 2014/11/05(水)07:49 ID:xr1YCX3/(1) AAS
xmlってスクリプト言語なの?データ構造なの?
xmlを使ったスクリプト言語らしきモノもあるみたいだし、よーわからん
86: 2014/11/05(水)08:22 ID:Fpn6fvq+(1) AAS
>>83
C とかのソース吐いて、最適化よろしくね(はーと)でいいだろ
87: 2014/11/05(水)09:54 ID:gfolKTI3(1) AAS
>>85
データ構造だろ
パーサ作るのが楽というか有りものが使えるからxxxxMLみたいに拡張して使われるんだろう
88
(1): 2014/11/05(水)11:54 ID:bBYPRYMe(1) AAS
>>85
プレーンテキストってスクリプト言語なの?データ構造なの?
1-
あと 561 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.008s