5 刘知杭 静态类型的Python## 静态类型的Python PYTHON 30th Lyzh(刘知杭) ## 目录 CONTENTS ➤ 有关类型的概念 使用mypy对Python源代码进行静态分析 代数数据类型 拓展知识 ## 关于类型的一些基本概念 有类型不等于有类型系统 PYTHON 30th 动态语言类型化的必要性 ## 不久前的一个案例 ☀️ ☀️ ☁️ rl = filter(lambda x: 甚至Haskell程序员们能够在HGoogle中通过函数的类型签名来寻找函数。 程序效率:动态类型不利于编译优化 ## 渐进式类型系统 相对于静态语言的类型系统。 为动态语言添加类型系统需要考虑到过渡与历史包袱 一种叫做渐进式类型系统的东西完美的符合了这个应用场景 这种类型系统同时允许动态类型与静态类型的存在 声明类型系统、鸭子类型与结构类型系统 类型系统的分类——声明式类型系统与结构化类型系统 声明类型系统通过名字来检查类型 支持。尽管没有为注释指定任何含义,但始终存在一个隐式目标,即将它们用于类型提示。 该PEP旨在为类型注释提供标准语法,开放Python代码以简化静态分析和重构,潜在的运行时类型检查,以及(可能在某些情况下)利用类型信息生成代码。 在这些目标中,静态分析是最重要的。这包括对类型检查器(如mypy)的支持,以及提供可由IDE实现的代码重构操作。 虽然这些注释可以在运行时通过 __annotations__0 码力 | 42 页 | 6.87 MB | 2 年前3
基于静态分析的Rust内存安全缺陷检测研究## 基于静态分析的Rust内存安全缺陷检测研究 报告人:徐辉 复旦大学 报告日期:2022.11.25 ## 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 ## 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 ## Rust语言 ## 系统级安全编程语言 研究挑战:指针分析是NP-hard问题 准确性:应采用路径敏感的指针分析算法,避免过多误报 分析效率:应基于Rust MIR的特点对算法进行优化,使其可行 ☐ 整体思路:基于编译过程中的生成的MIR进行静态分析 ■ 路径提取:控制流图=>生成树 别名分析:分析指针之间的关联关系 ■ 模式识别:根据预定义的缺陷模式检测指针漏洞 路径提取 ,这种情况是不能添加静态列的。如下: cqlsh:iteblog_keyspace> CREATE TABLE "itebl columns。这是因为静态列在同一个 partition key 存在多行的情况下才能达到最优情况,而且行数越多效果也好。但是如果没有定义 clustering column,相同 PRIMARY KEY 的数据在同一个分区里面只存在一行数据,本质上就是静态的,所以没必要支持静态列。 - 如果建表的时候指定了 COMPACT STORAGE,这时候也不允许存在静态列: cqlsh:iteblog_keyspace>0 码力 | 5 页 | 0 Bytes | 2 年前3
面向亿行 C/C++ 代码的静态分析系统设计及实践-肖枭## 面向亿行C/C++代码的 静态分析系统设计及实践 肖枭 ## 500+高端科技领导者与你一起探讨 技术、管理与商业那些事儿 2019年6月14–15日 上海圣诺亚皇冠假日酒店   2016年香港科技大学取得博士学位 过去10年一直以极高的热情从事静态分析技术的学术用研究 合作创办源伞科技,致力于推动静态分析技术在企业中的应用 ## 目录 代码质量管理是个大问题 静态分析+代码评审的实践 ## 生产质量是责任 ☐ 学习和强调,红线和惩罚,100%的测试 覆盖率,和事后复盘并不够 ☐ 有经验的程序员也会犯错 [Image](/uploads/documents/d/f/4/2/df4204d40f8d9990146651d100a36efb/p6_1.jpg) ## 自动化工具+流程才是未来 ☐ 静态分析工具:半智能的代码分析机器人 ☐ 静态分析辅助代码评审 ## Bug! Thx! Bug! ## 代码质量改进工具、流程落地难 □ 投入大 ☐ KPI不痛不痒 使用主体和责任主体不一致 ☐ 一步登天想要终极AI0 码力 | 39 页 | 6.88 MB | 2 年前3
3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查## 解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS >> 语法和语义扩展 >> JIT >> 静态类型  ## 语法和语义扩展 演示一小部分: |Restrain JIT|2.74 -> 0.64|3.54 -> 0.59|3.14 -> 0.93|2.00 -> 0.03|2.60 -> 0.96| 如果还有时间,我们用静态类型来写一个简单的网页生成框架 一个用起来,没有学习曲线的框架。 很安全,因为没有程序员需要付出心智负担的工作。 ## THANK YOU  ### GP vs. RDS? 列存与压缩原理举例 ## Select count(*) from customer where status = valid group by city  子节点 子节点 子节点 子节点 子节点 子节点 子节点 ## ApsaraDB for GP的定位 MPP + 列存压缩 ApsaraDB for GP = 复杂SQL + 查询优化器 本地高效存储 + 高速网络 + 预置稳定资源 = 简单、高效解决大数据分析需求 # ApsaraDB for GP的内核优化0 码力 | 26 页 | 1.13 MB | 2 年前3
MoonBit月兔编程语言 现代编程思想 第十课 哈希表与闭包
添加时向队首添加 - 查询时从队首遍历 树实现:二叉平衡树 - 基于第五节课介绍的二叉平衡树,每个节点的数据为键值对 - 对树操作时比较第一个参数 ## 哈希表 - 哈希函数/散列函数 Hash function ◦ 将任意长度的数据映射到某一固定长度的数据 在月兔的 Hash 接口中,数据被映射到整数范围内 trait Hash { hash(Self) -> Int0 码力 | 27 页 | 448.83 KB | 2 年前3
使用 TiDB 进行实时数据分析-马晓宇据库 ☐ 需要系统负荷有余量 ☐ 受到较少的干扰 ☐ 使用行存格式 - 如果实时长查询快速返回结果 所有系统资源全力投入计算 ☐ 使用列存格式 ## 案例回顾 TiDB 为保证短读写,使用了行存而非列存 ☐ 分析场景下 IO 效率低于列存数据库 • 分析应用的大批量数据读取会干扰短读写 简单的限制资源方法会大大降低大查询的执行速度 如果 ☐ 两种场景无法错峰 ☐ 应用对系统抖动敏感 应用对系统抖动敏感 那么只使用 TiDB + TiSpark 也还是歇菜 ## TiFlash Extension ( Beta 测试中 ) - 通过 Raft Learner 独立同步一套列存 Raft Learner 提供异步低消耗的副本同步 Raft Learner 读取协议配合 MVCC 提供强一致的读取 - 通过 Label 进行物理隔离 AP / TP 作业互相无影响 ## TiFlash TiFlash here • 架构简化 ☐ 同一套平台覆盖多个场景 ○ 统一的运维 同一份数据的另一个副本 ☐ 无需数据转移和复杂的增量合并流程 ☐ 行存 + 索引 → 高并发短查询 ☐ 列存 + 向量化引擎 → 低并发快速批量扫表 ☐ 完整的资源隔离 ## 案例回顾 数据源 TiTiDB 












