Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

写在前面 | 北大编译实践在线文档 #5

Open
MaxXSoft opened this issue Feb 10, 2022 · 115 comments
Open

写在前面 | 北大编译实践在线文档 #5

MaxXSoft opened this issue Feb 10, 2022 · 115 comments

Comments

@MaxXSoft
Copy link
Member

https://pku-minic.github.io/online-doc/#/preface/

北京大学编译实践课程在线文档

@yurneroma
Copy link

不是学生,如何使用评测系统

@MaxXSoft
Copy link
Member Author

MaxXSoft commented Mar 7, 2022

@yurneroma
不是学生,如何使用评测系统

抱歉,评测系统暂不对外开放,你可以尝试进行本地测试。

@dfgedc
Copy link

dfgedc commented Mar 7, 2022

实验代码在哪啊,想自学写写

@MaxXSoft
Copy link
Member Author

MaxXSoft commented Mar 8, 2022

@dfgedc
实验代码在哪啊,想自学写写

代码及相关的使用方法都在文档里,阅读文档即可。

@ssssyy
Copy link

ssssyy commented Mar 8, 2022

maxXing太强啦!!!

@dfgedc
Copy link

dfgedc commented Mar 8, 2022

助教你们写的文档好幽默啊。

@RenQJ
Copy link

RenQJ commented Mar 8, 2022

示例编译器的C++实现是空仓库。

@MaxXSoft
Copy link
Member Author

MaxXSoft commented Mar 9, 2022

@RenQJ
示例编译器的C++实现是空仓库。

是的,暂时还没写完,目前有些别的工作要完成所以优先去干别的了

@handsomeli1898
Copy link

win10系统,执行docker pull maxxing/compiler-dev命令后,下载的文件下一半就自动停止了,请问如何解决呢(已经配置了镜像,没配置镜像也下不下来)

@MaxXSoft
Copy link
Member Author

@handsomeli1898
win10系统,执行docker pull maxxing/compiler-dev命令后,下载的文件下一半就自动停止了,请问如何解决呢(已经配置了镜像,没配置镜像也下不下来)

这个听起来属于Docker的问题。

不知道“自动停止”之前是否有其他提示,建议在搜索引擎或者StackOverflow之类的网站上搜索相关问题。

@csyJoy
Copy link

csyJoy commented Mar 30, 2022

在执行docker run的过程中,cargo在编译下载下来的crate的时候发生了错误,请问这个问题该如何解决?本人电脑是arm架构的

@MaxXSoft
Copy link
Member Author

@505007945
在执行docker run的过程中,cargo在编译下载下来的crate的时候发生了错误,请问这个问题该如何解决?本人电脑是arm架构的

compiler-dev镜像暂不支持除amd64外的其他架构, 抱歉.

@csyJoy
Copy link

csyJoy commented Mar 31, 2022

@MaxXSoft

@505007945
在执行docker run的过程中,cargo在编译下载下来的crate的时候发生了错误,请问这个问题该如何解决?本人电脑是arm架构的

compiler-dev镜像暂不支持除amd64外的其他架构, 抱歉.

感谢,我换了台amd64的电脑就可以了,但是请问在autotest自己的编译器的时候cargo build我的编译器的bin文件会非常的慢(昨天我编译了一下花了12分钟)请问这个是正常的情况吗?当我自己在docker bash中不使用autotest自己cargo build的话就没有这么慢。

@MaxXSoft
Copy link
Member Author

MaxXSoft commented Mar 31, 2022

@505007945
感谢,我换了台amd64的电脑就可以了,但是请问在autotest自己的编译器的时候cargo build我的编译器的bin文件会非常的慢(昨天我编译了一下花了12分钟)请问这个是正常的情况吗?当我自己在docker bash中不使用autotest自己cargo build的话就没有这么慢。

为了缩减体积, Docker镜像内没有保留任何Cargo缓存, 所以如果你第一次用autotest编译, cargo会花一些时间缓存crates.io的index. 如果你后续再编译的话, 速度会变快, 当然前提是你不要关闭并删除当前的容器.

另一个原因是, 默认情况autotest每次会把编译结果输出到一个临时目录, 而你自己手动调用cargo时, cargo总会把编译结果输出到固定位置. 这导致autotest默认无法利用编译缓存增量编译. 你可以参考附录中的实验环境使用说明中的指示, 设置autotest的working directory来解决这个问题.

