「コンパイラ・スクリプトエンジン」相談室16 (649レス)
上下前次1-新
51: 2014/10/20(月)07:26 ID:fcKonDPy(1) AAS
May the forth be with you.
52(1): 2014/10/20(月)11:16 ID:6/LNQkyp(1) AAS
Lispは見た目的に「目にひっかからない」(関数もマクロもみんな同じようにしか見えない)のが問題なんだけど、
最近流行ってる(?)みたいに ( ) と [ ] を使い分けるとかすると、だいぶ感じが違うと思う。
53: 2014/10/20(月)16:23 ID:s/tFnXbk(1) AAS
>>52
Clojureが凄い良くできてる
()でリスト,[]でベクタ,{}でマップ、#{}でセットとリテラルの扱いが凄い綺麗
54: 2014/10/25(土)10:10 ID:9gGhLYaB(1) AAS
{} はすごくいいね。素の lisp だとほとんど使われない記号でもったいなかった。しかも数式とも合ってる。
ただ[] は好きになれないなぁ。個人的趣味だけど。
55: 2014/10/25(土)13:15 ID:rVCkRMh+(1) AAS
変わった趣味だw
56(1): 2014/11/01(土)16:34 ID:5yNYNAVX(1) AAS
エラーメッセージを楽して、素晴らしく表示したいんですけど
いい方法を教えてください。
57: 2014/11/01(土)18:28 ID:yfMW+WpF(1) AAS
>>56
センスのいい奴に頼む
58: 2014/11/01(土)19:12 ID:md1XyPQH(1) AAS
言うても行桁理由以外に何か必要かね
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のように構文上の構造を引き継ぐような奴ばかりならいいんだけど。
上下前次1-新書関写板覧索設栞歴
あと 569 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.008s