小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ

Calcium是一个约300行代码的微型语言实现,涵盖词法分析、语法解析、AST、编译器、字节码和执行引擎,旨在演示Python等语言的实现原理。作者编写它用于解释Python既非纯解释也非纯编译,而是编译为字节码后由执行引擎运行,也可作为初学者学习语言实现的起点。

微型语言实现:Calcium

Ned Batchelder's blog Ned Batchelder's blog · 2026-08-22T19:53:36Z
Python函数包现在包含预编译字节码

Vercel在构建时将Python函数编译为字节码,使中等大小函数的冷启动时间从2.8秒降至1.3秒。通过预编译应用代码和依赖,并包含.pyc文件,跳过启动时的编译步骤。自动添加尽可能多的预编译字节码,但接近大小限制的函数收益较小,无需修改代码。

Python函数包现在包含预编译字节码

Vercel News Vercel News · 2026-07-21T00:00:00Z
读 Python behind the scenes #5: how variables are implemented in CPython

本文解析CPython中变量赋值的实现原理,通过字节码操作码(如LOAD_NAME、STORE_NAME、LOAD_FAST等)说明变量如何存储和查找,涉及命名空间(locals、globals、builtins)与作用域(LEGB规则)。不同代码块(模块、函数、类)使用不同操作码,如函数局部变量用LOAD_FAST提升性能,闭包用LOAD_DEREF,全局变量用LOAD_GLOBAL。文章强调变量赋值远比表面复杂,为理解Python对象系统铺垫。

读 Python behind the scenes #5: how variables are implemented in CPython

Henry Z's blog Henry Z's blog · 2026-07-19T03:17:11Z

本文介绍SQLite的VDBE字节码执行引擎。sqlite3_prepare_v2将SQL编译为字节码程序,sqlite3_step在虚拟机上执行该程序。通过EXPLAIN分析点查SELECT name FROM t WHERE id=1,展示Transaction→OpenRead→SeekRowid→Column→ResultRow的执行流程。VDBE通过游标调用B-Tree,不直接读文件。强调opcode细节非稳定API,升级后需重新验证。

【SQLite 内核】VDBE 字节码执行:prepare、step 与寄存器机

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z
读 Python behind the scenes #4: how Python bytecode is executed

本文探讨了Python字节码的执行过程,重点介绍了CPython的核心函数_PyEval_EvalFrameDefault()。该函数通过循环和switch语句执行字节码指令,并利用分支预测技术优化性能。文章还讨论了异常处理机制及其在字节码中的实现,强调理解评估循环的重要性,以深入学习CPython源码。

读 Python behind the scenes #4: how Python bytecode is executed

Henry Z's blog Henry Z's blog · 2026-07-05T12:00:00Z
读 Python behind the scenes #3: stepping through the CPython source code

本文介绍了CPython源代码的执行过程,包括预初始化、核心初始化和完整初始化三个阶段。通过分析main函数和相关数据结构,阐述了Python程序的运行机制,涉及.py和.pyc文件的处理及字节码的执行过程。

读 Python behind the scenes #3: stepping through the CPython source code

Henry Z's blog Henry Z's blog · 2026-06-28T05:18:30Z
读 Python behind the scenes #2: how the CPython compiler works

本文探讨了CPython编译器的工作原理,分为三个阶段:源代码转为抽象语法树(AST),再转为字节码。CPython使用新解析器,基于解析表达式文法(PEG),处理左递归。AST优化在CPython 3.7引入,提升了编译效率。字节码生成通过符号表和基本块,确保代码执行的正确性。

读 Python behind the scenes #2: how the CPython compiler works

Henry Z's blog Henry Z's blog · 2026-06-07T07:06:31Z
读 Python behind the scenes #1: how the CPython VM works

本文介绍了CPython虚拟机的工作原理,包括Python代码的执行过程,分为初始化、编译和解释三个阶段。CPython将源代码编译为字节码并通过虚拟机执行。文中还讨论了frame对象、function对象和code对象,以及GIL对多线程的影响。这些内容有助于深入理解Python语言及其性能优化。

读 Python behind the scenes #1: how the CPython VM works

Henry Z's blog Henry Z's blog · 2026-05-30T07:51:33Z

该文章介绍了基于Rust实现的寄存器VM“pipa”,具有内置fetch和websocket等功能,减少了外部依赖。其性能优于quickjs,支持约45%的test262,具备简单的分代GC和任务体系,支持将JS编译成字节码,整体二进制大小约5.2M。

pipa-js: 最小依赖的ES2023 js引擎实现

Rust.cc Rust.cc · 2026-05-20T06:56:05Z
EP211:JVM的工作原理

JVM(Java虚拟机)在编译和运行Java代码之间的工作流程包括构建、加载、链接、初始化、内存管理和执行。编译器将源代码转为字节码,类加载器按需加载类,验证字节码的安全性,分配静态变量,最后通过解释器或JIT编译器执行代码,实现高效运行。