@csyJoy
Copy link

csyJoy commented Mar 31, 2022

@MaxXSoft

@505007945
感谢,我换了台amd64的电脑就可以了,但是请问在autotest自己的编译器的时候cargo build我的编译器的bin文件会非常的慢(昨天我编译了一下花了12分钟)请问这个是正常的情况吗?当我自己在docker bash中不使用autotest自己cargo build的话就没有这么慢。

为了缩减体积, Docker镜像内没有保留任何Cargo缓存, 所以如果你第一次用autotest编译, cargo会花一些时间缓存crates.io的index. 如果你后续再编译的话, 速度会变快, 当然前提是你不要关闭并删除当前的容器.

另一个原因是, 默认情况autotest每次会把编译结果输出到一个临时目录, 而你自己手动调用cargo时, cargo总会把编译结果输出到固定位置. 这导致autotest默认无法利用编译缓存增量编译. 你可以参考附录中的实验环境使用说明中的指示, 设置autotest的working directory来解决这个问题.

好的,谢谢,多谢指导

@Dan-k391
Copy link

Dan-k391 commented Apr 8, 2022

最后完整的c++AST可不可以给个例子

@MaxXSoft
Copy link
Member Author

MaxXSoft commented Apr 8, 2022

@Dan-k391
最后完整的c++AST可不可以给个例子

这需要你自行构造, 所以暂无例子.

@Dan-k391
Copy link

Dan-k391 commented Apr 8, 2022

@MaxXSoft

@Dan-k391
最后完整的c++AST可不可以给个例子

这需要你自行构造, 所以暂无例子.

好吧,谢谢

@Dan-k391
Copy link

可以提供一个不需要在compiler-dev下才能运行的makefile吗

@MaxXSoft
Copy link
Member Author

MaxXSoft commented Apr 11, 2022

@Dan-k391
可以提供一个不需要在compiler-dev下才能运行的makefile吗

Makefile 看起来 “只能” 在 compiler-dev 下使用的原因是, 你的 C/C++ 项目是在 Flex/Bison 和 Koopa IR 库的基础上编写的, compiler-dev 里附带了这些内容, 所以 Makefile 可以在其中使用.

于是同理, 如果你能找到一个非 compiler-dev 但正确配置了上述内容的环境, 那你就能在这个环境下使用我们提供的 Makefile.

@Dan-k391
Copy link

@MaxXSoft

@Dan-k391
可以提供一个不需要在compiler-dev下才能运行的makefile吗

Makefile 看起来 “只能” 在 compiler-dev 下使用的原因是, 你的 C/C++ 项目是在 Flex/Bison 和 Koopa IR 库的基础上编写的, compiler-dev 里附带了这些内容, 所以 Makefile 可以在其中使用.

于是同理, 如果你能找到一个非 compiler-dev 但正确配置了上述内容的环境, 那你就能在这个环境下使用我们提供的 Makefile.

感谢,我改写了一下已经ok了

@Dan-k391
Copy link

我遇到一个问题,已经在邮件上向您提问,希望您能回复,谢谢

@lsy1109
Copy link

lsy1109 commented May 1, 2022

(如果没有, 源码里一定会有)指的是自己调试本编译原理项目代码,慢慢找bug吗,还是说阅读其他类似的项目代码呢

@MaxXSoft
Copy link
Member Author

MaxXSoft commented May 1, 2022

@lsy1109
(如果没有, 源码里一定会有)指的是自己调试本编译原理项目代码,慢慢找bug吗,还是说阅读其他类似的项目代码呢

这是个普适性的表述, 并非特指本项目, 意为: 你在遇到某些计算机相关的工程问题的时候, 读代码就可以解决几乎所有问题.

这种说法放在本项目里也是适用的.

@lsy1109
Copy link

lsy1109 commented May 1, 2022

@MaxXSoft

@lsy1109
(如果没有, 源码里一定会有)指的是自己调试本编译原理项目代码,慢慢找bug吗,还是说阅读其他类似的项目代码呢

这是个普适性的表述, 并非特指本项目, 意为: 你在遇到某些计算机相关的工程问题的时候, 读代码就可以解决几乎所有问题.

这种说法放在本项目里也是适用的.

意思就是遇到问题搜索引擎没用的时候,自己慢慢读项目代码找bug

