Programming TypeScript编写的代码(文本)由一个特殊的程序(编译器)解析,转换成抽象句法树(abstract syntax tree, AS). AST 是去掉了空白、注释和缩进用的制表符或空格之后的数据结构。 编译器把 AST 转换成一种字节码(bytecode)的低(底?)层表示。 字节码再传给运行时程序计算,最终得到结果。 · 综上 1. 把程序解析成AST 2. 把 AST 编译成字节码 3. 运行时计算字节码 TS 的特殊之处在于,它不直接编译成字节码,而是编译成JS代码 • TS 1. TS 源码 => TS AST 2. 类型检查器检查 AST 3. TS AST => JS 源码 • JS 4. JS 源码 => JS AST 5. AST => 字节码 6. 运行时计算字节码 在这个过程中,第1-2步骤中使用程序的类型,第三步不使用。就是说 TS TS0 码力 | 3 页 | 202.08 KB | 2 年前3
MoonBit月兔编程语言 现代编程思想 第五课 数据类型:树、二叉树、二叉搜索树、AVL树# 现代编程思想 树 Hongbo Zhang ## 数据结构:树 • 树 · 二叉树 • 二叉搜索树 • 二叉平衡树 ## 生活中的树状图 - 生活中有很多的数据的结构与一颗树相似 - 谱系图(又称,家族树) ☐ 文件结构 ☐ 数学表达式  ## 树的逻辑结构 • 数据结构中,树是由有限个节点构成的具有层次关系的集合 ◦ 节点是存储数据的结构,节点之间存在亲子关系:父节点和子节点 如果树不为空,则它拥有一个根节点:根节点没有父节点 所有非根节点都有唯一的父节点 如果没有子节点的节点可称为叶节点 ☐ 任何节点不能是自己的后代节点:树中不能有环路 ☐ 树的一条边指的是一对节点 $ (u, v) 0/b0908fa36dacc9f916e5bf9d9fe29bf7/p4_2.jpg) ## 树的逻辑结构 • 这不是一颗树  ## 树的逻辑结构 - 计算机中的树根节点在上,子节点在父节点下方 • 相关术语 节点的深度:根节点下到这个节点的路径的长度(边的数量)0 码力 | 29 页 | 1015.26 KB | 2 年前3
理解Python中的AST 何翔宇3e340d762f6eb19e725/p1_2.jpg) ## 理解 Python 中的 AST 何翔宇(正小歪) 字节跳动·效率工程·后端开发工程师 ## 目录 Intro CPython's Compiler How to Use AST Library Use AST to Solve Problems Suggestion and Reference )))))))))) ## - 解析 )'))))))))))),(4,'),(0,') - 根据词法分析的结果和语法文件,生成解析树  ## I ntro CPython’s0 码力 | 39 页 | 6.95 MB | 2 年前3
2.1 gofmt 的文化演变但是,没有牛X的通用布局算法 • 相反的:基于节点的精细优化 ## 处理源代码 - 使用`go/scanner`, `go/parser`及其相关的库 给每一个go文件生成一个抽象语法树 - 每一个语法结构都有相应的AST节点 // Syntax of an if statement. If Stmt = "if" [ SimpleStmt ";" ] Expression condition Body *BlockStmt Else Stmt // else branch; or nil } • AST节点有(选择性的)位置信息。 ## 基本的格式化 - 遍历AST然后打印每个节点 case *ast.IfStmt: p.print(token.IF) p.controlClause(false, s.Init, s.Cond, p.print(blank, token.ELSE, blank) switch s.Else.(type) { case *ast.BlockStmt, *ast.IfStmt: p.stmt(s.Else, nextIsRBrace) default: p0 码力 | 34 页 | 9.97 MB | 2 年前3
Go基础语法宝典• return 用于从函数返回 • defer 用于类似析构函数 go 用于并发 - select 用于选择不同类型的通讯 • interface 用于定义接口 • struct 用于定义抽象数据类型 - break、case、continue、for、fallthrough、else、if、switch、goto、default 用于流程控制 • chan 用于 channel 通讯 main() { var i int } ## 常量 所谓常量,也就是在程序编译阶段就确定下来的值,而程序在运行时无法改变该值。在Go程序中,常量可定义为数值、布尔值或字符串等类型。 它的语法如下: const constantName = value // 如果需要,也可以明确指定常量的类型: const Pi float32 = 3.1415926 下面是一些常量声明的例子: const com/0voice/Introduction-to-Golang ## 流程控制 Go中流程控制分三大类:条件判断,循环控制和无条件跳转。 ## if if 也许是各种编程语言中最常见的了,它的语法概括起来就是:如果满足条件就做某事,否则做另一件事。 Go里面 if 条件判断语句中不需要括号,如下代码所示 if x > 10 { fmt.Println("x is greater0 码力 | 47 页 | 1020.34 KB | 2 年前3
机器学习课程-温州大学-07机器学习-决策树## 机器学习-决策树 黄海广 副教授 2023年06月 ## 本章目录 01 决策树原理 02 ID3算法 03 C4.5算法 04 CART算法 ### 1. 决策树原理 01 决策树原理 02 ID3算法 03 C4.5算法 04 CART算法 ### 1. 决策树原理  ● 决策树:从训练数据中学习得出一个树状结构的模型。 ● 决策树属于判别模型。 ● 决策树是一种树状结构,通过做出一系列决策(选择)来对数据进行划分,这类似于针对一系列问题进行选择。 ● 决策树的决策过程就是从根节点开始,测试待分类项中对应的特征属性,并按照其值选择输出分支,直到叶子节点,将叶子节点的存放的类别作为决策结果。 ### 1. 决策树原理  - 决策树算法是一种归纳分类算法,它通过对训练集的学习,挖掘出有用的规则,用于对新数据进行预测。 ● 决策树算法属于监督学习方法。 ● 决策树归纳的基本算法是贪心算法,自顶向下来构建决策树。 ● 贪心算法:在每一步选择中都采取在当前状态下最好/优的选择。 ● 在决策树的生成过程中,分割方法即属性选择的度量是关键。 ### 1. 决策树原理 ## 决策树的特点 ## 优点:0 码力 | 39 页 | 1.84 MB | 2 年前3
李欣宜 扩展Python的语法和语义 # Python的语法扩展系统 Moshmosh Thautwarm&李欣宜 The awareness of low-level implementation details brings the appreciation Kiselyov ## 目录 CONTENTS >> 提供语法和语义的语言不仅仅是工具,还是思维方式 >> 表达能力的极限,由内破除,还是从外破除? Moshmosh:我的Python不可能这么甜美清新 >> 下班时在干什么?有没有空?可以来contribute吗? ## 1 提供语法和语义的语言 不仅仅是工具,还是思维方式 ,ECMAScript 描述了 JavaScript 脚本语言的语法和基本对象。因此,本书从严谨的角度出发,这里使用 ECMAScript 语法基础作为本章标题。不过,绝大多数的设计人员还是不区分 JavaScript 与 ECMAScript 的,更习惯用 JavaScript 语法的称谓。 ### 2.1 ECMAScript 基础 在第 1 章中,我们了解到 JavaScript JavaScript 起初就是模仿 Java 而开发出来的。如果读者熟悉 Java 语言,就会发现 ECMAScript 语法很容易掌握,因其主要就是借用了 Java 语言的语法。当然,JavaScript 与 Java 毕竟是两种功能作用不同的编程语言,ECMAScript 还有一些特殊的语法特性。 #### 2.1.1 ECMAScript 语句 相信读者在学习人生中的第一门编程语言(比如 C 语言、Java0 码力 | 52 页 | 3.83 MB | 2 年前3
06 PHP基本语法 — 条件、循环、函数 杨亮 《PHP语⾔程序设计》## PHP CHINA PHP基本语法 PHPCHINA! HAPPY PHPING PHPCHINA.COM —条件、循环、函数 杨亮 ## 程序的基本结构 程序 运算(+ - x / & | ! ..) 输入 逻辑(条件、循环、递归) 输出 辅助(变量、数组、函数) 小测验 用你熟悉的程序找出 1~1000中的所有质数 ## 我们直接看代码好了 '; }0 码力 | 25 页 | 1.30 MB | 2 年前3
4 Python语法扩展框架Moshmosh和其上的CPython compatible JIT实现 thautwarmof advanced tricks in the Julia back end 抽象机器 (只规定语义) Python 字节码 JuVM虚拟栈机(具体指令集) 抽象解释 (一个)实例化/后端 自动得到 $ ^{*} $ 抽象指令 (没有实际指令) 代码生成 JuVM栈机指令 Julia AST/CodeInfo 运行时处理技巧 Julia “生成函数” Python JIT yield am.push(a)  ## 抽象解释 ## ● ● ● # restrain_jit/abs_compiler/from_bc.py cmp_map = { bc.Compare.EQ: RT.py_eq, 7e6351e02e278d623b7b26d/p22_2.jpg) 和Python不一样,Julia在运行时不能随意地eval。 生成的Julia代码需要经过一些tricky的处理,也就是将AST编码为Julia类型,然后使用Julia独特的基于类型的Staging代码生成... A long story here out of Python world, see GeneralizedGenerated0 码力 | 30 页 | 8.04 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













