第三章文法和语法[lly]3

第3章文法和语言;1、语言;研究程序设计语言及研究的三个方面: 每个程序构成的规律(语法 Syntax)每个程序的含义(语义 Semantics)每个程序和使用者的关系(语用 Pragmatics)

语言三个方面定义:语法 -- 表示构成语言句子的各个记号之间的组合规律语义 -- 表示按照各种表示方法所表示的各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)语用 --表示在各个记号所出现的行为中,它们的来源、使用和影响。;以自然语言为例(用 EBNF 描述一种语言:);〈句子〉 ? 〈主语〉〈谓语〉 ? 〈代词〉〈谓语〉 ? 我〈谓语〉 ? 我〈动词〉〈直接宾语〉 ? 我是〈直接宾语〉 ? 我是〈名词〉 ? 我是大学生思考: “?”的含义?“我大学生是” 与“大学生是王明”是句子?;3、程序设计语言与文法关系:一个程序设计语言是一个记号系统,如自然语言一样,由语句组成,完整的定义应包含语法与语义两个方面。语法规定了语句形成的规则,(哪些符号序列是合法的,而与其含义无关);语义不仅要限定语法规则(静态),而且要表明程序要做什么(动态)。文法是阐述语法规则的工具,是形式语言理论基础。

为语言的语法描述寻求工具工具要对程序设计语言给出精确无二义的语法描述。(严谨、简洁、易读)形式工具--形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。;字母表?:元素的非空有穷集合。(符号集)符号:字母表中的元素。;例如: Σ={0,1}ε,0,1,00,01,11,1001110等都是?上的符号串.;2)串的头与尾如果 z = xy 是一符号串,那么:x 是 z 的头,y 是 z 的尾;如果 x 非空,那么 y 是固有尾;如果 y 非空,那么 x 是固有头。;3、符号串的运算1)符号串的长度:符号串中符号的个数.符号串s的长度记为|s|。 ε的长度为02)连接:符号串x、y的连接,是把y的符号写在x的符号之后得到的符号串xy例: x=ST,y=abu 则 xy=STabu |x|=2,|y|=3,|xy|=5 εx = xε= x3)方幂:符号串x自身连接n次得到的符号串 xx…xx(n个x)定义为 x n x0=ε, x1=x, x2=xx, x3=xxx x=AB, 则 x0=ε, x1=AB, x2=ABAB, x3=ABABAB对于 n>0, x n = xxn-1 = xn-1x 4)符号串集合:若集合A中一切元素都是某字母表?上的符号串,则称A为字母表?上的符号串集合。;Σ* = Σ0 ∪ Σ1 ∪ Σ2 … ∪ Σn …Σ+ = Σ1 ∪ Σ2 … ∪ Σn …Σ* = Σ0 ∪ Σ+Σ+ = ΣΣ* = Σ* ΣΣ+ = Σ* -{ε};1、规则(重写规则、产生式或生成式): 是形如α→β或α∷=β的(α,β)有序对,其中α是某字母表V的正闭包V+中的一个符号,β是V*中的一个符号。(α∈V+,β∈V* why?) α称为规则的左部(或生成式的左部)。 β称为规则的右部(或生成式的右部)。

例:〈句子〉::= 〈主语〉〈谓语〉〈主语〉::= 〈代词〉|〈名词〉〈代词〉::= 你 | 我 | 他;2、文法G定义为四元组(VN,VT,P,S)元素说明:VN :非终结符集VT :终结符集P:产生式(规则)集合S:开始符号(识别符号)VN、VT 和 P 是非空有穷集。S 至少在一条规则中作为左部出现。VN∩VT= φ, S∈VNV=VN∪VT,称为文法G的字母表(字汇表);例3.2 文法G=(VN,VT,P,S)VN ={标识符,字母,数字}VT ={a,b,c,…x,y,z,0,1,…,9}P={→ →→ →a,…, →z →0,…, →9 }S=

