5 刘知杭 静态类型的Python
静态类型的Python Lyzh(刘知杭) 目录 CONTENTS 有关类型的概念 使用mypy对Python源 代码进行静态分析 代数数据类型 拓展知识 关于类型的一些基本概念 有类型不等于有类型系统 动态语言类型化的必要性 不久前的一个案例 正文 类型的概念 CPython定义了PyObject这个 结构体作为对象头。 CPython中的类型,是指在对 象头中指向类型元信息的指针。 中通过函数的类型签名来寻找函数。 错误检查、程序验证 程序效率:动态类型不利于编译优化 渐进式类型系统 相对于静态语言的类型系统。 为动态语言添加类型系统需要考虑到过渡与历史包袱 一种叫做渐进式类型系统的东西完美的符合了这个应用场景 这种类型系统同时允许动态类型与静态类型的存在 声明类型系统、鸭子类型与结构类型系统 类型系统的分类——声明式类型系统与结构化类型系统 声明类型系统通过名字来检查类型 尽管没有为注释指定任何 含义,但始终存在一个隐式目标,即将它们用于类型提示。 该PEP旨在为类型注释提供标准语法,开放Python代码以简化静态分析和重构,潜 在的运行时类型检查,以及(可能在某些情况下)利用类型信息生成代码。 在这些目标中,静态分析是最重要的。这包括对类型检查器(如mypy)的支持, 以及提供可由IDE实现的代码重构操作。 虽然这些注释可以在运行时通过 __annotations__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 年前33 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查
解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS 语法和语义扩展 JIT 静态类型 语法和语义扩展 表达力的扩展, 可用性的保留,白来的午餐? 演示一小部分: 模式匹配, Quick Lambda, Pipe运算 语言决定思维模型 GNU-APL C++ Haskell 说 到 质 数 � 人 们 想 到 什 么 � 语言决定思维模型 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统一建模语言 UML 参考手册 - 基本概念
同时显示了各种结构如何配合工作 ��� 一 览中 以一个简单的例子开始 对 ��� 的视图 概念作了简单的介绍 然后 在后续的 章节中 静态视图 用例视图 状态机视图 活动视图 交互视图 物理视图 模型管理 视图 扩展机制 对各个视图进行详细的讨论 它们分别从静态建模机制 动态建模机制 模型管理机制以及扩展机制对 ��� 进行探讨 � ��� 标准元素讨论了一些与核心概念的区别较小或者重要性不足以被包括至 ����������������������������������������������������������������������������������������������� �� 静态视图������������������������������������������������������������������������������������������������� ������������������������������������������������������������������������������������� ��� 静态视图 静态视图 静态视图 静态视图 STATIC VIEW �����������������������������������������������������������������������������0 码力 | 123 页 | 2.61 MB | 1 年前3CmlPHP v2.x 开发手册
1.8.1 1.8.2 1.8.3 1.8.4 1.9 1.9.1 1.10 1.11 权限管理 数据验证 验证码 文件上传 数据库迁移 部署 伪静态配置 Apache Nginx 静态资源管理 安全 防注入 用户数据输入 csrf 加密解密 常见问题 模板中不同的url_model模式下传参给后端 ? &符混乱 服务高可用 升级日志 3 CmlPHP CmlPHP支持根目录、子目录,单入口、多入口部署、支持独立服务器、虚拟主机、VPS等多种环境, 绝大部分开发环境可直接运行,无需配置伪静态规则(部分低版本server只要修改框架URL配置即可, 框架会自动处理),快速上手开发。线上环境对SEO有要求时再配置伪静态即可。 5 初始化一个项目 为了方便开发人员初始化框架所需的目录结构及文件,cmlphp提供了项目推荐目录骨架(demo项目)。 'app_controller_path_name' => 'Controller',//路由根据请求url映射控制器用 'app_static_path_name' => 'Resource', //静态资源目录名 ]); //根据上面配置的目录,配置其它目录 Cml::setApplicationDir([ 'apps_path' => Cml::getApplicationDir('secure_src')0 码力 | 143 页 | 1.54 MB | 1 年前3CmlPHP v2.x 开发手册
1.7.2 1.8 1.8.1 1.8.2 1.8.3 1.8.4 1.9 1.9.1 1.10 1.11 验证码 文件上传 数据库迁移 部署 伪静态配置 Apache Nginx 静态资源管理 安全 防注入 用户数据输入 csrf 加密解密 常见问题 模板中不同的url_model模式下传参给后端 ? &符混乱 服务高可用 升级日志 CmlPHP 使用缓存,或缓存使用不当造成的性能不佳的问题。也杜绝了多人协 同开发缓存同步及管理的问题 CmlPHP支持根目录、子目录,单入口、多入口部署、支持独立服务 器、虚拟主机、VPS等多种环境,绝大部分开发环境可直接运行,无 需配置伪静态规则(部分低版本server只要修改框架URL配置即可,框 架会自动处理),快速上手开发。线上环境对SEO有要求时再配置伪静 态即可。 初始化一个项目 为了方便开发人员初始化框架所需的目录结构及文件,cmlphp提供了 'app_controller_path_name' => 'Controller',//路 由根据请求url映射控制器用 'app_static_path_name' => 'Resource', //静态资源 目录名 ]); //根据上面配置的目录,配置其它目录 Cml::setApplicationDir([ 'apps_path' => Cml::getApplicationDir('secure_src')0 码力 | 245 页 | 720.67 KB | 1 年前3ThinkJS 1.2 中文文档
-‐-‐-‐-‐ ⼊入⼝口⽂文件 └── resource -‐-‐-‐-‐ 静态资源⺫⽬目录 ├── css -‐-‐-‐-‐ 在 require。 // 定义 APP 的根⺫⽬目录 global.APP_PATH = __dirname + "/../App"; // 静态资源根⺫⽬目录 global.RESOURCE_PATH = __dirname; global.ROOT_PATH = __dirname; global.APP_DEBUG ⾏行为是 ThinkJS 扩展机制中⼀一项⽐比较关键的扩展,⾏行为可以独⽴立调⽤用,也可以整合到标签 (tag) ⾥里⼀一起调⽤用,⾏行为 是执⾏行过程中⼀一个动作或事件。如:路由检测是个⾏行为、静态缓存检测也是个⾏行为。 标签 (tag) 是⼀一组⾏行为的集合,是在系统执⾏行过程中切⾯面处调⽤用的。与 EventEmitter 不同,标签⾥里的⾏行为是按 顺序执⾏行的,当前的⾏行为通过 Promise0 码力 | 104 页 | 1.29 MB | 1 年前3CmlPHP v2.x 开发手册
25. 文件上传 1.6.25 26. 数据库迁移 1.6.26 7. 部署 1.7 1. 伪静态配置 1.7.1 1. Apache 1.7.1.1 2. Nginx 1.7.1.2 2. 静态资源管理 1.7.2 8. 安全 1.8 1. 防注入 1.8.1 2. 用户数据输入 1.8.2 CmlPHP支持根目录、子目录,单入口、多入口部署、支持独立服务器、虚拟主机、 VPS等多种环境,绝大部分开发环境可直接运行,无需配置伪静态规则(部分低版本 server只要修改框架URL配置即可,框架会自动处理),快速上手开发。线上环境对SEO 有要求时再配置伪静态即可。 初始化一个项目 为了方便开发人员初始化框架所需的目录结构及文件,cmlphp提供了项目推荐目录骨 架(demo项目)。按照readme下载即可。 'app_controller_path_name' => 'Controller',//路由根据请求url映射控制器用 'app_static_path_name' => 'Resource', //静态资源目录名 ]); //根据上面配置的目录,配置其它目录 Cml::setApplicationDir([ 'apps_path' => Cml::getApplicationDir('secure_src')0 码力 | 251 页 | 973.37 KB | 1 年前3Cmake 实践
举个简单的例子来说明外部构建,以编译 wxGTK 动态库和静态库为例,在 Everest 中打包 方式是这样的: 解开 wxGTK 后。 在其中建立 static 和 shared 目录。 进入 static 目录,运行../configure –enable-static;make 会在 static 目录生 成 wxGTK 的静态库。 进入 shared 目录,运行../configure 编译所在目录,也就是本例中的 build 目录。 所以,上面两个指令分别定义了: 可执行二进制的输出路径为 build/bin 和库的输出路径为 build/lib. 本节我们没有提到共享库和静态库的构建,所以,你可以不考虑第二条指令。 问题是,我应该把这两条指令写在工程的 CMakeLists.txt 还是 src 目录下的 CMakeLists.txt,把握一个简单的原则,在哪里 ADD_EXECUTABLE prefix,常见的使用方法看 起来是这个样子: cmake -DCMAKE_INSTALL_PREFIX=/usr . INSTALL 指令用于定义安装规则,安装的内容可以包括目标二进制、动态库、静态库以及 文件、目录、脚本等。 INSTALL 指令包含了各种安装类型,我们需要一个个分开解释: 目标文件的安装: INSTALL(TARGETS targets...0 码力 | 47 页 | 264.27 KB | 1 年前3
共 675 条
- 1
- 2
- 3
- 4
- 5
- 6
- 68