EP211:JVM的工作原理

ByteByteGo Newsletter ByteByteGo Newsletter · 2026-04-18T15:30:39Z

跨虚拟机共享函数原型的难点在于处理常量字符串。skynet 补丁解决了短字符串与外部函数原型共存的问题,允许多个虚拟机共享函数原型和只读常量表,从而节省时间和内存。Lua 5.5 引入了 external strings 特性,提升了字节码加载速度,建议新项目避免依赖补丁版本,升级后需清理编译中间文件。

Skynet 升级到 Lua 5.5.0

云风的 BLOG 云风的 BLOG · 2025-12-23T02:19:52Z

Java Agent 是一种特殊的 Java 程序,利用 Java Instrumentation API 在类加载前或运行时修改字节码。它支持无侵入增强、运行时监控和自动化治理,能够拦截类加载并修改字节码,适用于性能分析、日志增强和热修复。开发者可通过实现特定方法动态调整应用程序行为,无需修改源代码。

深入理解Agent内存马:原理与实现

FreeBuf网络安全行业门户 FreeBuf网络安全行业门户 · 2025-11-03T09:09:06Z

本文探讨了Java字节码的动态加载,介绍了如何使用URLClassLoader加载远程和本地的.class文件,以及通过反射调用ClassLoader的defineClass方法直接加载字节码。同时讨论了TemplatesImpl类的使用,展示了构造POC以执行特定代码的方法,并强调了网络安全和Java反序列化的问题。

CC3

FreeBuf网络安全行业门户 FreeBuf网络安全行业门户 · 2025-10-25T12:52:29Z

Java Agent 是一种通过 java.lang.instrument 包实现的工具,可以在不影响编译的情况下动态修改字节码。它有两种加载方式:premain(JVM 启动前加载)和 agentmain(启动后加载)。通过 Instrumentation 接口,Java Agent 能获取已加载类的信息并进行字节码修改,常用于性能监控和问题诊断。

Java Agent 内存马攻防

FreeBuf网络安全行业门户 FreeBuf网络安全行业门户 · 2025-08-26T06:29:57Z

本文探讨了Python虚拟机的保护机制,重点在于通过重置opcode防止反编译。Python字节码存储在pyc文件中,定制虚拟机需与pyc文件一起发布,以防恶意代码执行。使用dis模块解析字节码可帮助开发者理解代码逻辑,而通过pyinstaller打包字节码则可增强安全性,防止直接使用反编译工具。

Python代码保护之重置操作码映射的攻与防探究(一)

FreeBuf网络安全行业门户 FreeBuf网络安全行业门户 · 2025-08-25T08:45:10Z
ITTAGE间接分支预测器

现代CPU在字节码解释器中的间接跳转预测表现优异,尤其是使用ITTAGE分支预测器。该预测器通过历史数据映射预测分支行为,并动态选择历史长度以提高准确性。TAGE和ITTAGE的设计展示了动态选择历史长度的潜力,可能对覆盖引导模糊测试等领域具有启发意义。

ITTAGE间接分支预测器

Posts on Made of Bugs Posts on Made of Bugs · 2025-07-04T21:30:00Z
Ruby调试器内部:TracePoint、指令序列与CRuby API

本文探讨了Ruby调试器的核心技术,包括TracePoint和指令序列。TracePoint可在特定事件中暂停代码执行,而指令序列则提供Ruby字节码的低级表示。这两种技术帮助开发者构建高效的调试工具,深入理解Ruby代码执行过程。

Ruby调试器内部:TracePoint、指令序列与CRuby API

The JetBrains Blog The JetBrains Blog · 2025-06-10T07:34:53Z
源代码、字节码与调试

本文探讨了Java及其调试器的工作原理,强调字节码与源代码的关系,以及调试信息(如行号、变量名和源文件名)在调试过程中的重要性,确保调试器能够正确显示源代码而非字节码。

源代码、字节码与调试

The JetBrains Blog The JetBrains Blog · 2025-05-26T12:18:20Z
Java的历史

Java起源于1990年代初,最初用于互动电视开发。由Sun Microsystems的“绿色团队”创建,最初名为“Oak”,后改名为“Java”。Java通过编译成字节码并在Java虚拟机(JVM)上运行,实现了“编写一次,处处运行”的理念,广泛应用于各种设备。

Java的历史

DEV Community DEV Community · 2025-05-20T18:16:24Z
ArkScript中的指令源位置跟踪

良好的错误报告对编程语言至关重要。ArkScript通过在字节码中创建源位置表,解决了运行时错误缺乏上下文的问题,从而在错误发生时提供详细信息,显著提高了错误报告的准确性和有效性。

ArkScript中的指令源位置跟踪

DEV Community DEV Community · 2025-05-17T10:00:00Z
  • <<
  • <
  • 1 (current)
  • 2
  • 3
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
友情链接: MOGE.AI 九胧科技 1tok 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator 模力方舟 Gitee AI

小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码