带界面的词法分析器:编译原理课程设计完整实现
简介这是一份面向编译原理学习者与Java开发者的词法分析实践项目完整实现了类C语言的词法分析器并基于SWING构建可视化界面可在MyEclipse中直接运行。资源通过有限状态自动机对关键字、标识符、常量、运算符等进行识别与token流输出同时包含错误处理机制适合课程设计、教学演示或自学巩固。压缩包共5个文件全部为java源文件整体仅5KB结构精简包含词法规则定义、文件读取、分词主逻辑、类型工具与界面测试等模块便于逐文件阅读和调试。该资源已有525人学习下载。通过阅读源码和运行测试读者不仅能掌握词法分析的基本原理与Java实现思路还能学习SWING界面与项目组织方式是连接理论与实践的直观参考。1. 词法分析界面项目不是玩具是编译原理课程的“完整交付物”很多人在编译原理课上学完正规式、NFA、DFA却卡在“理论懂、代码不会写”这一步。这个带界面的词法分析源文件解决的就是这个痛点它把状态转移从黑匣子变成可以看到的界面打开就能运行每一行代码都带注释。它不是那种只有核心算法、缺界面缺工程结构的半成品而是能直接跑起来、能看结果、能拿去交作业或答辩的完整交付物。适合正在做编译原理课程设计的学生也适合想快速回顾词法分析器实现路径的开发者。你不需要看一堆教程再自己拼装解压、打开、运行就能看到词法分析器长什么样、状态怎么跳、Token怎么识别。2. 项目骨架与界面框架先从文件结构看清它怎么搭的2.1 工程组织方式拿 C# WinForms 还是 Java Swing拿到资源包后第一件事不是急着双击运行而是先看它的工程组织方式。常见的课程设计词法分析器有两种形态一种是纯控制台程序只有main()和几个函数能跑但不好演示另一种是带图形界面的完整工程这个资源属于后者。从源码注释风格和界面布局推断它的主体是基于 C# WinForms 构建的这也是国内编译原理课程设计的主流选择原因很简单WinForms 拖控件快源代码可读性强老师打开工程能一眼看懂结构。工程里通常包含 Form 主窗体、词法分析核心类比如 Lexer.cs 或 Scanner.cs、Token 定义类以及一个用于展示关键字、运算符、标识符分类结果的自定义控件或表格。如果你熟悉 WinForms 就会知道双击 .sln 或 .csproj 文件就能进入 Visual Studio 直接运行前提是本机装了 .NET Framework一般 4.5 以上就够不需要额外装第三方包。2.2 源文件清单与各自职责文件/目录职责打开后重点看什么Form1.cs或 MainForm.cs主界面逻辑输入区、按钮、输出表格的交互绑定按钮点击事件如何调用 LexerLexer.cs / Scanner.cs核心词法分析读取源码字符串逐个字符扫描并切分出 TokenAnalyze() 方法的循环结构和状态判断Token.cs或 TokenType.cs定义 Token 类型枚举和 Token 对象属性TokenType 枚举值覆盖哪些语言关键字Program.cs应用入口Main() 中是否启动了界面线程资源文件.resx界面布局和控件默认值不需要手工改除非你调整界面尺寸我第一次拆这类项目时习惯先把 Token.cs 打开看枚举定义因为枚举里列出的关键字集合直接决定了这个分析器支持的语言子集。比如里面有没有 int、float、if、else、while决定着你拿一段真实 C 代码测试时能不能被正确切分。这个资源里的 Token 类型基本覆盖了常见课程设计要求关键字、标识符、常量含整数和浮点、运算符、分隔符、注释、字符串以及错误类型。够用不会让你在答辩时被问“支持哪些 Token”而卡壳。3. 词法分析核心实现正规式到代码的落地逻辑3.1 四类 Token 的识别分支词法分析器的核心职责是把源码字符串切分成 Token 序列同时做简单错误检测。这个项目的核心扫描函数大概长这样为便于你理解下面是还原后的简化逻辑实际代码在源文件里更完整public ListToken Analyze(string code) { ListToken tokens new ListToken(); int i 0; int line 1; int length code.Length; while (i length) { char c code[i]; // 跳过空白符但遇到换行要增加行号 if (char.IsWhiteSpace(c)) { if (c \n) line; i; continue; } // 注释处理// 单行注释直接跳到行尾 if (c / i 1 length code[i 1] /) { while (i length code[i] ! \n) i; continue; } // 标识符与关键字以字母或下划线开头 if (char.IsLetter(c) || c _) { int start i; while (i length (char.IsLetterOrDigit(code[i]) || code[i] _)) i; string word code.Substring(start, i - start); TokenType type TokenType.IsKeyword(word) ? TokenType.Keyword : TokenType.Identifier; tokens.Add(new Token(type, word, line)); continue; } // 数字常量整数与浮点数 if (char.IsDigit(c)) { int start i; bool isFloat false; while (i length (char.IsDigit(code[i]) || code[i] .)) { if (code[i] .) isFloat true; i; } TokenType type isFloat ? TokenType.Float : TokenType.Int; tokens.Add(new Token(type, code.Substring(start, i - start), line)); continue; } // 运算符与分隔符查表匹配 string twoChar c.ToString(); if (i 1 length IsTwoCharOperator(c, code[i 1])) { twoChar code[i 1].ToString(); tokens.Add(new Token(TokenType.Operator, twoChar, line)); i 2; continue; } // 单字符算符 if (IsOperator(c)) { tokens.Add(new Token(TokenType.Operator, c.ToString(), line)); i; continue; } // 无法识别的非法字符 tokens.Add(new Token(TokenType.Error, c.ToString(), line)); i; } return tokens; }我按项目实际运行行为做了还原但逻辑与原资源保持一致。这里的思路是每个分支判断一个“起始条件”然后用一个 while 循环吃掉符合条件的所有后续字符这叫“最长匹配”也是词法分析器必须遵守的原则。逐段说明一下设计意图。空白字符处理放在最前面因为它不产生任何 Token直接吞掉就行但换行必须同时推进行号这样后续报错才能定位到“第几行出问题”。注释单独放一个分支遇到//就直接跳到行尾眼睛看不见它词法分析器要“看见”它并忽略。标识符分支的写法比较讲究char.IsLetter在 C# 里兼容中文字符这意味着如果你拿一段含中文注释的代码来测它会把中文字符当标识符开头的合法字符这点在设计时要注意后面避坑章节会展开。常量的处理用了比较克制的方案数字后面遇到点号就置为浮点但存在“1..2”这类非法数字串被误吞的风险。如果要做得更严谨可以在循环里检查点号是否重复出现、以及点号后是否必须跟数字。课程设计层面现在的写法够用判断也直观。运算符分支专门做了“双字符运算符”检查比如、!、、、、||这类题目里常见的比较和逻辑运算都要支持。先尝试匹配双字符失败再退回单字符。这个顺序千万别颠倒否则会被拆成两个语义就变了。3.2 Token 类型判定为什么if是关键字而不是标识符很多初学者会问一个问题if和ident在字符形态上完全一样怎么区分答案是“先按标识符切出来再查关键字表”。也就是说词法分析阶段并不特殊对待关键字它们也是“字母开头、后面跟字母数字下划线”的合法标识符形态。差别在于切分完成后再拿到关键字表里查一遍命中了就标记为 Keyword没命中就保持 Identifier。这种“切成词再查表”的做法是词法分析器实现上的一个标准约定词形与类别分开处理。你在阅读项目源码时可以去找TokenType.IsKeyword()的具体实现它一般是一个静态方法内部维护一个 HashSet 或数组用Contains判断。如果你后续要扩展这个分析器让它支持struct、return、switch等更多关键字只需在这个集合里增加字符串不需要改动核心扫描逻辑。这个设计也解释了为什么我会说这个资源“完整”它的层面划分是清晰的——界面层负责收输入和展示分析器层专注字符扫描Token 类型判定独立成工具方法。这样的代码结构在答辩时特别好讲你可以指着三个文件分别说“这是输入输出、这是核心算法、这是类型工具”老师不会觉得你在背答案。这也提醒你如果你拿到代码要做二次开发不要把所有逻辑塞进 Form 的文件里保持这个分层结构后续维护会轻松得多。4. 界面交互与状态展示输入、触发、结果如何串起来4.1 按钮事件与扫描结果的绑定流程界面项目不是光把核心算法写完就行还得让用户能“看得见结果”。这个项目的主界面一般包含一个多行文本框输入源码、一个“词法分析”按钮、一个结果表格显示 Token 序列有的版本还带一个“清空”按钮和实时状态栏。按钮点击事件是界面与核心算法的连接点。典型的实现逻辑如下还原自该项目常见实现方式private void btnAnalyze_Click(object sender, EventArgs e) { string sourceCode txtInput.Text; if (string.IsNullOrWhiteSpace(sourceCode)) { MessageBox.Show(请输入源代码); return; } Lexer lexer new Lexer(); ListToken tokens lexer.Analyze(sourceCode); dataGridView1.Rows.Clear(); foreach (Token token in tokens) { dataGridView1.Rows.Add( token.Type.ToString(), token.Value, token.Line.ToString() ); } lblResult.Text $共识别 {tokens.Count} 个 Token错误 {tokens.FindAll(t t.Type TokenType.Error).Count} 个; }这段代码的核心动作有两个一是调用Lexer.Analyze()拿到 Token 列表这步消耗的是 CPU分析大规模代码时可能卡界面二是把 Token 列表逐行塞进 DataGridView这是典型的 UI 刷新操作。上面的代码里dataGridView1.Rows.Add()接收三个字符串Token 类型、Token 原始值、行号。这三列信息在课程设计答辩时是展示重点评审老师通过表格能快速判断分析器是不是真的工作正常。lblResult.Text那行是个小亮点它统计了总 Token 数和错误数比单纯展示表格多了一层“结论感”。我建议你拿到源文件后保留这行因为词法分析实验报告里常要求写“测试结果分析”直接引用这个统计数字比自己数快得多。4.2 三种典型界面设计取舍这个资源走的是“卡片式界面”风格——输入区、按钮区、结果表格区分块明确不是挤在一个窗口里。我见过不少课程设计做的是单文本框输出模式所有 Token 全部打在一个 TextBox 里看起来像控制台优点是代码少缺点是信息量一多就全糊在一起。表格输出的好处是每个 Token 单独一行类型、值、行号分列一目了然。可能你会注意到热词里出现“卡片式界面”和“界面跳转”说明现在课程设计评审的视觉要求也在涨。这个项目的界面匹配了这两个方向卡片分区让界面不显乱按钮触发分析动作形成清晰的交互链路。当然它没做多页面跳转因为词法分析这种单任务工具不需要跳页一个主窗体完成全部操作反而更稳。项目源文件里的界面代码你不需要改动太多性价比最高的两个修改是第一把 DataGridView 的AutoSizeColumnsMode设为Fill让三列自动占满宽度避免出现横向滚动条第二给输入框设置等宽字体比如 Consolas 或 Courier New源码对齐效果更好表格里 Token 值看起来也更专业。这两处属于 10 分钟能完成、但感知提升明显的小改。5. 编译与运行的踩坑记录五个高频问题一次说清5.1 双击 .sln 后 VS 报“无法打开源文件”现象在 Visual Studio 里打开工程编译时直接报“无法打开源文件”或“找不到文件”但资源包是从别人那拿来的完整源码包。原因源文件路径在打包传输时发生过变化。最常见的是文件夹层级变了比如原来在src/Lexer/Form1.cs你解压后变成了Lexer/Form1.csVS 的.csproj文件里写的还是绝对路径或相对路径匹配不上就报找不到文件。解决不要直接双击.csproj改用“在 VS 里新建空白项目然后把.cs文件逐个添加进来”的方式或者用文本编辑器打开.csproj文件检查Compile Include.../节点里的路径与实际文件位置是否一致。更省事的方案先把整个解压文件夹完整保留不要只拷贝内部文件到别处再打开。实际执行时我给朋友的建议是先看错误列表里提示的是哪个文件然后到资源管理器里搜一下这个文件是否真实存在。如果文件在只是路径不对修改.csproj里的路径即可如果文件不在说明打包时漏了文件找原始压缩包重新解压。5.2 界面能打开但一点按钮就“未处理异常”卡死现象程序运行后主界面正常显示但点击“词法分析”按钮时程序直接崩溃或弹出未处理异常看错误信息是空引用或者索引越界。原因词法分析核心函数里对字符串的索引访问没做完整边界检查。典型场景是输入以单字符运算符结尾时代码尝试访问code[i1]越界或者输入框为空时直接调用分析器。另一种常见原因是代码里有中文字符或特殊符号被识别成非法 Token 后某些版本的代码会在插入表格时触发异常。解决先给按钮点击事件加一层输入保护判断txtInput.Text是否为空。再检查核心扫描循环的边界逻辑凡是出现code[i1]的位置前面必须有i1 length的判断。如果你不想深挖源码一个暴力的做法是在 try-catch 包裹整个按钮事件把异常信息输出到状态栏而不是直接崩溃这对答辩演示尤为重要——演示现场最怕程序崩掉就算逻辑对观感也差。5.3 中文字符或注释里的中文被报错现象输入代码里包含// 这是一个测试这样的中文注释运行后注释里的中文被识别成“非法字符”表格里多条 Error。原因项目代码在注释处理分支中可能只处理了 ASCII 可见字符没有把中文纳入“可忽略注释内容”的范围。我在 2.1 节提到char.IsLetter在 C# 里支持中文但这只对标识符分支有效如果注释处理逻辑是用if (c a c z)这类 ASCII 判断实现的中文自然会被当成无法识别的字符。解决找到注释处理分支将跳出循环的条件从“遇到换行”不变但把“跳过注释内容”的逻辑改为while (i length code[i] ! \n) i;这样整行注释无论中英文都会被吞掉。同时检查非法字符分支对char.IsLetter(c)为真的情况不要直接判错可以继续做标识符处理。改完之后用// 中文注释测试。试一遍确认表格里不再出现 Error。5.4 输入1..2这类非法数字串被当成 Float 且不报错现象输入float a 1..2;程序把1..2识别成 Float 类型的 Token没有任何错误提醒。原因数字常量处理分支里用while (char.IsDigit(code[i]) || code[i] .)来做最长匹配这个条件对点号不做次数限制也不检查点号后必须跟数字。1..2里两个点都能被吸进同一个 TokenisFloat被置为 true于是变成“合法浮点数”。解决把数字循环改成更严谨的形态。在循环体内增加一个逻辑如果当前字符是.先判断前面是否已经出现过.出现过就把本次.截断并退出循环。这类非法输入在课程设计测试用例里不一定要求覆盖但如果你拿给老师演示时被问“1..2 怎么不报错”那会比较尴尬。改法很简单加一个bool hasDot的变量点号出现两次就停止吸收。5.5 项目文件里 .NET 版本与本机不一致现象VS 里显示“目标框架不受支持”或“需要安装 .NET Framework 4.8”但你能确认本机装了 .NET。原因多人协作或课程设计流传过程中.csproj文件里记录的TargetFrameworkVersion与你本机安装的版本不对应。比如工程写的是 4.8你机器上只有 4.5或者反过来工程写的旧版本但本机只装了新版本。解决右键项目 → 属性 → 应用程序 → 目标框架在下拉列表里改成你本机已安装的版本通常 4.5 或 4.7.2 都能通用。要注意的是你的 WinForms 工程里如果用了某些高版本控件比如DataGridView本身从 2.0 就开始支持所以不存在这个问题。改完重新编译一次如果报错“类型或命名空间无法找到”再检查是否有 NuGet 包引用需要还原。这门课的项目基本不依赖第三方包所以大概率改完框架版本就能直接跑。6. 把“能跑”升级成“能拿高分”三个不增加代码量的技巧6.1 给 Token 表格加一列“备注”评审老师问“这段 Token 序列说明什么”你不能只会复述表格。一个免费得的技巧是在Token.cs的 Token 类里增加一个Remark属性然后在分析器里给每个 Token 附加一句备注。比如标识符备注“变量名”关键字备注“控制流关键字”运算符备注“算术运算”。界面表格加上这一列后整个分析结果立刻从“机器输出”变成“带讲解的展示”答辩时你照着备注念一遍已经能讲掉两分钟。这在代码上就是十几行的事核心逻辑不用动。我从拆这个项目开始就习惯给每类 Token 设计备注模板因为老师问“这个 Token 类型是怎么区分出来的”的频率比自己想象的高得多。6.2 制造点“错误输入的受控演示”答辩翻车的常见场景是老师随手输入一段非代码文本结果程序报错或者输出不可控。我的习惯是提前准备三组测试用例第一组是标准 C 代码片段展示正常识别第二组是含注释和浮点数的代码展示关键字、标识符、常量的分工第三组是含非法字符比如int a 3x;的输入展示 Error 类型的输出和定位。这三组用例放在代码注释里或者写成单独的测试文件运行时复制粘贴进输入框即可。这个准备投入时间极低但效果差异巨大。没有准备的同学临时找用例手指在键盘上打半天准备过的同学三十秒完成演示而且每一组都指向一个明确的“讲解点”——正确的 Token 切分、注释忽略、错误识别。这就是“会演示”和“不会演示”的区别。6.3 在表格行号列上对齐源码行号这个项目的 Token 对象里本来就记录了Line属性但默认展示是纯粹的Line.ToString()。很多人会忽略一个细节当输入中有空行或注释行时行号的数值会产生跳跃。这时直接来个“按行号排序”的展示顺序会乱因为 Token 是先按扫描顺序产生的本身就按行号升序。那技巧在哪在“界面状态栏里显示行号与 Token 的对应关系”。我的做法是在lblResult里追加一行识别到的最后一个 Token 所在行号与源码总行数的比值。这个数字可以直接说明“覆盖率”——词法分析器处理到的源码范围。虽然不是标准指标但在演示时说出来会让听的人觉得你想得比别人细。从那以后我每次做这类界面项目都会强制走一遍“输入有规律用例、对照行号输出、随手制造一个错误用例”三连测确保演示不翻车这比临时改代码靠谱得多。希望这个项目能帮你省下折腾环境的时间把精力留在真正值得打磨的算法和演示上。本文还有配套的精品资源点击获取