@MaxXSoft
Copy link
Member Author

MaxXSoft commented May 1, 2022

@lsy1109
意思就是遇到问题搜索引擎没用的时候,自己慢慢读项目代码找bug

是的, 比如你发现你在使用libkoopa的时候出现了问题, 你可以直接去读libkoopa的源码, 然后带着你的假设去验证这个问题是否确实是按照你预想的形式发生的, 最后找到一种方法解决这个问题.

@shijingNWPU
Copy link

可以讲一下raw program,以及libkoopa 中的相关接口的调用吗?

@shijingNWPU
Copy link

主要是不太理解里面slice的概念,还有不知道怎么调用libkoopa 的接口

@Juminiy
Copy link

Juminiy commented Feb 22, 2024

@MaxXSoft 请问 在MacOS Aarch64平台上docker 从make 开始build环境需要注意什么问题

@MaxXSoft
Copy link
Member Author

@Juminiy

你好!目前从 Docker Hub 拉取的镜像暂不支持 Apple Silicon。

Docker 镜像所属仓库为 pku-minic/compiler-dev,前段时间有人为其添加了包含 aarch64 在内的多平台支持,但我暂未更新 Docker Hub 的镜像。近期我更换了新的 M3 处理器的 MacBook Pro,稍后的一段时间在进行一些测试之后,我会更新 Docker Hub 的镜像,使其支持 Apple Silicon。

@Juminiy
Copy link

Juminiy commented Feb 22, 2024

@MaxXSoft
@Juminiy

你好!目前从 Docker Hub 拉取的镜像暂不支持 Apple Silicon。

Docker 镜像所属仓库为 pku-minic/compiler-dev,前段时间有人为其添加了包含 aarch64 在内的多平台支持,但我暂未更新 Docker Hub 的镜像。近期我更换了新的 M3 处理器的 MacBook Pro,稍后的一段时间在进行一些测试之后,我会更新 Docker Hub 的镜像,使其支持 Apple Silicon。

您好,我刚刚在我的电脑(M1 Darwin)上build了一次,并且进入了开发环境,十分感谢您的回答

@MaxXSoft
Copy link
Member Author

@Juminiy 仔细看了一下你的前一个提问,发现我有点答非所问了,不好意思。如果只是问 make 要注意什么问题的话,理论上没什么问题,直接按照 README make 就行。

很高兴看到你已经 build 成功了,祝学习顺利!

@383494
Copy link
Contributor

383494 commented Mar 17, 2024

Lv3.2 为什么不叫算术表达式(STFW 无果),还是说打错了?

@MaxXSoft
Copy link
Member Author

Lv3.2 为什么不叫算术表达式(STFW 无果),还是说打错了?

@383494 确实写错了,感谢指出!我回头修一下

@Juminiy
Copy link

Juminiy commented Apr 25, 2024

我不知道你的编程习惯哈,但是智能指针这个东西最好不要用,因为纯粹实现一个玩具的编译器还不需要考虑性能这种东西,可能我水平比较低,谢谢

@MaxXSoft
Copy link
Member Author

@Juminiy 好,按照你喜欢的方式即可。

@Juminiy
Copy link

Juminiy commented May 2, 2024

@MaxXSoft
@Juminiy 好,按照你喜欢的方式即可。

好的,后序会考虑像cs143和cs243那样 把编译器实现和优化过程 分开么,或者考虑移植到amd64上么。我最近在考察 x86相关的手册,如果有arm64, x64的考虑 我可以参与contri,谢谢/

@MaxXSoft
Copy link
Member Author

MaxXSoft commented May 2, 2024

@Juminiy 北大这门课的侧重点暂时放在编译器的实现上,因此文档里不会重点讨论编译优化的内容。如果未来有相关课程,并且这类课程也愿意基于本课程的框架来教授实验的话,应该可以考虑推出优化部分的文档。

本课程暂时只面向 RISC-V 生成目标代码,因为 x86/amd64 里的很多设计对于一些同学来说可能不太好理解,容易分散大家的注意力。在未来,我们也暂时没有添加 x86/amd64 相关内容的计划。

@Juminiy
Copy link

Juminiy commented May 4, 2024

@MaxXSoft
@Juminiy 北大这门课的侧重点暂时放在编译器的实现上,因此文档里不会重点讨论编译优化的内容。如果未来有相关课程,并且这类课程也愿意基于本课程的框架来教授实验的话,应该可以考虑推出优化部分的文档。

