5 刘知杭 静态类型的Python静态类型的Python Lyzh(刘知杭) 目录 CONTENTS 有关类型的概念 使用mypy对Python源 代码进行静态分析 代数数据类型 拓展知识 关于类型的一些基本概念 有类型不等于有类型系统 动态语言类型化的必要性 不久前的一个案例 正文 类型的概念 CPython定义了PyObject这个 结构体作为对象头。 CPython中的类型,是指在对 象头中指向类型元信息的指针。 中通过函数的类型签名来寻找函数。 错误检查、程序验证 程序效率:动态类型不利于编译优化 渐进式类型系统 相对于静态语言的类型系统。 为动态语言添加类型系统需要考虑到过渡与历史包袱 一种叫做渐进式类型系统的东西完美的符合了这个应用场景 这种类型系统同时允许动态类型与静态类型的存在 声明类型系统、鸭子类型与结构类型系统 类型系统的分类——声明式类型系统与结构化类型系统 声明类型系统通过名字来检查类型 PEP 3107 – Function Annotations 由于Python2中缺少缺少注释函数参数和返回值的标准,因此出现了各种工具和库来填 补这一空白。一些工具会解析函数的文档字符串,在这里寻找函数的注释。 这个PEP旨在钦定一种标准的方式,来减少各种库和工具采用的不同方法引起的混乱。 PEP 484 – Type Hints PEP 3107增加了对函数定义各部分上的任意注释的支持。尽管没有为注释指定任何0 码力 | 42 页 | 6.87 MB | 1 年前3
基于静态分析的Rust内存安全缺陷检测研究基于静态分析的Rust内存安全缺陷检测研究 报告人:徐辉 报告日期:2022.11.25 复旦大学 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 Rust语言 ❑ 系统级安全编程语言 ▪ 内存安全 ▪ 并发安全 ▪ 效率 2006年 2011年 研究挑战:指针分析是NP-hard问题 ▪ 准确性:应采用路径敏感的指针分析算法,避免过多误报 ▪ 分析效率:应基于Rust MIR的特点对算法进行优化,使其可行 ❑ 整体思路:基于编译过程中的生成的MIR进行静态分析 ▪ 路径提取:控制流图=>生成树 ▪ 别名分析:分析指针之间的关联关系 ▪ 模式识别:根据预定义的缺陷模式检测指针漏洞 路径提取 别名分析 模式识别 “SafeDrop: Detecting0 码力 | 28 页 | 1.55 MB | 1 年前3
面向亿行 C/C++ 代码的静态分析系统设计及实践-肖枭面向亿行C/C++代码的 静态分析系统设计及实践 肖枭 自我介绍 2016年香港科技大学取得博士学位 过去10年一直以极高的热情从事静态 分析技术的学术用研究 合作创办源伞科技,致力于推动静态 分析技术在企业中的应用 目录 代码质量管理是个大问题 静态分析+代码评审的实践 学习和强调,红线和惩罚,100%的测试 覆盖率,和事后复盘并不够 有经验的程序员也会犯错 对代码提要求很难监督落实 对代码提要求很难监督落实 测试更多是验证功能,很难检测编码缺陷 代码的快速变化使质量更难管 生产质量是责任 靠运维和事后复盘善后够吗? 静态分析工具:半智能的代码分析机器人 静态分析辅助代码评审 自动化工具+流程才是未来 Bug! Thx! Bug! 投入大 KPI不痛不痒 使用主体和责任主体不一致 一步登天想要终极AI 代码质量改进工具、流程落地难 大多数开发人员眼中的静态分析工具 检查逻辑问题好,但耗时长 还挺多误报,想用而不敢用 编译器里的Errors and warnings 自带静态分析的语言如Typescript, Rust IDE里的智能提示 代码混淆和美化 代码交叉索引 Eclipse等IDE中的一键重构 App市场的审核 成功静态分析应用 代码评审中的静态分析 针对该提交 代码片段自0 码力 | 39 页 | 6.88 MB | 1 年前3
Greenplum开源MPP数据库介绍0 码力 | 23 页 | 4.55 MB | 1 年前3
使用JDBC连接数据库使用JDBC连接数据库 北京理工大学计算机学院 金旭亮 Java数据库应用程序全局视图 Java应用程序 JDBC数据库驱动 (*.jar) JDBC规定了一整套访问数据库的标准API,所有数据库都 需要实现它,因此,使用JDBC访问数据库的Java应用程 序,是很容易切换底层数据库的。 JDBC核心类型一览表 核心类型(java.sql) 说明 DriverManager 负责装载/卸载驱动程序 Connection 与数据库建立连接 Statement 在一个给定的连接中执行SQL语句 PreparedStatement 用于执行预编译的SQL命令 CallableStatement 用于调用数据库中存储过程 ResultSet 保存SQL命令的执行结果 上述组件是独立于底层数据库的,也就是说,只要连接上了数据 库,相同的代码,就可以顺利工作…… JDBC访问数据库的基本步骤 加载JDBC驱动程序 加载JDBC驱动程序 创建数据库连接 执行SQL语句 接收并处理SQL的返回结果 关闭创建的各个对象 对于有可视化界面的应用 程序,或者是Server端 应用程序,应该在独立的 线程中完成这些步骤。 出于精简学习负担的目的,我们将以SQLite为例介绍 JDBC的基本使用,在此基础之上,后面选择微软的 SQL Server来介绍JDBC的高级特性…… JDBC连接SQLite数据库 下载SQLite的JDBC驱动-10 码力 | 20 页 | 1.02 MB | 1 年前3
Al原生数据库与RAGAl原生数据库与RAG 张颖峰 英飞流(上海)信息科技有限公司 创始人 目 录 RAG技术实践 01 Infinity系统架构 02 RAG技术实践 第一部分 基于向量数据库的RAG解决方案 文档 文本块 向量 VectorDB Embedding 向量相似度 提问 答案 查询 结果 文本切分 相关文本块 提示词 提示词模版 对话机器人 搜索 推荐 LLM对企业信息架构的改变 对话机器人 搜索 推荐 数据库 APIs 文档 网站 日志 交易记录 向量数据库 LLM 编排 Copilot RAG典型挑战和解决方案 挑战一:向量召回不准确 挑战四:幻觉、胡说八道 挑战五:定制化成本 挑战二:数据组织混乱丧失语义 挑战三:多样化查询需求 数据加工 数据库 文档结构识别 文字加工 多路召回 系统 文档内容抽取 文档格式解析 Prompt Template 提示模板 Recall 多路召回 Query 问题 Embedding 向量化 KnowledgeBase 知识库 ANN Parser Vector Index Full Text Index Cross Attentional Reranker 重排序 基于视觉的文档理解和切分 Documents0 码力 | 25 页 | 4.48 MB | 1 年前3
分布式NewSQL数据库TiDB优刻得科技股份有限公司 版权所有 分布式 分布式NewSQL数据库 数据库 TiDB 产品⽂档 2 9 11 12 12 12 12 12 13 14 14 14 14 15 15 16 16 18 ⽬录 ⽬录 ⽬录 ⽬录 概览 概览 什么是 什么是TiDB 产品优势 产品优势 ⾼度兼容 MySQL 动态扩展 分布式事务 HTAP 真正⾦融级⾼可⽤ 适⽤场景 适⽤场景 对数据⼀致性及⾼可靠 Real-time HTAP 场景 数据汇聚、⼆次加⼯处理的场景 真正⾦融级⾼可⽤ UCloud 云上 云上 TiDB 架构⽰意图 架构⽰意图 TiDB TiDB Serverless ⽬录 分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud 优刻得 2/120 20 20 21 24 24 25 28 28 28 28 28 29 30 30 32 33 34 36 36 Serverless 删除 实例 实例 创建TiDB集群 查看TiDB实例列表 查看TiDB实例详情 删除TiDB实例 ⽤户 ⽤户 添加⽤⼾及权限 重置⽤⼾密码 删除⾮root⽤⼾ ⽬录 分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud 优刻得 3/120 38 39 40 40 41 41 43 43 43 46 49 49 52 53 55 57 57 58 580 码力 | 120 页 | 7.42 MB | 6 月前3
PostgreSQL和Greenplum 数据库故障排查2018年PostgreSQL中国技术大会 PostgreSQL和Greenplum 数据库故障排查 赵振平 zzp@taryartar.com 北京太阳塔信息科技有限责任公司 2018年PostgreSQL中国技术大会 自我介绍 微信号:laohouzi999 2018年PostgreSQL中国技术大会 • 赵振平,太阳塔技术总监 • 电子工业出版社签约作家 • 腾讯最具价值专家(TVP) 腾讯最具价值专家(TVP) • 计算机畅销书作家 • 贵州省省管专家 • 国家首批大数据高级职称 • 出版了技术专著《Oracle数据库精讲与疑难解析》 • 出版了技术专著《成功之路:Oracle 11g学习笔记》 • 出版了技术专著《IT架构实录》 微信号:laohouzi999 2018年PostgreSQL中国技术大会 微信号:laohouzi999 2018年PostgreSQL中国技术大会 据定 义命令,比如CREATE,ALTER,和DROP 语句。mod记录所有ddl 语句,加上数据修改语句INSERT,UPDATE等,all记录所有执行的 语句,将此配置设置为all可跟踪整个数据库执行的SQL语句。 log_duration = off 记录每条SQL语句执行完成消耗的时间,将此配置设置为on, 用于统计哪些SQL语句耗时较长。 记录校验点的信息 log_checkpoints0 码力 | 84 页 | 12.61 MB | 1 年前3
Greenplum on Kubernetes
容器化MPP数据库Greenplum on Kubernetes 容器化MPP数据库 AGENDA 云数据库背景 云数据库实现方案 Greenplum on Kubernetes Greenplum Operator 总结 云数据库背景 云数据库背景 ● 资源变化 ○ 本地资源 → 云 ○ 静态资源 → 弹性需求 ● 数据变化 ○ 内部数据 → 多数据源 ○ 数据规模 → 不易预测 ○ 数据格式 数据共享 ● 云数据库市场巨大 ● 云数据库增速巨大 ● DBasS的需求 ● 跨云的需求 云数据库实现方案 云数据库需求 ● DBasS ○ 自动化运维 ○ 自动化调优 ● 弹性资源管理 ○ 存储资源 ○ 计算资源 ● 安全 ○ 用户数据 ○ 临时文件 ○ 网络传输 ○ 权限控制 ● 跨云 ○ 公有云 ○ 私有云 云数据库实现方案 ● 全新数据库 ○ Snowflake Snowflake ● 原有数据库架构升级 ○ Vertica Eon Mode ● 容器化数据库+Kubernetes ○ Apache Spark ○ CockroachDB ○ Apache HAWQ 云数据库存储方案 ● 块存储 ○ 文件系统接口 ● 对象存储 ○ 成本低 ○ 扩展性强 ○ 访问延迟高 Greenplum on Kubernetes Network Interconnect0 码力 | 33 页 | 1.93 MB | 1 年前3
3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS 语法和语义扩展 JIT 静态类型 语法和语义扩展 表达力的扩展, 可用性的保留,白来的午餐? 演示一小部分: 模式匹配, Quick Lambda, Pipe运算 语言决定思维模型 GNU-APL C++ Haskell 说 到 质 数 � 人 们 想 到 什 么 � 语言决定思维模型 JIT 基础架构。 为什么编译器从字节码开始着手? 因为运行时一旦开始你是拿不到源代码的。 如果你拿到了,那么你做了“脏”的操作(inspect库)。 我个人不能接受编译好的程序在运行时还要求源代码存在。 同时有一个叫bytecode的库,解决了一些使用字节码的难题。 字节码长相如何? 演示 先把Python字节码翻译到一个精简版本, 便于分析 指令集这么大时准备追x86汇编了? 95 -> 0.96 Restrain JIT 2.74 -> 0.64 3.54 -> 0.59 3.14 -> 0.93 2.00 -> 0.03 2.60 -> 0.96 如果还有时间,我们用静态类型 来写一个简单的网页生成框架 一个用起来,没有学习曲线的框架。 很安全,因为没有程序员需要付出心 智负担的工作。 THANK YOU thautwarm: - github.com/thautwarm0 码力 | 43 页 | 10.71 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