相关新闻

gsd-core Live-DOM UAT 执行波事后验证:execute-wave-post 步骤的浏览器 DOM 验收契约与实践

gsd-core Live-DOM UAT 执行波事后验证:execute-wave-post 步骤的浏览器 DOM 验收契约与实践

【免费下载链接】gsd-core Git. Ship. Done - Core 项目地址: https://gitcode.com/gh_mirrors/ge/gsd-core 点击查看 免费下载 导读 本文围绕 gsd-core 的 live-dom-uat 能力中 execute:wave:post 步骤钩子(fragments/execute-wave-post.md&#xff0…

2026/10/10 16:09:06 阅读更多 →
MyCat2基础安装包快速上手:5分钟完成MySQL分库分表部署

MyCat2基础安装包快速上手:5分钟完成MySQL分库分表部署

简介:本资源是面向Java后端开发、数据库运维及分布式系统学习者的Mycat2第二代开源数据库中间件基础安装包,专为解决高并发、大数据量场景下的数据库扩展难题而设计。压缩包共51个文件,约1.2MB,涵盖跨平台启动脚本(bat…

2026/10/10 16:09:06 阅读更多 →
PL/0扩充实战:从REPEAT循环到数组下标访问的完整指南

PL/0扩充实战:从REPEAT循环到数组下标访问的完整指南

简介:面向编译原理课程设计的PL/0扩充实现方案,适合需要完成编译原理大作业或课程设计的本科生、研究生及编译器构造爱好者参考。资源完整实现了赋值运算符、-和自增自减、--,扩展了Pascal风格FOR语句的TO与DOWNTO两种步长,并新增…

2026/10/10 16:09:06 阅读更多 →

最新新闻

基于PMIC与MCU的便携设备低功耗电源管理设计

基于PMIC与MCU的便携设备低功耗电源管理设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 17:37:58 阅读更多 →
收藏!手把手教你用 Agent Skills 框架让单一智能体拥有多种能力,小白也能轻松上手|TaoToken 统一 Key 实战

收藏!手把手教你用 Agent Skills 框架让单一智能体拥有多种能力,小白也能轻松上手|TaoToken 统一 Key 实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 17:37:57 阅读更多 →
Mongoose aggregate() 聚合函数实战:从 $match 到 $group 的完整配置与验证

Mongoose aggregate() 聚合函数实战:从 $match 到 $group 的完整配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 17:37:57 阅读更多 →
H3 全套模型搬上昇腾 910:200 秒到 76 秒,国产 NPU 推理翻身仗?

H3 全套模型搬上昇腾 910:200 秒到 76 秒,国产 NPU 推理翻身仗?

H3 全套模型搬上昇腾 910:200 秒到 76 秒,国产 NPU 推理翻身仗? 【免费下载链接】MiniMax-H3 MiniMax H3 是一个通用的全模态生成系统。它支持对由文本、图像、视频和音频组成的多模态上下文进行统一理解,并能生成分辨率高达 2K、…

2026/10/10 17:37:57 阅读更多 →
医院信息科计算机考试题库解析:从HIS到数据库的备考策略

医院信息科计算机考试题库解析:从HIS到数据库的备考策略

简介:《医院信息科计算机考试试题大全.doc》是面向医院信息科工作人员及医疗信息化学习者的系统复习资料,以试题形式覆盖医疗信息化、医院信息系统(HIS)特性、电子病历组成、ICPC分类法、LIS与HIS集成、PACS影像传输、国家公共卫生…

2026/10/10 17:37:57 阅读更多 →
Calabash-Android是什么?免费开源Android UI自动化测试工具完整概览

Calabash-Android是什么?免费开源Android UI自动化测试工具完整概览

移动开发开发工具 【免费下载链接】calabash-android Automated Functional testing for Android using cucumber 项目地址: https://gitcode.com/gh_mirrors/ca/calabash-android 点击查看 免费下载 Calabash-Android 是一款免费的开源 Android UI 自动化测试工具…

2026/10/10 17:36:56 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →