1. 用 C 语言实现动态语言:词法分析器、解析器、AST
词法分析器(Lexer) — 源文本 → token 流 解析器(Parser) — token 流 → AST 代码生成(Codegen) — AST → 汇编(或直接求值)
词法分析器(Lexer) — 源文本 → token 流 解析器(Parser) — token 流 → AST 代码生成(Codegen) — AST → 汇编(或直接求值)
我还清晰记得,初二的那年暑假,我跟着《第一行代码》这本书一步步地认真地学习了Android的四大组件,最终写了一个天气预报应用和一个记录阅读的APP。之后我便开始了Android应用开发之旅。或者说一切编程的启蒙。
本项目是基于 STM32 + 树莓派 的智能车视觉感知与运动控制系统,采用上下位机分层架构,融合了 计算机视觉(OpenCV)、嵌入式、前后端可视化与AI目标检测 等技术栈。可以做到线路识别、闭环控制、陌生人物检测与上传统计。
在 VSCode 中通过 OpenOCD 实现对 STM32 的远程调试与烧录,利用树莓派 5 作为调试桥接设备,连接 DAPLink 调试器与目标板。文章详细说明了在树莓派上配置 OpenOCD 以监听所有网络接口,并在 PC 端使用 ARM GNU Toolchain 提供的 GDB 与 Cortex-Debug...
clangd 是基于 Clang 编译器的 C/C++/Objective-C 语言服务器。 它提供类似 IDE 的功能,例如代码补全、跳转导航、重构和诊断,并可在支持 LSP(语言服务器协议)的编辑器中使用,如 VSCode、Neovim、Sublime 等。
enableirq 和 disableirq 控制的是PRIMASK寄存器值。
本文介绍了一种快速计算平方根倒数的算法,该算法源于上世纪90年代。文章首先解释了浮点数在计算机中的存储方式,特别是float32格式的结构,包括符号位、指数位和尾数位。接着,介绍了牛顿迭代法的基本原理及其在求解平方根倒数中的应用。通过对浮点数的对数变换,推导出与平方根倒数相关的公式,并解释了代码中使用的神秘常数...
文章介绍了如何在Android设备上通过Termux安装Debian,并配置VNC以便远程访问。作者提到,由于Android 12引入的Phantom Process Killer机制,Termux容易被杀死,因此提供了关闭该限制的ADB命令。接着,文章详细说明了如何安装XFCE桌面环境和配置VNC服务器...
在 Windows 更新后,用户的 Linux 系统因等待 90 秒而无法启动,并且出现依赖失败。调查发现,Windows 调换了 Linux 分区和恢复分区的顺序,从而导致了问题。用户通过修复 Linux、更新 fstab、重新安装 Grub 和使用 efibootmgr 更改启动顺序解决了问题。
Golang 使用 embed 包在编译时将外部文件包含到二进制程序中。使用 embed 指令可以将 html、css、js 等静态文件添加到二进制文件中,而无需额外的资源文件。嵌入文件可以使用字符串、[]字节和 FS 来引用。但也有一些限制,如文件层次结构问题和复杂路径问题。例如,如果嵌入文件和被嵌入文件不在同一层次...
本文讨论了博客数据备份方案,强调321原则:保留3个备份副本,使用2种不同储存介质,1个备份远离数据源。最初考虑使用GitHub Action进行备份,但发现其局限性。为此,开发了Hexo插件“hexo-auto-backup”,可在执行hexo deploy时自动备份重要文件到本地或云盘,支持多种云服务和协议。...
栈是一种遵循后进先出(LIFO)规则的数据结构,通常用于内存管理。重要寄存器包括栈指针(SP)和基指针(BP)。在函数调用中,使用`push`将参数压入栈中,`call`指令保存返回地址。ESP寄存器指向栈顶,函数执行后需平衡栈。C语言函数调用中,参数通过EBP寻址,编译器可能使用`mov`而非`push`...
在尝试使用 `git push -u origin main` 时,出现了权限错误,提示旧用户被拒绝访问。为了解决这个问题,作者尝试通过 `git commit --amend --reset-author` 重置提交作者,但问题依旧。最终在 Stack Overflow 找到解决方案:删除旧的凭证,成功解决了问题...
在开发 Madoka 日记时,做到导出导入的功能时,我想偷个懒导出直接用 Gson 将 Java 对象转换为 json 然后放在 txt 中,导入的时候再将 json 转为 javaBean 就行啦。
本文深入分析了 Shizuku 的启动过程,特别是 `Starter` 类的 `main` 方法是如何被调用的。文章首先回顾了 Shizuku 的基本概念,并介绍了通过 `adb` 命令激活 ShizukuService 的过程,重点分析了 `start.sh` 脚本的执行。当用户通过 ShizukuManager...
本文分析了 Shizuku 的源码,介绍了其如何通过 Binder 实现与 Android 系统服务的交互。Shizuku 应用引导用户以 root 或 adb 方式运行服务进程,利用 ShizukuBinderWrapper 进行系统隐藏 API 的调用。文章详细探讨了 ShizukuBinderWrapper...
这篇文章主要记录了作者在2019年初的个人感受和一些技术探索。作者回顾了过去一年的经历,感到没有太多进展,并提到冬季的天气和国内的传染病情况。尽管在家中待得久了,作者也提到了一些娱乐活动,比如观看动画和春晚,但整体上对新番的期待逐渐减弱。在技术方面,作者分享了在Android开发中监听Activity启动的需求...
本文总结了《Android艺术开发探索》中关于View事件分发机制的内容。事件序列从ACTION_DOWN开始,经过多个ACTION_MOVE,最后以ACTION_UP结束。事件传递顺序为Activity -> Window -> DecorView -> RootView。...
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in...
访问了许多网站,游览了许多资料 在 config.inc.php 中插入 / 开启HTTPS / define('TYPECHOSECURE',true); 也没有任何卵用,我开始绝望
2018年3月8日,Google发布了Android P的预览版 而这次版本更新引来了很多不满,大多是对布局外观上的评价 主要都是围绕着Material Design的问题,因为Google从Android5.x开始就遵循着Material Design 而Material Design是Google提出的设计风格...