プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン,
SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化,
JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。
意味論に関する話題も歓迎です。
Wikiのまとめページ
http://www6.atwiki.jp/compilerandscriptengine/
探検
「コンパイラ・スクリプトエンジン」相談室16
2014/07/20(日) 11:16:19.37ID:p6eMVAxc
636デフォルトの名無しさん
2023/09/24(日) 11:28:47.13ID:Iodo3XEj インタプリタの作り方 −言語設計/開発の基本と2つの方式による実装− - インプレスブックス
ttps://book.impress.co.jp/books/1122101087
ttps://book.impress.co.jp/books/1122101087
637デフォルトの名無しさん
2023/10/06(金) 08:06:12.42ID:NmxdZAP9 バックエンドの作り方はググれば解説が出てくるが
“実用的な”バックエンドの作り方はさっぱりわからない
RX用のバックエンドが欲しいんだがなー
“実用的な”バックエンドの作り方はさっぱりわからない
RX用のバックエンドが欲しいんだがなー
638デフォルトの名無しさん
2023/11/11(土) 06:58:34.37ID:uMtlBPBy double a = 2.71828;
というコードをコンパイルするときに、2進浮動小数点数に変換しないといけないと思います。
2進数浮動小数点数に丸めるときに、四捨五入(0捨1入)したり、一番近い2進浮動小数点数に変換したりといろいろな方法がありますが、その方式を決定するのもコンパイラの仕事ですか?
計算機イプシロンを ε_M とします。
2進浮動小数点数に丸めるときの方式として、四捨五入(0捨1入)が採用されているかどうかを確かめる方法として、
eps = 2^(-52)
1 + (1/2) * eps
を計算させて、それが 1 + eps に等しいかどうかをみるという方法が数値解析の本で紹介されています。
1 + (1/2) * eps
を計算するときに、丸めとかで変な浮動小数点数になって、この紹介されている方法が実行できないとかないですか?
というコードをコンパイルするときに、2進浮動小数点数に変換しないといけないと思います。
2進数浮動小数点数に丸めるときに、四捨五入(0捨1入)したり、一番近い2進浮動小数点数に変換したりといろいろな方法がありますが、その方式を決定するのもコンパイラの仕事ですか?
計算機イプシロンを ε_M とします。
2進浮動小数点数に丸めるときの方式として、四捨五入(0捨1入)が採用されているかどうかを確かめる方法として、
eps = 2^(-52)
1 + (1/2) * eps
を計算させて、それが 1 + eps に等しいかどうかをみるという方法が数値解析の本で紹介されています。
1 + (1/2) * eps
を計算するときに、丸めとかで変な浮動小数点数になって、この紹介されている方法が実行できないとかないですか?
639デフォルトの名無しさん
2023/11/11(土) 07:01:57.70ID:uMtlBPBy あと、
double a = 2.71828 * 3.141592;
というコードがあったとき、
コンパイラは、 2.71828 を丸めた2進浮動小数点数と 3.141592 を丸めた2進浮動小数点数を掛けよという機械語に翻訳するんですか?
それともこんな簡単な計算はコンパイラで予め行って、その結果を a に代入するという機械語を生成するんですか?
double a = 2.71828 * 3.141592;
というコードがあったとき、
コンパイラは、 2.71828 を丸めた2進浮動小数点数と 3.141592 を丸めた2進浮動小数点数を掛けよという機械語に翻訳するんですか?
それともこんな簡単な計算はコンパイラで予め行って、その結果を a に代入するという機械語を生成するんですか?
640デフォルトの名無しさん
2023/11/11(土) 08:35:32.43ID:fuGMacjx double a = math.E + path.PI;
641デフォルトの名無しさん
2023/11/11(土) 08:37:19.10ID:fuGMacjx 宿題は宿題スレへ
642デフォルトの名無しさん
2023/11/11(土) 11:05:25.10ID:5AzCeqvD はい
あります
はい
場合によります(最適化という追加処理)
あります
はい
場合によります(最適化という追加処理)
643デフォルトの名無しさん
2025/05/12(月) 14:33:58.90ID:Zw0HuL6G こういう言語作る系スレが廃れた原因は何だろう
644デフォルトの名無しさん
2025/05/12(月) 15:01:28.97ID:zCv6/zTu645デフォルトの名無しさん
2025/05/12(月) 15:24:34.24ID:FL+WAIid C言語にはfesetenvのような浮動小数点数プロセッサのモード切替関数もあるからな
コンパイル時に計算してしまうことでそれが反映されなくなるのもそれはそれで問題になるケースがある
コンパイル時に計算してしまうことでそれが反映されなくなるのもそれはそれで問題になるケースがある
646デフォルトの名無しさん
2025/05/13(火) 09:27:05.77ID:C/NhftFY Rustなら多い日も安心
647デフォルトの名無しさん
2025/06/30(月) 18:56:31.06ID:YQWckD/5 あれから色々勉強しましたが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がプログラム書いてくれるし便利になったなぁ。
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がプログラム書いてくれるし便利になったなぁ。
648デフォルトの名無しさん
2025/07/12(土) 09:48:27.49ID:tq7D7WVM 書き込み消えた気がする。
649デフォルトの名無しさん
2025/09/04(木) 08:13:08.15ID:qpvksIhN もうどこも人がいない・・・
レスを投稿する
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- いじめ後遺症 15年前のトラウマに苦悩する当事者「夢の中に出てくる」「された側は一生ものの傷」 [♪♪♪★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 東京の自販機そばに金塊4200万円分、何者かに持ち去られる…札幌の50代が8000万円振り込んだ後に上京して被害 [どどん★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- お前「趣味……?ないですね。無趣味です」ぼく「ずっと2chしてるんだから2chが趣味でいいじゃん」前「?」
- ボア・ハンコック(31)「ルフィ……❤結婚したい……❤」
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
- 隕石の落ちたところに俺が立ってたら
- 🏡パン🍞つー✌まる👌見え👊😅👊
- おまいらiPhoneかPixelを選ぶならどっち選ぶ?
