「コンパイラ・スクリプトエンジン」相談室16 (649レス)
上下前次1-新
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
プレーンテキストってスクリプト言語なの?データ構造なの?
89: 2014/11/05(水)17:03 ID:I87EWij/(1) AAS
>>88
只の文字列だよ
そこに意味を付けるのはまた別の事
90: 2014/11/05(水)17:58 ID:uuXXn0N9(1/2) AAS
シェルスクリプトとかみたいな意味でスクリプトではない。
XSLTとか、あとワドラー氏が冗談で提案していたと思うがXMLで表現するプログラミング言語と
いうものもありうるけど、XML自体は単なるデータ構造でしかない。
91: 2014/11/05(水)21:09 ID:WN8UKbpt(1) AAS
XMLにロジックを書く者は呪われる。やめておいた方がいい。あれはデータ形式としても冗長すぎるし、良いところはない。
S式を使うといい。
92: 2014/11/05(水)21:32 ID:uuXXn0N9(2/2) AAS
XSLTは割とよくできてるよw
93: 2014/11/06(木)01:58 ID:Rw7wEfhr(1) AAS
閉じ括弧重ね書き文化は誰も止めなかったのかねえ))))))))))))))))))))
94: 2014/11/06(木)02:08 ID:rrEEAzVB(1) AAS
Cみたいな中括弧、改行、インデントを繰り返すのもイマイチ
95: 2014/11/07(金)19:44 ID:XxPyN8W7(1) AAS
整ってると思うがなあ
switch, caseだけはアレだが
96(1): 2014/11/07(金)20:31 ID:sXupdHKX(1) AAS
switchとcaseは同じインデントにしてbreakだけ字下げだよね?ね?
97: 2014/11/07(金)20:52 ID:4yd7iQ66(1) AAS
>>96 に一票
98: 2014/11/07(金)22:25 ID:fMVGCDH+(1) AAS
(,)は特別な意味持たせたいとかあるので難しいですね。
(a,)はタプルにしようか、タプルじゃないのかとか。(,a)はタプルとか。
99: 2014/11/09(日)11:22 ID:/PoG0aeo(1) AAS
Pythonの「1要素のタプル」はトリッキーだが面白いとは思った。
kなんとかの人が言ってるように、カッコなしでもそうなるのは罠だがw
100(1): 2014/11/09(日)12:10 ID:6nixZySy(1) AAS
lispだと(a)とaの違いかな
101(1): 2014/11/09(日)16:44 ID:7O7eobU9(1) AAS
>> 100
そんな感じ。名前のない構造体
102: 2014/11/09(日)20:23 ID:15ZMIIuR(1) AAS
いや名前ある、タプル
103(1): 2014/11/10(月)01:34 ID:zIX5GD/A(1) AAS
ここって正規表現エンジンの話もいいのかな
nfaとdfaのハイブリッドエンジンを実装したいんだけど
dfaの中にnfaがあったらどう処理するかとかどこまでdfaにしていいかとかさっぱり分からない
調べてもon-the-flyという単語ぐらいしか出てこなくて実装方法とかは見つからない
知ってる人いたら教えてほしい
104: 2014/11/10(月)07:33 ID:XDoaKxdi(1) AAS
schemeの自作コンパイラ作成の過程で、cps変換につまづいています。
よくネット上で「簡単な処理で実現できる」という感じで書いてあるのを良く見るのですが、
実際にやろうとするとなかなかできません。
具体的に何をやったらいいのでしょうか?
ちなみにlambdaでのcps変換はぎりぎり理解できてると思います。
105: 2014/11/10(月)09:06 ID:hP+YfTbo(1) AAS
Scheme使ってるならEoPLの最後のほうの章読んだらええで。
106(1): 2014/11/10(月)12:08 ID:s3EMdqhf(1) AAS
>>103
つ ドラゴンブック, lazy transiyiOn evaluation
古典実装だとoriginal egrep
上下前次1-新書関写板覧索設栞歴
あと 543 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.017s