penguinWWY 最近的时间轴更新
penguinWWY

penguinWWY

V2EX 第 457444 号会员,加入于 2019-12-04 20:20:43 +08:00
今日活跃度排名 9519
发一个看起来没啥用的字节码编辑库
Python  •  penguinWWY  •  121 天前  •  最后回复来自 v2exblog
4
Python 版魔法练习
Python  •  penguinWWY  •  257 天前  •  最后回复来自 icbmicbm
2
我又来了,真招 Python
酷工作  •  penguinWWY  •  327 天前  •  最后回复来自 garvan
13
有没有人想搞 Python 呀,无聊水个 JD
酷工作  •  penguinWWY  •  2021-11-01 10:03:59 AM  •  最后回复来自 penguinWWY
32
蚂蚁程序分析硬核技术团队春招氵
  •  1   
    酷工作  •  penguinWWY  •  2021-03-04 11:47:56 AM  •  最后回复来自 boyxy120
    2
    有点硬核的工作来了
    酷工作  •  penguinWWY  •  2020-03-25 16:05:21 PM  •  最后回复来自 la2la
    4
    推荐几个代码检查工具
  •  1   
    程序员  •  penguinWWY  •  2020-03-21 12:03:25 PM  •  最后回复来自 penguinWWY
    11
    penguinWWY 最近回复了
    20 天前
    回复了 kelvin_fly 创建的主题 职场话题 把每个月的工资当最后的一次工资
    @XVXVXXX 这个回家,莫名觉得很有气势
    62 天前
    回复了 andyJado 创建的主题 程序员 非 CS, 想弄弄编译, 还啃龙书吗?
    啃龙书没啥意义。
    如果你想整体了解编译,不要在 parser 上浪费时间,parser 是一个非常“符合直觉”的事情,本质上就是如何把一段文本变成结构化的数据,所以不要被各种名词唬住,自己写一个简单的表达式解析器,就能大概明白了。同时 parser 在整个编译过程中只占了很小的一部分,基本没啥值得关注的东西。

    编译整体看是一个不断 lower ( desuger )的过程,用简单代替复杂,具体代替抽象。所以整体看的话,你需要大概了解一下体系结构和指令集,也就是编译的终点是什么样的。中间的过程不管是 AST 也好,IR 也好,no-target machine code 还是 target machine code ,从认知上来讲,都不是必须的(你完全可以设计一个非常简单的表达式语言,然后直接翻译成汇编指令),这些步骤只是为了满足某种需求( native code or Interpreter ? JIT or AOT ? interprocedural or intraprocedural ?)而增加的、便于使用的中间层。

    明确输入(语言、特性、功能)和输出(目标指令集),剩下的就是取舍和拼接。现在编译体系复杂之处在于为了某些目标(性能、功能、复杂的语言特性)而在不同层次间不得不产生耦合,使用某些约定(而不是设计)。当这种情况越多,原本清晰的结构就会变成一坨。。。
    84 天前
    回复了 ResistanceTo 创建的主题 Python 切实有需求的点子
    写新的 test ,或者写一些方便 debug 、处理日志的小脚本
    list 生命周期结束的时候会调用 list_dealloc 函数,但并不会立即释放内存。而是存放在对应的 free list 中,如果有新的大小合适的 list 生成则会直接使用,减少内存分配和释放的消耗。

    print(id([])); print(id([]))

    两次分配的 list 是同一个指针,所以 id 相同。debug 模式是通过 trace 实现的,中间有别的 list 生成(或释放),所以没有使用到同一个指针,id 不同
    121 天前
    回复了 penguinWWY 创建的主题 Python 发一个看起来没啥用的字节码编辑库
    121 天前
    回复了 penguinWWY 创建的主题 Python 发一个看起来没啥用的字节码编辑库
    121 天前
    回复了 pkupyx 创建的主题 程序员 奇特的码农群招一下新人
    一眼群聊精华就是入关,然后你说 no 键政~~~
    @codists 合着你知道”machine value“不是一个常见的用法?这本来就不算是一个专业术语,我们帮你推测验证它的具体含义,然后你说没有给出定义?要饭要的这么理直气壮的吗?

    “计算机科学与技术”专业毕业的人不知道内存表示和补码不是一码事?不会 C 语言? CSAPP 没看过?毕业挺好,下次不要毕业了。
    @codists 内存表示和二进制补码不是一个东西

    arraymodule.c 里的实现就是从一个 PyBuffer 里 memcpy 了数据,fromfile 的实现是直接调用了 frombytes ,所以内存中如何表示,array 就如何存储,这么解释不明白?

    “an array of machine values”指的就是存在多个元素,那么用每个元素的内存表示,组合成一个数组。

    所以楼上让你学 C 语言还真说对了
    @codists machine value 就是指数据在内存中的表示啊,前几楼说的没啥问题
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3173 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 14:51 · PVG 22:51 · LAX 06:51 · JFK 09:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.