《CPython Internals》阅读笔记:p118-p150

《CPython Internals》学习第 8 天,p118-p150 总结,总计 33 页。

一、技术总结

补充一些本人整理的关于 Context-Free Grammar(CFG) 的知识。

1.symbol(符号)

A mathematical symbol is a figure or a combination of figures that is used to represent a mathematical object(符号是一个数字或数字的组合,用来表示一个数学对象)。

symbols也称为character(字符), letter(字母),范围比较广,可以是 deciamal digits(十进制数,0,1,2,3,4,5,6,7,8,9), 也可以是letters(a,...,z, A,...,Z),还可以是 >, <, =, !等。

2.alphabet(字母表)

2.1.定义

An alphabet is a finite, nonempty set of symbols. Conventionally, we use the symbol ∑(sigma) for an alphabet.

2.2.示例

{0, 1},{a, ..., z}。

3.string(串)

3.1. 定义

A string (or sometimes 01ì) is a finite sequence of symbols chosen from some alphabet.

3.2. 示例

For example, 01101 is a string from the binary alphabet Σ = {0, 1}. The string 111 is another string chosen from this alphabet.

3.3.empty string(空串)

The empty string is the string with zero occurrences of symbols. This string, denoted ϵ, is a string that may be chosen from any alphabet whatsoever.

3.4. length of string

4.language(语言)

4.1. 定义

A set of strings all of which are chosen from some alphabet, where Σ is a particular alphabet, is called a language.

注:language 是 string 的集合。

4.2. 示例

{10, 11, 101, 111, 1011,...}

5. grammar(文法)

全称为 Context-Free grammar(上下文无关文法),简写为grammar(文法)。

G=(V, T, P, S)

注:G 是 grammar 的首字母。(V, T, P, S)称为四元组(及有四个元素的元组)。集合里面的元素是无序的,元组里面的元素是有序的------示例: {1, 2, 3, 4} 和 {4, 3, 2, 1}可以是相等的,但是 (V, T, P, S) 和 (S, P, T, V)是不相等的,因为顺序不一样。

5.1. V

V is a finite set of variables, also called sometimes nonterminals(非终结符) or syntactic categories(语法范畴).

5.2. T

T is a finite set of symbols that form the strings of the language being defined. We call this alphabet the terminals(终结符), or terminal symbols(终结符号).

5.3. P

P is a finite set of productions(产生式) or rules that represent the recursive definition of a language.

There is a finite set of productions or rules that represent the recursive definition of a language. Each production consists of:

(a) A variable that is being (partially) defined by the production. This variable is often called the head of the- production.

(b) The production symbol →.

© A string of zero or more terminals and variables. This string, called the body of the production, represents one way to form strings in the language of the variable of the head. In so doing, we leave terminals unchanged and substitute for each variable of the body any string that is known to be in the language of that variable.

5.4. S

One of the variables represents the language being defined; it is called the start symbol(开始符号).

二、英语总结(生词:0)

无。

关于英语的注解同步更新汇总到 https://github.com/codists/English-In-CS-Books 仓库。

三、其它

The Compiler章节简评:今日不想评。

四、参考资料

1. 编程

(1) Anthony Shaw,《CPython Internals》:https://book.douban.com/subject/35405785/

2. 英语

(1) Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

相关推荐
多恩Stone9 分钟前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
QQ40220549625 分钟前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
百锦再26 分钟前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
QQ51100828527 分钟前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
QQ_196328847528 分钟前
Python-flask框架西山区家政服务评价系统网站设计与开发-Pycharm django
python·pycharm·flask
遥遥江上月29 分钟前
Node.js + Stagehand + Python 部署
开发语言·python·node.js
B站计算机毕业设计超人32 分钟前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
B站_计算机毕业设计之家33 分钟前
电影知识图谱推荐问答系统 | Python Django系统 Neo4j MySQL Echarts 协同过滤 大数据 人工智能 毕业设计源码(建议收藏)✅
人工智能·python·机器学习·django·毕业设计·echarts·知识图谱
计算机专业码农一枚34 分钟前
Python-flask框架基于推荐算法的在线课程推荐系统设计与实现-Pycharm django
python·flask·推荐算法
ATCB34 分钟前
零门槛!PythonAnywhere 免费部署全指南:不止 Django,这些项目都能搭(附主流平台对比)
后端·python·django