brainfuck 代码生成工具 - 将C代码编译到brainfuck
最近在做一个编译原理lab ☝️🤓诶,我已经有结构化的AST和IR了,岂不是能不太费劲地地写出一些有意思的东西? 就这样一拍脑袋给编译器加了个brainfuck后端 基础设施 基本运算符 分支与跳转
给C++实现一个模式匹配
没用的小玩具
Xcode CLT 一个有意思的机制
最近觉得终端里面输 python 出来的竟然是 python2 很不爽,然后就想用个软链接把 /usr/local/bin/python 指到 /usr/local/bin/python3。 1$ sudo ln -s /usr/local/bin/python3 /usr/local/bin/python 完事,然后: 好怪哦 弄了半天不知道怎么回事,最后群里问了问,有大佬解释是这个 Xcode CommandLine Tools 提供的 python 会根据传入的程序名称决定行为,argv[0] 是 python 就当 python2 执行 软链接没问题,文件确实是一样的 换个名字就执行不了了 其实我应该自己早点发现这个问题的,之前刷知乎刷到过 clang/clang++ 也是一样的原理,共用一个执行文件,根据传入的 argv[0] 决定是否链接 libc++ 库等 还是没想到这里去 最后用了个 alias ,不折腾软链接了 最后还是用上了 conda 管理环境,删掉了 /usr/local/bin 里面的python/pip等。 等等…… 啊? 所以...
从零开始打造一个原琴模拟器
计科导大作业 试玩链接: 原琴模拟器 6.14 音色库来源:@Colalala_冰阔落落落 试了半天,发现没法正常播放这个风物之诗琴的音源,决定先用 smplr 默认的钢琴音源把别的写了。 写好了键盘演奏函数、谱子 parser 以及自动播放功能。 version 0.1.0 6.15 加入 [] {} 表示时值变化。 添加临时升降记号 -/+ 以及临时高/低八度记号。 重写了教程 version 0.3.0 6.16 添加了固定调转调方式,更适合对着五线谱演奏。 version 0.4.0 6.17 优化了调号显示。 version 0.4.4 加了个键盘,可以看到哪些音被按下了。 version 0.5.4 把自动演奏和按键动画连接了起来。 version 0.6.0 加了个加载时的提示悬浮窗 version 0.6.1 6.18 重构了代码 version 0.7.0 给按钮加了点阴影,感谢Box-Shadow CSS Generator以及用filter: drop-shadow()给透明图片添加阴影 version 0.7.1 遇到了个...
C++20 新特性试玩:concept
定义 concept 12template<typename T>concept c = (bool_expression); requires(args) {...} 可以作为一个 bool 表达式,检查大括号中内容是否编译通过 e.g. 12template <typename T>concept printable = requires(std::ostream& os, T a) { os << a; }; requires 字句也能嵌套,这样就不用把两个无关的条件参数写到同一个括号里面。 12template <typename T>concept Field = <concepts> 头文件内有一些预定义的...
图灵加法器
题目:loj6572, loj6573, loj6574 主要写一下 t3 一开始本人的思路是先把一个数前后颠倒地放到等号后面,再加上另一个数,最后把求得的和正过来,写了约 90 行。 小组讨论一会后发现这个取反操作挺没必要的,直接把第二个数加到第一个数上就行。 如何处理进位问题? 每次从第二个数那里取一位加至第一个数的时候将一个 0/1 转换为 a/b,相当于打上 “计算完毕”...
月度总结
2024 年 3 月 屁事没干,破防了 对比一下
线性代数复习
考前复习
vim 切换模式之后自动切换输入法
由于 vim 在 Normal 模式并不能识别中文输入法打出的命令,所以可以考虑在退出插入模式时自动切换输入法为英文。 使用 InputSourceSelector 12345678910111213141516171819if has('mac') function SwitchInput() let w:stored_input = split(system('input_selector current'))[0] if w:stored_input != "com.apple.keylayout.ABC" exec system('input_selector select com.apple.keylayout.ABC') endif endfunction set ttimeoutlen=100 call SwitchInput() autocmd InsertLeave * call...
从BBS到社交媒体:UGC平台内容分发算法的演变与展望
摘要 互联网的快速发展使得信息的传播和交流变得更加便捷和广泛。从早期的BBS(电子布告栏系统)到现代的社交媒体平台,用户生成内容(UGC)的分发算法经历了巨大的演变。在过去,BBS通过简单的时间排序展示内容,而如今的社交媒体平台则依靠复杂的推荐算法和个性化信息流来向用户推荐他们可能感兴趣的内容。本文将探讨早期平台的分发算法的特点以及其背后的原因,同时介绍现代平台采用的推荐算法,如协同过滤算法,并讨论它们的工作原理和应用。通过深入了解这些算法的变革,我们可以更好地理解社交媒体平台上内容分发的机制,以及它们对用户体验和信息传播的影响。同时,本文将探讨可能的未来发展方向,以期为UGC平台的进一步改进和创新提供思路和启示。 关键词 UGC BBS 社交媒体 内容分发算法 1...