「コンパイラ・スクリプトエンジン」相談室16 (648レス)
上下前次1-新
抽出解除 レス栞
35: デフォルトの名無しさん [] 2014/09/20(土) 16:42:37.06 ID:Vt9JAeIo(1) AAS
caperが改善されて大規模なパーサーでも
早く生成できるようになったようです。
232(1): デフォルトの名無しさん [sage] 2015/05/09(土) 21:02:43.06 ID:SYpntI8c(3/3) AAS
>>231231(1): デフォルトの名無しさん [sage] 2015/05/09(土) 20:41:51.08 ID:DhZyBtDK(1) AAS
>>230
ネイティブスタックにデータも置くって事だよね?
データスタックは分けておいた方がイロイロ楽だったので列挙
たしかこんなの
GC使う様な実装の時の仕分け
実行パスがJITでコンパイルコードと非コンパイルVMコードの行ったり来たりするとき
例外のスタックトレース(これもJIT時のアレコレあり)
チープマシンにVM仕込むときアセンブラで書くのが楽しい
最後はちげぇけど
自分のVMは典型的なスタックマシンで
パラメータスタック(データスタック)とコールスタックは別です。
そのうちデータスタックをヒープ内におくか
アセンブリでかかれたほうのネイティブの領域におくかってことです。
ネイティブ領域においたほうが実際のアドレスとVM上でのアドレスの変換がないので
速度としては速いのですが
欠点としてバイトコードからスタックを参照することができません
焦点とてしてはそもそもバイトコードからスタックを参照することがあるのかということで、
基本的になければネイティブ領域におこうかとおもっています
これまでつくった経験がないので設計としてどちらがよいかわからずお聞きしました
345: デフォルトの名無しさん [sage] 2016/01/15(金) 22:22:03.06 ID:EuNWEiBo(1) AAS
そこで言う呼び出し規約ってのは引数がスタックでどう配置されるかって話?
565(1): デフォルトの名無しさん [sage] 2016/05/07(土) 12:49:01.06 ID:TEQEM2qu(1) AAS
GoogleにはGOMAって名前のビルド専用クラスタ(2〜300台くらい繋げた奴)があるってよ
647: デフォルトの名無しさん [sage] 2025/06/30(月) 18:56:31.06 ID:YQWckD/5(1) AAS
あれから色々勉強しましたがCoq(Rocq)での証明や Prolog で操作的意味論や型システムを書くのは楽しいです。
11年かぁ。
$ apt install swi-prolog
$ vi e.pl
e(I,I):- integer(I).
e(E1+E2,I):- e(E1,I1), e(E2,I2), I is I1+I2.
:- e(1+2+3+4,I),writeln(I).
:- halt.
$ swipl e.pl
10
と簡単に言語を作れるので便利だし、最近はAIがプログラム書いてくれるし便利になったなぁ。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.027s