05-MoonBit 编程语言(WASM 技术)服务端应用展望以及对Kubernetes生态的影响WASM 惯例的差异 • 容器间交互模型与 WASM 惯例的差异 • WASM 的细粒度观测和管理不是 Kubernetes 层的专长 Kubernetes + WASM 后端应用 架构和概念有共识,但很多问题仍待解答 • 全新语言(2023 -),专业面向 WASM 目标 • 具有类似于 Rust 的现代化语言特性,带 GC • 当前阶段:社区共建和Pre-beta测试阶段 • 时间表:24/08实现core稳定,250 码力 | 30 页 | 3.41 MB | 9 月前3
MoonBit月兔编程语言 现代编程思想 第三课 函数, 列表与递归 // 编辑器会警告我们有模式尚未被匹配 3. Some(value) => value 4. // 若option_int为None则会程序出错中⽌ 5. } 6. } 22 算法:递归 23 递归的例⼦ GNU is Not Unix Wine Is Not an Emulator 斐波那契数列的计算(第⼀项为1,第⼆项为1,之后第n项为前两项之和) ⼭⾥有个庙 ,两者⻓度均为0,命题成⽴ 若 a 为⾮空( Cons(head, tail) ),则⼦列表 tail(Cons(head, tail)) == tail ,可知 ,命题成⽴ 由数学归纳法,原命题成⽴ 31 算法:动态规划 32 斐波那契数列的计算⽅式 1, 1, 2, 3, 5, 8, 13, 21, …… 不同的斐波那契数列的计算⽅式带来的不同性能差别( num > 40) 1. // 002_fib 总结 本章节我们学习了 基础数据类型:函数的定义与运算 数据结构:列表的定义与模式匹配 算法:递归的含义与运算,以及动态规划 拓展阅读 Software Foundations 前三章 或 Programming Language Foundations in Agda 前三章 《算法导论》第⼗四章 420 码力 | 42 页 | 587.59 KB | 1 年前3
WAF - 是时候跟正则表达式说再见寻找能被DDOS的正则表达式 寻找最坏时间复杂度大于等于? ?? 的正则表达式 利用正则表达式匹配的回溯 正则表达式匹配原理:NFA 正则表达式:(a|b)*abb 对应的NFA 匹配算法需要尝试每一条路径,直到找到一条匹配路径。尝试所有路径失败则匹配失败。 • 尝试所有匹配路径 • 路径尝试失败,需要回溯 正则表达式DDOS原理 正则:A.*B 文 本:AAN 语法分析 攻击语义检测 攻击语义抽象 基于语义检测的WAF—优缺点 运营成本低 高准确率 优点|缺点 应急 响应慢 语义抽象 依赖人 低漏报 开发成本很高 算法优化 基于统计的机器学习WAF—异常模型 正常请求 建立模型 (HMM) 模型 思路 • 正常的请求总是相似 • 异常却各有各的不同 线上请求 Pass 正常请求0 码力 | 24 页 | 1.66 MB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第五课 数据类型:树、二叉树、二叉搜索树、AVL树
dfs_search(target, left) || dfs_search(target, right) 在找到后即会中⽌遍历 13 ⼴度优先遍历 对每⼀层⼦树,挨个访问,并按照顺序,接着访问它们的⼦树 算法的实现依赖先进先出的数据结构:队列 我们对队列中现有的树,取出⼀个,对它的根节点进⾏操作,再将它的所有⾮ 空⼦树从左到右加⼊队列最后,直到队列为空 14 数据结构:队列 就像⽣活中排队⼀样,先进⼊队伍的⼈最先获得服务 } 8. } 28 总结 本章节我们学习了树这⼀数据结构,包括 树的定义及相关术语 ⼆叉树的定义以及遍历 ⼆叉搜索树的定义以及增删操作 ⼆叉平衡树AVL树的再平衡操作 拓展阅读 《算法导论》第12、13章 290 码力 | 29 页 | 1015.26 KB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第十课 哈希表与闭包
debug(map.contains(1)) // false 16. } 26 总结 本章节介绍了 哈希表的两种实现 开放寻址 直接寻址 闭包的概念及封装应⽤ 推荐阅读 《算法导论》第⼗⼀章 或 《算法》第3.4节 270 码力 | 27 页 | 448.83 KB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第一课 课程介绍与程序设计
2 什么是现代编程思想课 这是⼀⻔程序设计课 课程受众:所有编程爱好者 实⽤技巧 编写较⼤型程序(~10,000⾏) 独⽴分析解决问题 测试驱动开发与设计 概念基础 常⻅数据结构与算法 多种编程范式 关注模块化和组合性 3 课程⼯具 MoonBit⽉兔 现代静态类型多范式编程语⾔ 语法轻量,易上⼿ 浏览器开发环境、云原⽣开发环境或本地集成开发环境 4 课程概览0 码力 | 15 页 | 2.01 MB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第十二课 案例:自动微分 val : 10.0 } 12. } 29 总结 本章节介绍了⾃动微分的概念 展示了符号微分 展示了前向微分与后向微分 拓展阅读 3Blue1Brown:深度学习系列(梯度下降法、反向传播算法) 300 码力 | 30 页 | 3.24 MB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第十一课 案例:语法解析器与Tagless Final 获得计算结果 24 总结 本节课展示了⼀个语法解析器 介绍了词法解析的概念 介绍了语法解析的概念 展示了语法解析组合⼦的定义与实现 Tagless Final的概念与实现 拓展阅读 调度场算法 斯坦福CS143 第1-8课 或 《编译原理》前五章 或 《现代编译原理》前三章 拓展练习 实现兼容各类�流�的语法解析组合⼦ 250 码力 | 25 页 | 400.29 KB | 1 年前3
共 8 条
- 1