本课程暂时只面向 RISC-V 生成目标代码,因为 x86/amd64 里的很多设计对于一些同学来说可能不太好理解,容易分散大家的注意力。在未来,我们也暂时没有添加 x86/amd64 相关内容的计划。

好的,就是x86的文档 spec看起来比较费时,快速实现的话还是这种比较好,谢谢/

@Genliese
Copy link

Genliese commented Jun 6, 2024

很棒!!!支持!!!

@JiNanPiWang
Copy link

koopac似乎没有放入环境变量,如果有人找不到koopac命令的话,它的位置是/opt/bin/koopac

@MaxXSoft
Copy link
Member Author

MaxXSoft commented Sep 15, 2024

koopac似乎没有放入环境变量,如果有人找不到koopac命令的话,它的位置是/opt/bin/koopac

@JiNanPiWang 按理说是放了的:

https://github.com/pku-minic/compiler-dev/blob/ac3039ae04e0e8d8bbdb5084c2b649060308970a/docker/Dockerfile#L66

而且 autotest 脚本里也是直接在没写完整路径的情况下执行了 koopac 命令,这个东西要出错的话整个环境就崩盘了,所以这种问题很早会被发现。

请问你用的环境是否被修改过,或者你自己执行过哪些别的脚本吗?

@JiNanPiWang
Copy link

@MaxXSoft

koopac似乎没有放入环境变量,如果有人找不到koopac命令的话,它的位置是/opt/bin/koopac

@JiNanPiWang 按理说是放了的:

https://github.com/pku-minic/compiler-dev/blob/ac3039ae04e0e8d8bbdb5084c2b649060308970a/docker/Dockerfile#L66

而且 autotest 脚本里也是直接在没写完整路径的情况下执行了 koopac 命令,这个东西要出错的话整个环境就崩盘了,所以这种问题很早会被发现。

请问你用的环境是否被修改过,或者你自己执行过哪些别的脚本吗?

抱歉,是我的问题,应该是我不小心动了什么。我又创建了一个新的容器,发现没有问题了

@Gjasonland
Copy link

@MaxXSoft
@Juminiy

你好!目前从 Docker Hub 拉取的镜像暂不支持 Apple Silicon。

Docker 镜像所属仓库为 pku-minic/compiler-dev,前段时间有人为其添加了包含 aarch64 在内的多平台支持,但我暂未更新 Docker Hub 的镜像。近期我更换了新的 M3 处理器的 MacBook Pro,稍后的一段时间在进行一些测试之后,我会更新 Docker Hub 的镜像,使其支持 Apple Silicon。

请问近期有更新镜像以支持apple silicon的计划吗,谢谢!

@LeoDreamer2004
Copy link

LeoDreamer2004 commented Oct 24, 2024

助教您好,我在本地进行cargo build时是可以正常编译的,提交之后提示CCE,由于显示只有一部分,只能看到大量的crate下载信息,看不到错误原因。我尝试降级到1.70.0版本依然可以编译,请问可能是什么原因?我并没有使用docker。

仓库在这里

@ckf104
Copy link

ckf104 commented Oct 25, 2024

@LeoDreamer2004,如果你是选修了这门课的同学的话,在线评测的有关问题直接去找现在的助教比较合适。他们不一定 watch 了这个仓库,在这里留言他们可能看不到。虽然根据你的描述我猜测问题可能是你本地工具链版本和评测机使用的版本不同

@qwas982
Copy link

qwas982 commented Nov 10, 2024

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)

教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.

写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.
实现的事不急, 也可以交给别人, 或自己熟悉了某种编程语言再去写都可以.老实说, 随便一种编程语言, 甚至脚本, 甚至.bat .bsh都可以用来写编译器或解释器. 为啥非得选C, 这种费老劲, 吃力不讨好的工具.
洋大人们理论与实现都是分开了的. 不同人在写.
不用给自己巨大压力.

文法第一步,
造数据结构第二步, 有个好的数据结构组合, 词法语法的业务逻辑就不会过于复杂.
最后才是研究用哪样算法,
而不是一上来就龙书虎书, 这样算法哪样术语.

@LeoDreamer2004
Copy link

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)

教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.

写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

@qwas982
Copy link

