「コンパイラ・スクリプトエンジン」相談室16 (649レス)
「コンパイラ・スクリプトエンジン」相談室16 http://mevius.5ch.net/test/read.cgi/tech/1405822579/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
77: デフォルトの名無しさん [sage] 2014/11/04(火) 15:36:24.07 ID:bZGUB4M2 気の利いたエディタサポートまで考えるなら改行をまたぐ構文を禁止すべき VBはそうなってる http://mevius.5ch.net/test/read.cgi/tech/1405822579/77
78: デフォルトの名無しさん [sage] 2014/11/04(火) 15:58:19.03 ID:vqrMdBMn lispとかでマクロ展開したときに中でエラーが起こったら行と桁の表示は諦めるしかないのかな 前に作ったとき展開後も展開前の行を引き継ぐやり方をしてたけど http://mevius.5ch.net/test/read.cgi/tech/1405822579/78
79: デフォルトの名無しさん [sage] 2014/11/04(火) 17:04:17.39 ID:99dxtSJ/ >>78 トークンに文字列だけじゃなく、もとあった位置の情報も付けたら? >>76 どんな言語でも、ある程度本格的なプロダクトなら、たいてい、「やたら長くなるから改行を挟みたい式」と 「やたら短くて似たようなのが連続するから1行にまとめたい文」の両方が出てくるので、 どちらを強制するのも一長一短。 構文的には (a, b, c, d) と {a; b; c; d;} の、どちらも似たようなものだけど、機械的なコード生成では 後者のほうが以前は楽だった(最近は可変長配列みたいなオブジェクトに入れて、最後に joinとか、ライブラリが充実してる言語を使うのが普通なので、あまり差は無い)。 人間の作業としては、複数行にまたがるものでは前者のほうはちょっとめんどい。 (最後の行を削ったあとで、前の行の最後も削る必要があるので) {a, b, c} みたいに閉じカッコを行末に付けてしまえばそうでもないかもだが。 あとそもそもC言語の構文では ; の規則がちょっと変則的。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/79
80: デフォルトの名無しさん [sage] 2014/11/04(火) 23:11:55.77 ID:DC7Ttoit Lispマクロのデバッグはちょっと難しいよな。 backquoteのように構文上の構造を引き継ぐような奴ばかりならいいんだけど。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/80
81: デフォルトの名無しさん [sage] 2014/11/04(火) 23:12:32.22 ID:DC7Ttoit デバッグ→デバッグ情報 http://mevius.5ch.net/test/read.cgi/tech/1405822579/81
82: デフォルトの名無しさん [sage] 2014/11/04(火) 23:31:17.91 ID:6PskSs9/ 複雑なマクロでもたいていは展開系見れば何とかなるね。それでも動かないマクロがたまーにあって辛いけど。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/82
83: デフォルトの名無しさん [] 2014/11/04(火) 23:40:21.11 ID:cufVHbaO 自作のコンパイラなりなんなりはデバッグと最適化を考えたらなにも出来ない むしろ潔く投げ捨てる勢いと割り切りで走らないとダメっしょ 俺様考えたルールで動いた万歳終わりな感じ 四則演算と条件文、あとGOTOなりCALLなりがあれば立派 それ以上の高度化は努力しだいってことで それとも大人しくCommon Lispあたりを使って妥協するとか Lispだと関数を生成して実行できるんだよね 例えば入力画面の項目数とか要件とかを与えて関数の形で生成して実行な感じの 俺様コンパイラ、Lispコード生成するからコンパイルや実行デバッグはそちらでオネガイみたくw http://mevius.5ch.net/test/read.cgi/tech/1405822579/83
84: デフォルトの名無しさん [sage] 2014/11/05(水) 01:50:49.88 ID:j8mQRcC4 そこまで楽するなら構文をリードマクロで定義したほうが早そう http://mevius.5ch.net/test/read.cgi/tech/1405822579/84
85: デフォルトの名無しさん [sage] 2014/11/05(水) 07:49:49.12 ID:xr1YCX3/ xmlってスクリプト言語なの?データ構造なの? xmlを使ったスクリプト言語らしきモノもあるみたいだし、よーわからん http://mevius.5ch.net/test/read.cgi/tech/1405822579/85
86: デフォルトの名無しさん [sage] 2014/11/05(水) 08:22:34.79 ID:Fpn6fvq+ >>83 C とかのソース吐いて、最適化よろしくね(はーと)でいいだろ http://mevius.5ch.net/test/read.cgi/tech/1405822579/86
87: デフォルトの名無しさん [sage] 2014/11/05(水) 09:54:15.68 ID:gfolKTI3 >>85 データ構造だろ パーサ作るのが楽というか有りものが使えるからxxxxMLみたいに拡張して使われるんだろう http://mevius.5ch.net/test/read.cgi/tech/1405822579/87
88: デフォルトの名無しさん [sage] 2014/11/05(水) 11:54:58.98 ID:bBYPRYMe >>85 プレーンテキストってスクリプト言語なの?データ構造なの? http://mevius.5ch.net/test/read.cgi/tech/1405822579/88
89: デフォルトの名無しさん [sage] 2014/11/05(水) 17:03:13.23 ID:I87EWij/ >>88 只の文字列だよ そこに意味を付けるのはまた別の事 http://mevius.5ch.net/test/read.cgi/tech/1405822579/89
90: デフォルトの名無しさん [sage] 2014/11/05(水) 17:58:10.42 ID:uuXXn0N9 シェルスクリプトとかみたいな意味でスクリプトではない。 XSLTとか、あとワドラー氏が冗談で提案していたと思うがXMLで表現するプログラミング言語と いうものもありうるけど、XML自体は単なるデータ構造でしかない。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/90
91: デフォルトの名無しさん [sage] 2014/11/05(水) 21:09:37.17 ID:WN8UKbpt XMLにロジックを書く者は呪われる。やめておいた方がいい。あれはデータ形式としても冗長すぎるし、良いところはない。 S式を使うといい。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/91
92: デフォルトの名無しさん [sage] 2014/11/05(水) 21:32:19.82 ID:uuXXn0N9 XSLTは割とよくできてるよw http://mevius.5ch.net/test/read.cgi/tech/1405822579/92
93: デフォルトの名無しさん [sage] 2014/11/06(木) 01:58:37.08 ID:Rw7wEfhr 閉じ括弧重ね書き文化は誰も止めなかったのかねえ)))))))))))))))))))) http://mevius.5ch.net/test/read.cgi/tech/1405822579/93
94: デフォルトの名無しさん [sage] 2014/11/06(木) 02:08:22.53 ID:rrEEAzVB Cみたいな中括弧、改行、インデントを繰り返すのもイマイチ http://mevius.5ch.net/test/read.cgi/tech/1405822579/94
95: デフォルトの名無しさん [sage] 2014/11/07(金) 19:44:15.64 ID:XxPyN8W7 整ってると思うがなあ switch, caseだけはアレだが http://mevius.5ch.net/test/read.cgi/tech/1405822579/95
96: デフォルトの名無しさん [sage] 2014/11/07(金) 20:31:09.14 ID:sXupdHKX switchとcaseは同じインデントにしてbreakだけ字下げだよね?ね? http://mevius.5ch.net/test/read.cgi/tech/1405822579/96
97: デフォルトの名無しさん [sage] 2014/11/07(金) 20:52:59.78 ID:4yd7iQ66 >>96 に一票 http://mevius.5ch.net/test/read.cgi/tech/1405822579/97
98: デフォルトの名無しさん [sage] 2014/11/07(金) 22:25:11.01 ID:fMVGCDH+ (,)は特別な意味持たせたいとかあるので難しいですね。 (a,)はタプルにしようか、タプルじゃないのかとか。(,a)はタプルとか。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/98
99: デフォルトの名無しさん [sage] 2014/11/09(日) 11:22:54.52 ID:/PoG0aeo Pythonの「1要素のタプル」はトリッキーだが面白いとは思った。 kなんとかの人が言ってるように、カッコなしでもそうなるのは罠だがw http://mevius.5ch.net/test/read.cgi/tech/1405822579/99
100: デフォルトの名無しさん [] 2014/11/09(日) 12:10:23.68 ID:6nixZySy lispだと(a)とaの違いかな http://mevius.5ch.net/test/read.cgi/tech/1405822579/100
101: デフォルトの名無しさん [sage] 2014/11/09(日) 16:44:48.42 ID:7O7eobU9 >> 100 そんな感じ。名前のない構造体 http://mevius.5ch.net/test/read.cgi/tech/1405822579/101
102: デフォルトの名無しさん [sage] 2014/11/09(日) 20:23:26.03 ID:15ZMIIuR いや名前ある、タプル http://mevius.5ch.net/test/read.cgi/tech/1405822579/102
103: デフォルトの名無しさん [sage] 2014/11/10(月) 01:34:25.20 ID:zIX5GD/A ここって正規表現エンジンの話もいいのかな nfaとdfaのハイブリッドエンジンを実装したいんだけど dfaの中にnfaがあったらどう処理するかとかどこまでdfaにしていいかとかさっぱり分からない 調べてもon-the-flyという単語ぐらいしか出てこなくて実装方法とかは見つからない 知ってる人いたら教えてほしい http://mevius.5ch.net/test/read.cgi/tech/1405822579/103
104: デフォルトの名無しさん [sage] 2014/11/10(月) 07:33:01.86 ID:XDoaKxdi schemeの自作コンパイラ作成の過程で、cps変換につまづいています。 よくネット上で「簡単な処理で実現できる」という感じで書いてあるのを良く見るのですが、 実際にやろうとするとなかなかできません。 具体的に何をやったらいいのでしょうか? ちなみにlambdaでのcps変換はぎりぎり理解できてると思います。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/104
105: デフォルトの名無しさん [] 2014/11/10(月) 09:06:04.50 ID:hP+YfTbo Scheme使ってるならEoPLの最後のほうの章読んだらええで。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/105
106: デフォルトの名無しさん [sage] 2014/11/10(月) 12:08:25.51 ID:s3EMdqhf >>103 つ ドラゴンブック, lazy transiyiOn evaluation 古典実装だとoriginal egrep http://mevius.5ch.net/test/read.cgi/tech/1405822579/106
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 543 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s