手把手带你写一门编程语言
宫文学
北京原点代码 CEO
7235 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
起步篇:让一门超简单的语言跑起来 (21讲)
结束语 (1讲)
手把手带你写一门编程语言
15
15
1.0x
00:00/00:00
登录|注册

26|增强更丰富的类型第1步:如何支持浮点数?

你好,我是宫文学。
我们前面几节课,讲的都是编译器前端的功能。虽然,要实现完善的前端功能,我们要做的工作还有很多。不过,我们现在已经不“虚”了!因为我们已经把编译器前端部分的主要知识点都讲得差不多了,其他的我们可以慢慢完善。
所以,现在我们重新把精力放回到编译器后端功能和运行时上来,这部分的功能我们还有待加强。在第一部分起步篇中,为了尽量简化实现过程,我们的语言只支持了整数的运算,甚至都没区分整型的长度,统一使用了 32 位的整型。
但这在实用级的语言中可行不通,我们还需要在里面添加各种丰富的数据类型。所以,接下来,我们会花几节课的时间,丰富一下我们语言支持的数据类型。首先我们会添加一些内置的基础类型,比如浮点型、字符串和数组。之后,我们还要通过对面向对象编程特性,支持用户自定义自己的类型。
在这一节课,我们先来看一下如何让我们的语言支持浮点型数据。为实现这个目的,我们需要先了解 CPU 为了支持浮点数有哪些特别的设计,ABI 方面又有一些什么规定,以及如何修改汇编代码生成逻辑。而且,为了正确地在汇编代码中表示浮点型字面量,你还会学到浮点数编码方面的国际标准。
首先,让我们了解一下 CPU 硬件和 ABI 对浮点数运算提供的支持。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一门编程语言》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 如果是你
    LCPI0_0(%rip) ,这个为什么可以表示第一个参数呢?没搞懂这块。
    归属地:广东
  • ifelse
    学习打卡
    归属地:浙江
  • 奋斗的蜗牛
    课程还是一样精彩,希望老师多开几门课
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部