qwas982 commented Nov 10, 2024

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)
教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.
写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

咋了? 你瞧不起民科吗?
还是伺候洋大人习惯了?

@Sherlockzhangjinge
Copy link

@qwas982

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)
教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.
写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

咋了? 你瞧不起民科吗?
还是伺候洋大人习惯了?

不是瞧不起民科,是瞧不起明知道没接受过科班系统化教育还这么高傲的人。这是实践课程,理论不熟你先补啊。手写词法分析语法分析,你是这俩玩意儿还没写够是吗。你去大学里瞅一眼,基本都止步于此来。正是因为大学里天天都是这玩意儿效果也不怎么好所以才寻求突破啊才会有这门课程啊。脱离实际背景你瞎批判什么,六岁小孩,你去跟六岁小孩解释什么叫量子力学去。这还扯上什么洋大人了,计算机语言的符号根本不重要,你要是神金你拿长短不一的空格写一个语言都行,但是好用吗?我问你好用吗?平假名也能写英语,好用吗,我问你好用吗。真是离谱

@Sherlockzhangjinge
Copy link

@qwas982

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)
教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.
写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

咋了? 你瞧不起民科吗?
还是伺候洋大人习惯了?

看了一圈你的项目,我看你是鉴证把脑子鉴坏了

@qwas982
Copy link

qwas982 commented Nov 15, 2024

@qwas982

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)
教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.
写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

咋了? 你瞧不起民科吗?
还是伺候洋大人习惯了?

不是瞧不起民科,是瞧不起明知道没接受过科班系统化教育还这么高傲的人。这是实践课程,理论不熟你先补啊。手写词法分析语法分析,你是这俩玩意儿还没写够是吗。你去大学里瞅一眼,基本都止步于此来。正是因为大学里天天都是这玩意儿效果也不怎么好所以才寻求突破啊才会有这门课程啊。脱离实际背景你瞎批判什么,六岁小孩,你去跟六岁小孩解释什么叫量子力学去。这还扯上什么洋大人了,计算机语言的符号根本不重要,你要是神金你拿长短不一的空格写一个语言都行,但是好用吗?我问你好用吗?平假名也能写英语,好用吗,我问你好用吗。真是离谱

科班系统化教育 = 考试机器吹学历.
事实就是到目前为止, 没见到在计算机底层做出什么突破改造的事来, 科班? 刻板吧!
连国产的编译工具链, 到现在, 没见到过. 比如像GCC这种项目, 系统级编程语言, 静态汇编器, 静态链接器, 一整套的这种工具链, 没见到所谓的"科班"人做出来过, 到现在还在用着西方洋大人造出的工具沾沾自喜, 林纳斯都 表明态度了, "科班"人还要舔吗?
把6岁小孩教懂是王垠说过的教育理论, 这很符合现实背景! 若是一个教程, 连6岁小孩都能轻易学懂, 那普通成年人来学就不在话下, 让"科班"人来学更是易如反掌. 既然对此无知, 就不要瞎批判啥了.
符号不重要, 还来研究编译器? 不懂编译器就是翻译符号而生?
是的, 你是对的, 继续思维僵化固化, 继续停留在低端代码制造业, 为西方洋大人的软件工程打工, 供养洋大人吸血 , 你会得到代码飞升.

@qwas982
Copy link

qwas982 commented Nov 15, 2024

@qwas982

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)
教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.
写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

咋了? 你瞧不起民科吗?
还是伺候洋大人习惯了?

看了一圈你的项目,我看你是鉴证把脑子鉴坏了

好家伙, 看来是学不会就事论事,
这就是所谓的"科班"人?

还是那句话, "是的, 你是对的,继续思维僵化固化, 继续停留在低端代码制造业, 为西方洋大人的软件工程打工, 供养洋大人吸血", 你会得到代码飞升.

@Sherlockzhangjinge
Copy link

@qwas982

@qwas982

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)
教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.
写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

咋了? 你瞧不起民科吗?
还是伺候洋大人习惯了?

看了一圈你的项目,我看你是鉴证把脑子鉴坏了

好家伙, 看来是学不会就事论事,
这就是所谓的"科班"人?

还是那句话, "是的, 你是对的,继续思维僵化固化, 继续停留在低端代码制造业, 为西方洋大人的软件工程打工, 供养洋大人吸血", 你会得到代码飞升.

