<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>编译原理 on Answer</title>
    <link>https://answer.freetools.me/categories/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/</link>
    <description>Recent content in 编译原理 on Answer</description>
    <generator>Hugo -- 0.152.2</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 21 Mar 2026 09:32:24 +0800</lastBuildDate>
    <atom:link href="https://answer.freetools.me/categories/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>编译器中间表示的设计哲学：从单层IR到多层次抽象的六十年演进</title>
      <link>https://answer.freetools.me/%E7%BC%96%E8%AF%91%E5%99%A8%E4%B8%AD%E9%97%B4%E8%A1%A8%E7%A4%BA%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%93%B2%E5%AD%A6%E4%BB%8E%E5%8D%95%E5%B1%82ir%E5%88%B0%E5%A4%9A%E5%B1%82%E6%AC%A1%E6%8A%BD%E8%B1%A1%E7%9A%84%E5%85%AD%E5%8D%81%E5%B9%B4%E6%BC%94%E8%BF%9B/</link>
      <pubDate>Sat, 21 Mar 2026 09:32:24 +0800</pubDate>
      <guid>https://answer.freetools.me/%E7%BC%96%E8%AF%91%E5%99%A8%E4%B8%AD%E9%97%B4%E8%A1%A8%E7%A4%BA%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%93%B2%E5%AD%A6%E4%BB%8E%E5%8D%95%E5%B1%82ir%E5%88%B0%E5%A4%9A%E5%B1%82%E6%AC%A1%E6%8A%BD%E8%B1%A1%E7%9A%84%E5%85%AD%E5%8D%81%E5%B9%B4%E6%BC%94%E8%BF%9B/</guid>
      <description>深入解析编译器中间表示(IR)的设计哲学与技术演进，从SSA形式的理论突破到LLVM IR的工程实践，再到MLIR的多层次架构创新，揭示这一编译器核心技术背后的权衡智慧</description>
    </item>
    <item>
      <title>编译器优化的两面性——为什么&#34;优化&#34;有时反而让代码变慢</title>
      <link>https://answer.freetools.me/%E7%BC%96%E8%AF%91%E5%99%A8%E4%BC%98%E5%8C%96%E7%9A%84%E4%B8%A4%E9%9D%A2%E6%80%A7%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%98%E5%8C%96%E6%9C%89%E6%97%B6%E5%8F%8D%E8%80%8C%E8%AE%A9%E4%BB%A3%E7%A0%81%E5%8F%98%E6%85%A2/</link>
      <pubDate>Sun, 15 Mar 2026 19:16:45 +0800</pubDate>
      <guid>https://answer.freetools.me/%E7%BC%96%E8%AF%91%E5%99%A8%E4%BC%98%E5%8C%96%E7%9A%84%E4%B8%A4%E9%9D%A2%E6%80%A7%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%98%E5%8C%96%E6%9C%89%E6%97%B6%E5%8F%8D%E8%80%8C%E8%AE%A9%E4%BB%A3%E7%A0%81%E5%8F%98%E6%85%A2/</guid>
      <description>深入剖析编译器优化技术的内在矛盾：从寄存器分配的NP完全性到函数内联的代码膨胀，从循环展开的缓存失效到自动向量化的依赖分析——揭示优化编译器面临的理论极限与工程困境，以及O3为何有时比O2更慢的根本原因。</description>
    </item>
    <item>
      <title>函数内联：编译器如何决定把代码复制到哪里</title>
      <link>https://answer.freetools.me/%E5%87%BD%E6%95%B0%E5%86%85%E8%81%94%E7%BC%96%E8%AF%91%E5%99%A8%E5%A6%82%E4%BD%95%E5%86%B3%E5%AE%9A%E6%8A%8A%E4%BB%A3%E7%A0%81%E5%A4%8D%E5%88%B6%E5%88%B0%E5%93%AA%E9%87%8C/</link>
      <pubDate>Fri, 13 Mar 2026 02:09:35 +0800</pubDate>
      <guid>https://answer.freetools.me/%E5%87%BD%E6%95%B0%E5%86%85%E8%81%94%E7%BC%96%E8%AF%91%E5%99%A8%E5%A6%82%E4%BD%95%E5%86%B3%E5%AE%9A%E6%8A%8A%E4%BB%A3%E7%A0%81%E5%A4%8D%E5%88%B6%E5%88%B0%E5%93%AA%E9%87%8C/</guid>
      <description>从C&#43;&#43;的inline关键字到JVM的JIT动态决策，深入解析编译器内联优化的算法原理、成本模型与不同语言的实现差异。涵盖代码膨胀陷阱、指令缓存权衡、部分内联、PGO以及机器学习驱动的现代编译器优化。</description>
    </item>
    <item>
      <title>链接器的隐秘世界：从符号解析到重定位的技术全景</title>
      <link>https://answer.freetools.me/%E9%93%BE%E6%8E%A5%E5%99%A8%E7%9A%84%E9%9A%90%E7%A7%98%E4%B8%96%E7%95%8C%E4%BB%8E%E7%AC%A6%E5%8F%B7%E8%A7%A3%E6%9E%90%E5%88%B0%E9%87%8D%E5%AE%9A%E4%BD%8D%E7%9A%84%E6%8A%80%E6%9C%AF%E5%85%A8%E6%99%AF/</link>
      <pubDate>Wed, 11 Mar 2026 09:04:51 +0800</pubDate>
      <guid>https://answer.freetools.me/%E9%93%BE%E6%8E%A5%E5%99%A8%E7%9A%84%E9%9A%90%E7%A7%98%E4%B8%96%E7%95%8C%E4%BB%8E%E7%AC%A6%E5%8F%B7%E8%A7%A3%E6%9E%90%E5%88%B0%E9%87%8D%E5%AE%9A%E4%BD%8D%E7%9A%84%E6%8A%80%E6%9C%AF%E5%85%A8%E6%99%AF/</guid>
      <description>深入解析链接器的核心机制：从静态链接的两阶段过程到动态链接的PLT/GOT机制，从符号解析规则到重定位的数学原理。基于ELF规范和现代链接器实现，揭示这个被低估的系统组件如何将编译后的目标文件组装成可执行程序。</description>
    </item>
    <item>
      <title>编译器寄存器分配：从图着色到线性扫描的四十年算法博弈</title>
      <link>https://answer.freetools.me/%E7%BC%96%E8%AF%91%E5%99%A8%E5%AF%84%E5%AD%98%E5%99%A8%E5%88%86%E9%85%8D%E4%BB%8E%E5%9B%BE%E7%9D%80%E8%89%B2%E5%88%B0%E7%BA%BF%E6%80%A7%E6%89%AB%E6%8F%8F%E7%9A%84%E5%9B%9B%E5%8D%81%E5%B9%B4%E7%AE%97%E6%B3%95%E5%8D%9A%E5%BC%88/</link>
      <pubDate>Wed, 11 Mar 2026 08:31:44 +0800</pubDate>
      <guid>https://answer.freetools.me/%E7%BC%96%E8%AF%91%E5%99%A8%E5%AF%84%E5%AD%98%E5%99%A8%E5%88%86%E9%85%8D%E4%BB%8E%E5%9B%BE%E7%9D%80%E8%89%B2%E5%88%B0%E7%BA%BF%E6%80%A7%E6%89%AB%E6%8F%8F%E7%9A%84%E5%9B%9B%E5%8D%81%E5%B9%B4%E7%AE%97%E6%B3%95%E5%8D%9A%E5%BC%88/</guid>
      <description>深入解析编译器寄存器分配算法的演进历程：从1982年Chaitin开创性的图着色方法，到Briggs的乐观着色改进，再到George-Appel的迭代寄存器合并和线性扫描算法的革命性突破。涵盖LLVM与Go编译器的实际实现、性能权衡分析，以及NP完全问题的启发式解决方案。</description>
    </item>
    <item>
      <title>解析器的代际战争：为什么GCC和Clang都选择了手写解析器</title>
      <link>https://answer.freetools.me/%E8%A7%A3%E6%9E%90%E5%99%A8%E7%9A%84%E4%BB%A3%E9%99%85%E6%88%98%E4%BA%89%E4%B8%BA%E4%BB%80%E4%B9%88gcc%E5%92%8Cclang%E9%83%BD%E9%80%89%E6%8B%A9%E4%BA%86%E6%89%8B%E5%86%99%E8%A7%A3%E6%9E%90%E5%99%A8/</link>
      <pubDate>Wed, 11 Mar 2026 02:17:59 +0800</pubDate>
      <guid>https://answer.freetools.me/%E8%A7%A3%E6%9E%90%E5%99%A8%E7%9A%84%E4%BB%A3%E9%99%85%E6%88%98%E4%BA%89%E4%B8%BA%E4%BB%80%E4%B9%88gcc%E5%92%8Cclang%E9%83%BD%E9%80%89%E6%8B%A9%E4%BA%86%E6%89%8B%E5%86%99%E8%A7%A3%E6%9E%90%E5%99%A8/</guid>
      <description>深入剖析编译器前端解析技术的六十年演进历程：从Ken Thompson 1968年的NFA算法到现代LL(*)和ALL(*)解析器，揭示正则引擎性能差异的技术根源、LL与LR解析器的本质分歧、以及为什么主流编译器最终都选择了手写递归下降解析器。</description>
    </item>
    <item>
      <title>JIT编译如何让解释型语言跑出编译型语言的速度？</title>
      <link>https://answer.freetools.me/jit%E7%BC%96%E8%AF%91%E5%A6%82%E4%BD%95%E8%AE%A9%E8%A7%A3%E9%87%8A%E5%9E%8B%E8%AF%AD%E8%A8%80%E8%B7%91%E5%87%BA%E7%BC%96%E8%AF%91%E5%9E%8B%E8%AF%AD%E8%A8%80%E7%9A%84%E9%80%9F%E5%BA%A6/</link>
      <pubDate>Sat, 07 Mar 2026 16:35:51 +0800</pubDate>
      <guid>https://answer.freetools.me/jit%E7%BC%96%E8%AF%91%E5%A6%82%E4%BD%95%E8%AE%A9%E8%A7%A3%E9%87%8A%E5%9E%8B%E8%AF%AD%E8%A8%80%E8%B7%91%E5%87%BA%E7%BC%96%E8%AF%91%E5%9E%8B%E8%AF%AD%E8%A8%80%E7%9A%84%E9%80%9F%E5%BA%A6/</guid>
      <description>深入解析即时编译器的工作原理：从1960年McCarthy的LISP论文到Python 3.13的copy-and-patch JIT，剖析热点检测、分层编译、内联缓存、逃逸分析、去优化等核心技术。对比方法JIT与追踪JIT的本质差异，探讨JIT与AOT的性能权衡，以及JIT喷射等安全挑战。</description>
    </item>
    <item>
      <title>递归调用为何会溢出？从栈帧结构到尾递归优化的完整技术解析</title>
      <link>https://answer.freetools.me/%E9%80%92%E5%BD%92%E8%B0%83%E7%94%A8%E4%B8%BA%E4%BD%95%E4%BC%9A%E6%BA%A2%E5%87%BA%E4%BB%8E%E6%A0%88%E5%B8%A7%E7%BB%93%E6%9E%84%E5%88%B0%E5%B0%BE%E9%80%92%E5%BD%92%E4%BC%98%E5%8C%96%E7%9A%84%E5%AE%8C%E6%95%B4%E6%8A%80%E6%9C%AF%E8%A7%A3%E6%9E%90/</link>
      <pubDate>Sat, 07 Mar 2026 15:55:46 +0800</pubDate>
      <guid>https://answer.freetools.me/%E9%80%92%E5%BD%92%E8%B0%83%E7%94%A8%E4%B8%BA%E4%BD%95%E4%BC%9A%E6%BA%A2%E5%87%BA%E4%BB%8E%E6%A0%88%E5%B8%A7%E7%BB%93%E6%9E%84%E5%88%B0%E5%B0%BE%E9%80%92%E5%BD%92%E4%BC%98%E5%8C%96%E7%9A%84%E5%AE%8C%E6%95%B4%E6%8A%80%E6%9C%AF%E8%A7%A3%E6%9E%90/</guid>
      <description>深入剖析递归调用栈溢出的根本原因，从x86/x64栈帧结构、函数调用约定，到尾递归优化(TCO)的原理与实现。对比Scheme、Python、JavaScript、Go、Rust等语言对尾递归的不同处理方式，揭示为什么有些语言能无限递归而有些语言会栈溢出，以及在TCO不可用时的工程解决方案。</description>
    </item>
    <item>
      <title>函数调用约定为何如此分裂：从十六位到六十四位的四十年ABI博弈</title>
      <link>https://answer.freetools.me/%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8%E7%BA%A6%E5%AE%9A%E4%B8%BA%E4%BD%95%E5%A6%82%E6%AD%A4%E5%88%86%E8%A3%82%E4%BB%8E%E5%8D%81%E5%85%AD%E4%BD%8D%E5%88%B0%E5%85%AD%E5%8D%81%E5%9B%9B%E4%BD%8D%E7%9A%84%E5%9B%9B%E5%8D%81%E5%B9%B4abi%E5%8D%9A%E5%BC%88/</link>
      <pubDate>Sat, 07 Mar 2026 12:16:10 +0800</pubDate>
      <guid>https://answer.freetools.me/%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8%E7%BA%A6%E5%AE%9A%E4%B8%BA%E4%BD%95%E5%A6%82%E6%AD%A4%E5%88%86%E8%A3%82%E4%BB%8E%E5%8D%81%E5%85%AD%E4%BD%8D%E5%88%B0%E5%85%AD%E5%8D%81%E5%9B%9B%E4%BD%8D%E7%9A%84%E5%9B%9B%E5%8D%81%E5%B9%B4abi%E5%8D%9A%E5%BC%88/</guid>
      <description>深入剖析函数调用约定的四十年演进历程：从16位时代BP寄存器的先天约束，到32位cdecl/stdcall/fastcall的混战，再到64位System V与Windows x64的分道扬镳。详细解析参数传递策略、栈帧布局、寄存器保存策略的设计权衡，揭示为什么Windows选择4个寄存器传参而Unix选择6个，为什么变长参数函数在x86-64上实现如此复杂，以及caller-saved与callee-saved的经济学原理。涵盖ARM64 AAPCS、RISC-V调用约定的横向对比，以及shadow space、red zone、sret等底层机制的完整技术解析。</description>
    </item>
    <item>
      <title>WebAssembly十年：从浏览器的第四种语言到「隐形」的基础设施</title>
      <link>https://answer.freetools.me/webassembly%E5%8D%81%E5%B9%B4%E4%BB%8E%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E7%AC%AC%E5%9B%9B%E7%A7%8D%E8%AF%AD%E8%A8%80%E5%88%B0%E9%9A%90%E5%BD%A2%E7%9A%84%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD/</link>
      <pubDate>Fri, 06 Mar 2026 04:07:44 +0800</pubDate>
      <guid>https://answer.freetools.me/webassembly%E5%8D%81%E5%B9%B4%E4%BB%8E%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E7%AC%AC%E5%9B%9B%E7%A7%8D%E8%AF%AD%E8%A8%80%E5%88%B0%E9%9A%90%E5%BD%A2%E7%9A%84%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD/</guid>
      <description>2015年，WebAssembly以「JavaScript杀手」的姿态横空出世。十年后，它不仅没有取代JavaScript，反而以一种出人意料的方式找到了自己的位置——成为互联网基础设施中「隐形」的加速层。</description>
    </item>
    <item>
      <title>别被编译器骗了：为什么你的安全检查代码可能正在被悄悄删除</title>
      <link>https://answer.freetools.me/%E5%88%AB%E8%A2%AB%E7%BC%96%E8%AF%91%E5%99%A8%E9%AA%97%E4%BA%86%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%A0%E7%9A%84%E5%AE%89%E5%85%A8%E6%A3%80%E6%9F%A5%E4%BB%A3%E7%A0%81%E5%8F%AF%E8%83%BD%E6%AD%A3%E5%9C%A8%E8%A2%AB%E6%82%84%E6%82%84%E5%88%A0%E9%99%A4/</link>
      <pubDate>Wed, 04 Mar 2026 15:50:39 +0800</pubDate>
      <guid>https://answer.freetools.me/%E5%88%AB%E8%A2%AB%E7%BC%96%E8%AF%91%E5%99%A8%E9%AA%97%E4%BA%86%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%A0%E7%9A%84%E5%AE%89%E5%85%A8%E6%A3%80%E6%9F%A5%E4%BB%A3%E7%A0%81%E5%8F%AF%E8%83%BD%E6%AD%A3%E5%9C%A8%E8%A2%AB%E6%82%84%E6%82%84%E5%88%A0%E9%99%A4/</guid>
      <description>从Google Native Client沙箱逃逸到libtiff整数溢出，深度解析编译器如何利用未定义行为删除安全检查代码。涵盖空指针检查消失、死存储删除、整数溢出优化消失等经典案例，以及UBSan/ASan检测工具和工程实践指南。&amp;#34;</description>
    </item>
  </channel>
</rss>
