duangsuse::Echo
#recommended #kotlin #dev out 等关键字:可以说是写得很好的文档了,易懂 https://www.kotlincn.net/docs/reference/keyword-reference.html
学会了什么? #learn #kotlin
1.
2. Java
3. RGB
6. 知道了可能别人也不知道,就是从 Kotlin 编译器推导的类型抄抄罢了
7.
8. 之前把图片打印倒了的说,一改循环 xy 到 yx 立刻修好
8.5. 我下面说的算法分析能力几乎没有就是指不知道为啥会打印倒 180 度,
9. 累死了
1.
java.imageio 和 java.awt 包部分功能的使用2. Java
URL 类使用3. RGB
Color
4. Kotlin vararg
5. 知道了自己现在还是不知道 Array<out String> 啥意思6. 知道了可能别人也不知道,就是从 Kotlin 编译器推导的类型抄抄罢了
7.
step 和 until 语法8. 之前把图片打印倒了的说,一改循环 xy 到 yx 立刻修好
8.5. 我下面说的算法分析能力几乎没有就是指不知道为啥会打印倒 180 度,
BufferedImage 的 get 是怎么处理的,怎么就倒悬了 (绝望)9. 累死了
总之就是算法分析模拟和理论理解能力还不够强,虽然比以前看着 MapGen 一脸蒙蔽好多了,依然有很大的提升空间,看来天才还是不存在的... 不相信天才... 即使我已经高二了
duangsuse::Echo
学会了什么? #learn #kotlin 1. java.imageio 和 java.awt 包部分功能的使用 2. Java URL 类使用 3. RGB Color 4. Kotlin vararg 5. 知道了自己现在还是不知道 Array<out String> 啥意思 6. 知道了可能别人也不知道,就是从 Kotlin 编译器推导的类型抄抄罢了 7. step 和 until 语法 8. 之前把图片打印倒了的说,一改循环 xy 到 yx 立刻修好 8.5. 我下面说的算法分析能力几乎没有就是指不知道为啥会打印倒…
10. 还是对函数式 Functional 和类型论 Type Theory 一无所知
这点是一直没变的
这点是一直没变的
https://github.com/kztao/yscheme/blob/master/compiler.ss
这个从 Chez Scheme 作者 Kent Dybvig 的课堂上带来开源的 Scheme 编译器,可以把 R6RS 的子集的代码转换为 AT Syntax X86(_64) 汇编代码,不过需要一个额外的运行环境才能执行
直到现在都没有人公开编写此编译器输出需要的链接库,这也就是个废物了?因为可能大家都看不懂递归、CPS、Combinator... (反正还有一大堆真·函数式的理论没几个人看的)
在他删除这个 repo 之后,只有寥寥两个 fork 继续存在,而且没有人动过那些代码,真是应了某些科幻小说里“他们无法解开我加密的代码”这句话了,Scheme 是多像数学,看起来多么美观自然但是多么难理解,不熟悉者对着一大堆括号一头雾水,满眼
最多的分析大概就是他吹出去的那 40 行代码了,一个 CPS 编译器
A notable thing of this compiler is its use of high-order evaluation contexts, an advanced technique used in CPS transformers, which resulted sometimes in much simpler and shorter code.
那么多人崇拜王垠,觉得他很酷,很厉害,可惜这些觉得他很厉害的程序员里,有几个知道他到底是做什么的呢?
所谓编译原理、编译器技术,可能以他为榜样的那部分人里,并没有人真正对这些感兴趣,只是作为一个遥不可及的偶像罢了。
可是,现在的计算机工程需要一种像神一样的存在吗?
真香... 🙈
这个从 Chez Scheme 作者 Kent Dybvig 的课堂上带来开源的 Scheme 编译器,可以把 R6RS 的子集的代码转换为 AT Syntax X86(_64) 汇编代码,不过需要一个额外的运行环境才能执行
Only the main compiler code is here. I don't have copyright of the rest of the code (test framework, runtime system etc)直到现在都没有人公开编写此编译器输出需要的链接库,这也就是个废物了?因为可能大家都看不懂递归、CPS、Combinator... (反正还有一大堆真·函数式的理论没几个人看的)
在他删除这个 repo 之后,只有寥寥两个 fork 继续存在,而且没有人动过那些代码,真是应了某些科幻小说里“他们无法解开我加密的代码”这句话了,Scheme 是多像数学,看起来多么美观自然但是多么难理解,不熟悉者对着一大堆括号一头雾水,满眼
define lambda match 不知何意,大概 Haskell 都比这更像过程式语言不是吗...最多的分析大概就是他吹出去的那 40 行代码了,一个 CPS 编译器
A notable thing of this compiler is its use of high-order evaluation contexts, an advanced technique used in CPS transformers, which resulted sometimes in much simpler and shorter code.
那么多人崇拜王垠,觉得他很酷,很厉害,可惜这些觉得他很厉害的程序员里,有几个知道他到底是做什么的呢?
所谓编译原理、编译器技术,可能以他为榜样的那部分人里,并没有人真正对这些感兴趣,只是作为一个遥不可及的偶像罢了。
可是,现在的计算机工程需要一种像神一样的存在吗?
如果你希望你的DSL跑的像射命丸文一样快,你可以把这些特性去掉,然后你就能在你自己的编译器里做优化(inline,JIT,fusion,tco,lazy,unwrap lambda)了。
然后你又会发现,这些其实很简单的东西知乎上的程序员似乎觉得这很高大上诶!那些脑子转不过来的程序员连 Parser Combinator 都搞不懂,用 JS 写出 JS 的 Parser、写出 C 语言的 Tokenizer 和 Grammar Analyzer 就能称霸一方,你一去他们岂不是集体跪拜?
真香... 🙈
GitHub
yscheme/compiler.ss at master · kztao/yscheme
a compiler from a subset of Scheme into X64. Contribute to kztao/yscheme development by creating an account on GitHub.
duangsuse::Echo
https://github.com/kztao/yscheme/blob/master/compiler.ss 这个从 Chez Scheme 作者 Kent Dybvig 的课堂上带来开源的 Scheme 编译器,可以把 R6RS 的子集的代码转换为 AT Syntax X86(_64) 汇编代码,不过需要一个额外的运行环境才能执行 Only the main compiler code is here. I don't have copyright of the rest of the code…
现在咱正在测试 play compiler.ss 🐱
终于知道
注释掉没有的代码后,
因为 compiler.ss 使用了太多自定义语法 想白白测试来很困难,所以暂时不继续测试了
终于知道
define-syntax 是什么意思了...注释掉没有的代码后,
;(load "match.ss")Chez Scheme 说
;(load "helpers.ss")
;(load "driver.ss")
;(load "fmts.pretty")
;(load "wrapper.ss")
[DuangSUSE@duangsuse]~/Projects% scheme compiler.ss发现有这些代码
Chez Scheme Version 9.5
Copyright 1984-2017 Cisco Systems, Inc.
Exception: misplaced aux keyword (unquote x) at line 234, char 8 of compiler.ss
(define mref?然后,参照手册 https://www.scheme.com/tspl4/examples.html
(lambda (x)
(match x
[(mref ,base ,off) #t]
[,x #f]))) ; misplaced aux keyword (unquote x) at line 234
(display ,x) ; misplaced aux keyword (unquote x)好玩,可惜 ApkBundler Scheme 不打算使用这样的宏系统
(define-syntax unquote
(lambda (x) 1)
(display ,s) ; => 1
(define-syntax unquote
(syntax-rules ()
[(_ e) (display e)]))
,display
#<procedure display>
因为 compiler.ss 使用了太多自定义语法 想白白测试来很困难,所以暂时不继续测试了