思考: C语言的标识符(变量命名)如何用文法定义?;文法习惯上只将产生式写出。并有如下约定:第一条产生式的左部是开始符号用尖括号括起的是非终结符,否则为终结符。或者大写字母表示非终结符,小写字母表示终结符G可写成G[S],其中S是开始符号;3、推导的定义;例 文法G=(VN,VT,P,S)VN ={标识符,字母,数字}VT ={a,b,c,…x,y,z,0,1,…,9}P={→ →→

c语言标识符的文法表示,第三章文法和语法[lly]3.ppt相关推荐

  1. 《Go语言圣经》学习笔记 第三章 基础数据类型

    <Go语言圣经>学习笔记 第三章 基础数据类型 目录 整型 浮点数 复数 布尔型 字符串 常量 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记, ...

  2. 计算机基础98均9,第三章 计算机基础 Windows98 (第二讲).ppt

    <第三章 计算机基础 Windows98 (第二讲).ppt>由会员分享,可在线阅读,更多相关<第三章 计算机基础 Windows98 (第二讲).ppt(26页珍藏版)>请在 ...

  3. c语言16位字节只能用到255,《C语言程序设计》月考试题(第三章).doc

    实验五班<C语言程序设计>月考试题 学号 姓名 一.填空题 1.应用程序ONEFUNC.C中只有一个函数,这个函数的名称是________________. 2.在一个C源程序中,注释部分 ...

  4. 【C语言笔记初级篇】第三章:函数与递归

    第三章:函数 (1)函数是什么 在计算机科学中,子程序是一个大型程序中的某部分代码, 由一个或多个语句块组成.它负责完成某项特定任务,而且相较于其他代码,具备独立性.一般会有输入参数并有返回值,提供对 ...

  5. BIM建筑环境规则和分析(BERA)语言介绍(四)第三章 BERA语言设计

    设计策略 什么是好的语言设计?没有明确的答案,但许多研究人员 声称,新语言有重要因素可以获得接受和 长寿.就领域特定语言的主要目的而言,新语言 应首先以一种简单的方式有效地解决新问题[Mashey,2 ...

  6. R语言统计分析微生物组数据(第三章3)

    3.4 微生物数据组成分析 早在1897年,皮尔逊就警告说,在器官测量中使用两个绝对测量值的比值,可能会形成"伪相关".自1920s以来,地质学的研究人员已经知道,使用标准的统计方 ...

  7. 【go语言圣经】习题答案 第三章

    第三章练习题答案 3.1 修改无限制的float64值,跳过无效的多边形 3.2 试验math包中其他函数的渲染图形 马鞍面 3.3根据高度给每个多边形上色 3.4 构造web服务器,返回SVG数据给 ...

  8. Matlab龚珀兹曲线模型预测,第三章 趋势曲线模型预测法.ppt

    第三章 趋势外推模型预测法 第一节 直线模型预测法 第二节 多项式曲线模型预测法 第三节 指数曲线模型预测法 第四节 修正指数曲线模型预测法 第五节 成长曲线预测模型 应用趋势延伸法有两个假设前提: ...

  9. vpwm的控制变频_第三章 VVF控制与PWM方法.ppt

    第三章 VVF控制与PWM方法 第三章 VVVF控制与PWM方法 3.1 VVVF变频调速原理 控制方法特点: 2.这是在忽略定子漏阻抗的影响得到的,在频率比较低时,这种忽略会带来偏小,电机力矩不够, ...

最新文章

  1. SQL语句中拆分字段
  2. 深度学习每层的通道数如何计算_模型通道剪枝之DMCP: Differentiable Markov Channel Pruning...
  3. 领地柜怎么砸_在客厅和书房的隔墙上砸洞装个折叠窗,家里亮堂堂!这洞砸得值了...
  4. 如何打开.mmap查看的问题
  5. oracle追加index,oracle add index
  6. DVWA文件上传high级文件上传漏洞
  7. git 配置.gitignore 删除已提交的文件
  8. linux(windows,mac)下安装ta-lib
  9. 大数据分析有什么难题
  10. VMware与 Device/Credential Guard 不兼容.
  11. append 注意事项
  12. 2039 骑马修栅栏
  13. Pytorch中Tensor和numpy数组的互相转化
  14. 谷歌翻译api_Deepl:一款优秀的专业翻译软件
  15. Win 10 版NVIDIA GeForce GTX 1060显卡驱动的下载及飞桨(Paddle)的安装
  16. Linux安装NVIDIA显卡驱动的正确姿势
  17. apk逆向思路_逆向练手——从一个apk简单逆向看消息摘要算法
  18. Hbase性能测试及优化过程记
  19. TLS Origination for Egress Traffic(0.8)
  20. python程序画吉他和弦

热门文章

  1. python扩展库不是用于科学计算的有_有哪些科学计算的开源库
  2. c语言字符串未初始化strcat,C语言中字符串常用函数strcat与strcpy的用法介绍
  3. ubuntu php7 memcache,linux上安装php7 memcache扩展
  4. 垂直串联六关节机器人调试手册_不止下棋能赢你!新型协作机器人样样精通
  5. 分治法求数组最大值 c语言,使用分治法求最大子数组的下标。
  6. 串口通讯编程一日通2(Overlapped IO模型)
  7. WinCE驱动的动态加载
  8. ArcGIS之GP服务发布
  9. 【转】ARM 之七 主流编译器(armcc、iar、gcc for arm、LLVM(clang))详细介绍
  10. 【转】云服务器cvm 云服务器ecs区别