esprima/escodegenなんかでJS ASTを扱ってる人に質問。
ASTを舐めて変数の型を推論したものをノードに紐付けて記録しておきたいんだけど、JS ASTの場合
ASTの中にメタデータをぶら下げるのと外で持つのとどっちが一般的なんだろう?
中に持つ場合はどこにどういうプロパティ名でぶら下げるか、外の場合はノードの位置を特定する
パスのようなものが必要になるけどそれをどうするか。
「コンパイラ・スクリプトエンジン」相談室16
629デフォルトの名無しさん
2019/03/21(木) 17:55:33.49ID:YzD9JPpd630デフォルトの名無しさん
2021/02/24(水) 20:03:26.16ID:1LsYaFKv test
631デフォルトの名無しさん
2021/06/01(火) 15:18:43.13ID:IjgT90G7 お前ら元気か?
Prologおじさんが2003年頃からPrologの人気がなくなったとか言ってたんだが、2chのせいではないかと思ってきてみたぜ。
めっちゃ過疎ってるじゃないか。というか2chいつの間にか5chになってたんだな。
Prologは操作的意味論をそのまま書き下して言語作れるので良いぞw
% 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,R),!,writeln(R).
:- halt.
というファイルを作って
$ swipl e.pl
10
だ。こんな短く言語実装できる言語は他にないぜw
Prologおじさんが2003年頃からPrologの人気がなくなったとか言ってたんだが、2chのせいではないかと思ってきてみたぜ。
めっちゃ過疎ってるじゃないか。というか2chいつの間にか5chになってたんだな。
Prologは操作的意味論をそのまま書き下して言語作れるので良いぞw
% 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,R),!,writeln(R).
:- halt.
というファイルを作って
$ swipl e.pl
10
だ。こんな短く言語実装できる言語は他にないぜw
632デフォルトの名無しさん
2021/06/01(火) 15:25:20.70ID:IjgT90G7 Prologなら型システムを作るのもお手の物だ。
t(I,int):- integer(I).
t(E1+E2,int):- t(E1,int), t(E2,int).
:- t(1+2+3,T),!,writeln(T).
:- halt.
これだけ。Prologは関数というか述語のネストをできなくして
述語の引数は全てクォートとされた式のように扱われ、
変数がアンクォートな感じに書ける。
故にLispのS式より複雑な優先順位付きの演算子を使った式が扱えて便利だ。
ってことで、暇な奴がいたら使ってみて欲しいんダゼ。
じゃあなw
t(I,int):- integer(I).
t(E1+E2,int):- t(E1,int), t(E2,int).
:- t(1+2+3,T),!,writeln(T).
:- halt.
これだけ。Prologは関数というか述語のネストをできなくして
述語の引数は全てクォートとされた式のように扱われ、
変数がアンクォートな感じに書ける。
故にLispのS式より複雑な優先順位付きの演算子を使った式が扱えて便利だ。
ってことで、暇な奴がいたら使ってみて欲しいんダゼ。
じゃあなw
633デフォルトの名無しさん
2021/06/23(水) 07:02:20.99ID:HYjDIJ1V Prolog興味あるけどCとかJavaとかPythonとかのメジャーどころと違って教科書みたいなアカデミックな本しか見つからないから並以下グラマの俺には無理
634デフォルトの名無しさん
2021/10/13(水) 08:22:07.76ID:Qk99MJFD 岩波のprologのプログラミング作法読んでみたら?
第5世代が成果をオープンソースに出来ていればなあ
第5世代が成果をオープンソースに出来ていればなあ
635デフォルトの名無しさん
2023/07/05(水) 03:42:10.87ID:e/cCV0Lv >>311
人は死後49日は漂うと云われているな
人は死後49日は漂うと云われているな
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 もうどこも人がいない・・・
レスを投稿する
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★12 [BFU★]
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 ★3 [蚤の市★]
- 中国・国連大使「日本側は反省せず、発言の撤回拒否」 書簡を国連事務総長に送る [♪♪♪★]
- 高市政権の経済環境、アベノミクスと対極 インフレ・円安・金利上昇 [蚤の市★]
- 【NHK】受信料の未払い督促を10倍に強化… 支払い拒否が続くと民事手続きも 「カーナビも受信料いただきます」方針 [冬月記者★]
- 【ド軍】大谷翔平「ファミリー財団」設立報告 子どもの生活や動物保護で「より健康で幸せなコミュニティを」 [鉄チーズ烏★]
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap600
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1807
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap599
- とらせん IP
- 福島競馬3回5日目
- こいせん 全レス転載禁止
- 医者「インフルエンザ、去年の40倍。」😰なんやこれ?中国からの攻撃か?高市早苗 [153490809]
- 俺(中国)「さあて、次は何を制裁してやろうかな」。ネトウヨを一方的にボコれるターン到来 [805596214]
- 小野田大臣「それ正式なデータですか?報道ベースですよね」(10万いいね) [237216734]
- このお寿司カキフライセットに1000円出せますか?
- 日本人がよくやる「誤解を招いた」という発言、中国語ではあなたが間違っているという意味で翻訳されますます火に油を注いでる模様 [709039863]
- 【速報】高市、ヨハネスブルグに到着! [219241683]
