Soft_Job 板


LINE

※ 引述《dragoncfe168 (梅长苏)》之铭言: : 请问一下 : 为何直译器将source code转译成机器码, : 不会产生不同电脑的机器语言不同 而无法执行的问题??? : 反观同样把source code转译成机器码的编译器 : 却会有此类问题呢??? 背景揭露:失业 刚刚跟朋友吃完饭,燃烧一下血糖科普一下...... 现在的直译器基本上不会是直接高阶语言程式直译 而是会先翻译成一个专属於自己的bytecode 然後进行一些优化 接下来才执行 然而,这样的bytecode是不是跨平台的不一定 LLVM的bitcode虽然有直译器lli,但是bitcode其实有平台相依的特性 不过那不是我们今天想讨论的议题 先假设,设计该种bytecode的人有作到平台不相依的话 单纯在bytecode层级能做的优化往往还不够好 所以像JVM这类的虚拟机 一个很重要的功能叫做即时编译(Just-In-Time Compiling) 会把bytecode再次翻译成执行平台的binary 直译的部份很少在用 Microsoft的MSIL,也多半是先JIT成target binary 虽然本身在CoreCLR也有直译器: https://github.com/dotnet/coreclr/blob/master/src/vm/interpreter.cpp 但几乎只有在某平台一开始没有对应的JIT backend才会打开 还一个很有名的就是虚拟机qemu, 它也有一套自己的机制叫做TCG (Tiny Code Generator) 虽然多数状况下会透过TCG把client code翻译成一段段host的code cache (因为跑起来比较快) 但是也有一套叫做TCI (Tiny Code Interpreter)的机制: https://github.com/qemu/qemu/tree/master/tcg/tci 可以作为新平台的initial support 然而,有个鸡蛋问题 那就是跑在执行平台的直译器本身也好、JIT backend自身也罢 都也是host binary,他是怎麽来的? 基本上多半要靠跨平台编译器(cross-compiler), 先在其他平台编出可以在执行平台上跑的直译器 後面看是可以自己self bootstrap,还是要怎麽做那再看 -- Linux is the bone of my world. Kernel is mybody, and initramfs is myblood, have created over a thousand Distros. Unknown to impossibility. Nor known to limitation. --
QR Code



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.167.181
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1525792422.A.055.html
1F:推 redhessainnz: 这篇正解 05/09 07:04
2F:推 rio35: 好像稍微能理解了 @@ 05/09 08:03
3F:→ accessdenied: 为何要先背景揭露呢? 05/09 08:48
4F:推 jojojen: 推 05/09 09:53
5F:→ Ekmund: 这篇直接看应该会爆炸 科普一下LLVM和JVM会比较好懂 05/09 10:39
6F:推 nfsong: 推 05/10 15:56







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP