搜索

pdf文档 Nim 2.0.8 Manual

5.73 MB 132 页 0 下载 115 浏览 0 评论 0 收藏
所属分类: 后端开发 / nim
语言 格式 评分
英语
.pdf
3
摘要
该文档是Nim 2.0.8语言手册,描述了Nim语言的词法、语法和语义。Nim代码基于内存位置进行计算,变量是位置的名称,每个变量和位置都有类型。标识符是变量、类型、过程等的名称,其含义由最小封闭作用域确定。表达式产生值或位置,产生位置的表达式称为左值。Nim程序由一个或多个源文件组成,由编译器处理为可执行文件。编译器将源代码解析为抽象语法树(AST),并通过语义分析添加语义信息。文档还定义了类型关系,包括类型相等、子类型关系和可转换关系。Nim源文件使用UTF-8编码,采用基于空格的缩进。注释以#开头,支持多行注释。文档还介绍了操作符的优先级和结合性,以及浮点类型、布尔类型、字符类型和枚举类型。此外,文档还涵盖了模块系统、导入语句和包含语句。
AI总结
Nim 2.0.8 语言手册的核心内容总结如下: - **基本概念**:Nim 代码在内存中的位置(location)上运行,变量是位置的名称。每个变量有静态类型(声明时),每个位置有动态类型(运行时)。标识符在声明的作用域内有效,作用域可嵌套。表达式可产生值或位置(l-value)。 - **编译与执行**:Nim 程序由源文件编译成可执行文件(如原生二进制或 JavaScript)。部分代码可在编译时执行(如常量表达式、宏)。编译器将源码解析为抽象语法树(AST),然后进行语义分析。语义分析发现的错误为静态错误;运行时检测到的错误为恐慌(panic),可通过 `--panics:on|off` 切换恐慌为异常或致命错误。 - **编码与缩进**:源文件使用 UTF-8 编码,支持 Unix/Windows/旧 Mac 换行符。缩进敏感,仅使用空格(不允许制表符)。解析器通过缩进栈识别代码块。 - **注释**:单行注释以 `#` 开头,多行注释以 `#[` 和 `]#` 包裹。文档注释以 `##` 开头。 - **类型关系**: - **类型相等**:多数类型使用结构等价,对象、枚举、distinct 和泛型类型使用名称等价。 - **子类型关系**:若对象 A 继承自 B,则 A 是 B 的子类型,且此关系扩展到 `var`、`ref`、`ptr`。 - **可转换关系**:定义了隐式转换规则,例如整数字面量可转换为多种数值类型,`seq` 和 `array` 可转换为 `openArray`,`cstring` 和 `ptr` 可转换为 `pointer`,`string` 可转换为 `cstring`。 - **语法与运算符**: - 使用扩展 BNF 描述语法。 - 用户可自定义运算符,有 11 个优先级级别。以 `^` 开头的二元运算符为右结合,其余为左结合。 - 一元运算符优先级高于所有二元运算符。以 `@` 开头的一元运算符绑定强于 `primarySuffix`。 - 运算符优先级由首字符决定,从高到低:`$ ^`、`* / div mod shl shr %`、`+ - ~ |`、`&`、`..`、比较运算符、`and`、`or xor`、`@ : ?`、赋值运算符、箭头运算符。 - **浮点数**:IEEE 754 异常可映射为 Nim 异常(如 `FloatInvalidOpDefect`),通过 `nanChecks` 和 `infChecks` 编译指示控制。`floatChecks` 是两者的快捷方式,默认关闭。 - **布尔与字符类型**:`bool` 类型值为 `true` 和 `false`,`ord(false) == 0`,`ord(true) == 1`。`and` 和 `or` 支持短路求值。`char` 类型大小为 1 字节,不能表示完整 UTF-8 字符,`Rune` 类型用于 Unicode 字符。 - **枚举类型**:定义有序的值集合,如 `type Direction = enum north, east, south, west`。 - **并发与锁**:提供 `guard` 编译指示防止数据竞争,确保对受保护内存位置的访问发生在 `locks` 语句内。`locks` 编译指示接受锁表达式列表,用于支持多锁语句。 - **模块**:每个模块是一个独立文件,有自己的命名空间。通过 `import` 语句访问其他模块符号,递归依赖允许但需注意循环引用。导出的符号以 `*` 标记。`include` 语句用于直接包含文件内容,与导入不同。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 120 页请下载阅读 -
文档评分
请文明评论,理性发言.