duangsuse::Echo
719 subscribers
4.28K photos
130 videos
583 files
6.49K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from 神奇的笔记 (神楽坂 立音)
#Blender学习 合成器/SunBeam/合成节点
2000fo 纪念! w
谢谢大家!
#INFO @YuutaW 把自己的个人频道转型为了一个新科技资讯频道
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta)
从现在开始,本频道不会再发布任何负面内容,本频道尽量不向读者传播负能量。
如果您认为本频道发布的消息违反了此项规定,请立即私信频道主 @YuutaW ,我会考虑处理。
也请频道授权的发布者遵守这一规定。
#频道
This media is not supported in your browser
VIEW IN TELEGRAM
#PL #project 最近 Lime 程式设计语言的 Java 解释器暂时不能开发,因为 Gekyll 拖了太久了而且马上开学了

Kotlin 版本解释器和未完成的 Java 版本在此,如果需要欢迎取用
简单的介绍一下 Lime 的工作原理

Lime 是一种简单的,基于 S-表达式的程序设计语言

Lime 拥有这几种原生类型

布尔:true false
对象:Java 对象、空指针
数字:默认 Double,支持 BigInteger 或 BigDecimal、Float、Long、Byte、Integer、Short 手动解析时根据词条类型转换
字符串:Java 的 String 对象
标识符(符号):Symbol 对象
S 表达式:SexpList 对象
宏:Macro 对象

详细信息可以看 KtLime 取用

Lime 是一门基于宏的语言,所有「函数调用」最终会被展开为「内部展开器」调用

宏可以被「apply」,apply(施用)的结果「application」可能是这样的:
最终所有宏都会被递归展开为 「内部展开器调用」形式

(# each (object procedure) . each object procedure)

~ (each list (do (i) puts i)) ; expanded as handler dispatch ". each list (# (i) puts i)"

Lime 为了支持一些元编程的宏,提供了「宏前置」功能,让宏可以直接接受到没有展开过的结果

(^# (vararg) . show-code vararg)

这样对某些参数来 apply 此宏时,不会预先进行 S 表达式展开 (print (+ 1 1)) 和符号解析 (print a) 了,直接给出没有展开的对象列表

这就是 Lime 的工作原理

(-> puts (# (object) . print-line object)))
(-> let (^# (vararg) . let-syntax vararg))
(let (hello = 'Hello, world!') in
(puts hello))
初用 TuxGuitar... :
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from 羽毛的小白板
写 codegen 累死
Forwarded from 羽毛的小白板
思考 ast transform 的写法
那个 ActionScript 的实现?
话说,duangsuse 现在还没有写过编译性的语言实现呢,这次来一个编译到 8085 汇编的编译器吧

来源语言是一门简单的四则运算语言,因为 duangsuse 对不熟悉的原因

+ - * /

只能计算 32 位有符号整数,由于 duangsuse 不熟悉啥 Combinator、啥 LL、左递归右递归的就不做扩号语法了(算了,貌似最简单的... 递归下降法应该能用吧

编译器使用 C++ 编写

目标语言是 GNUSim86 支持的 8085 汇编
并且在完成算式后自动将结果格式化输出到标准输出,真希望能使用 Libc,要不然还得自己不断和 10 除法取余转换字符串...
This media is not supported in your browser
VIEW IN TELEGRAM