知道你又蠢又不愿意听人说话了。不要回复我了,令人无语且可怜

@qwas982
Copy link

qwas982 commented Nov 15, 2024

@qwas982

@qwas982

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)
教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.
写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

咋了? 你瞧不起民科吗?
还是伺候洋大人习惯了?

看了一圈你的项目,我看你是鉴证把脑子鉴坏了

好家伙, 看来是学不会就事论事,
这就是所谓的"科班"人?
还是那句话, "是的, 你是对的,继续思维僵化固化, 继续停留在低端代码制造业, 为西方洋大人的软件工程打工, 供养洋大人吸血", 你会得到代码飞升.

知道你又蠢又不愿意听人说话了。不要回复我了,令人无语且可怜

一头髒犭, 继续去舔洋大人吧, 汉人的文字, 你不用看, 一匹拜弱肉强食的动物, 还称自己为"人", 呵呵.
你放心, 劳动者不会再996 896劳动, 交税供养你这类所谓的" 科班'人' "了, 不知谁可怜. 可怜又咋样呢, 还想当蚊虫水蛭吸劳动者的血呀? 那就等着被拍死吧.

@Sherlockzhangjinge
Copy link

@qwas982

@qwas982

@qwas982

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)
教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.
写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

咋了? 你瞧不起民科吗?
还是伺候洋大人习惯了?

看了一圈你的项目,我看你是鉴证把脑子鉴坏了

好家伙, 看来是学不会就事论事,
这就是所谓的"科班"人?
还是那句话, "是的, 你是对的,继续思维僵化固化, 继续停留在低端代码制造业, 为西方洋大人的软件工程打工, 供养洋大人吸血", 你会得到代码飞升.

知道你又蠢又不愿意听人说话了。不要回复我了,令人无语且可怜

一头髒犭, 继续去舔洋大人吧, 汉人的文字, 你不用看, 一匹拜弱肉强食的动物, 还称自己为"人", 呵呵.
你放心, 劳动者不会再996 896劳动, 交税供养你这类所谓的" 科班'人' "了, 不知谁可怜. 可怜又咋样呢, 还想当蚊虫水蛭吸劳动者的血呀? 那就等着被拍死吧.

别给脸不要脸

@qwas982
Copy link

qwas982 commented Nov 15, 2024

@qwas982

@qwas982

@qwas982

我嘞个民科啊

还是太难, (从6岁小孩视角来看, 集体智商群体智商一般也就这个水平, 王垠说过若你的教学教不会6岁小孩, 说明你的教育是失败的.)
教程里有很多细节不用中文标识符, 也不用中文汉字注释.
并且也不是手写词法分析 语法分析 ,
总的来说, 不是面向普罗大众的教程. 更像是精英教育科班教育, 与开源精神不符.
并且, 语法用的也是C系,
不得不问, 难道离开C系就不会编程了吗.
写编译器最重要的是预先设计文法, 先用中文汉字汉语把BNF讲清楚了再说.

咋了? 你瞧不起民科吗?
还是伺候洋大人习惯了?

看了一圈你的项目,我看你是鉴证把脑子鉴坏了

好家伙, 看来是学不会就事论事,
这就是所谓的"科班"人?
还是那句话, "是的, 你是对的,继续思维僵化固化, 继续停留在低端代码制造业, 为西方洋大人的软件工程打工, 供养洋大人吸血", 你会得到代码飞升.

知道你又蠢又不愿意听人说话了。不要回复我了,令人无语且可怜

一头髒犭, 继续去舔洋大人吧, 汉人的文字, 你不用看, 一匹拜弱肉强食的动物, 还称自己为"人", 呵呵.
你放心, 劳动者不会再996 896劳动, 交税供养你这类所谓的" 科班'人' "了, 不知谁可怜. 可怜又咋样呢, 还想当蚊虫水蛭吸劳动者的血呀? 那就等着被拍死吧.

别给脸不要脸

赶紧滚开, 老子这里一直在提示叫, 你不烦呐?

@buhuizuocaigou
Copy link

我是为啥学编译呢?因为做红队以及安全研究的时候 。会涉及到正则化表达式的处理,并且在对二进制文件进行静态编译(目的是为了将其传送到枢纽机后更方便执行)的时候,往往有的时候需要自己看工具源码人为修改,感谢作者提供了这么好的“游戏”教程

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests