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

第三章文法和语法[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={→ →→

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言编程函数补充上机题,2011年计算机二级C语言上机操作题及答案(10)

/********found********/void fun(char *s, *t1, *t2, *w){int i;char *p, *r, *a;strcpy(w, s);while (*w){p w;r t1;/********found********/while (r)if (*r *p){r;p;}else{break;}if (*r ’\0’){a w;r t2;while (*r){*a *r;a;r;}w strlen(t2);}else{w;}}}main(…

苏州大学实验报告模板C语言,苏州大学实验报告-实验flash在线编程实验

1、实验Flash在线编程实验一实验目的1进一步熟悉MT-IDE嵌入式开发系统环境、汇编、C语言、调试方式。2进一步学习SCI通信的内容。3掌握Flash存储器在线编程的基本概念。4熟悉GP32芯片Flash存储器的在线编程擦除和写入的步骤。5理解课本中的程序代码。二预习要求1仔细阅读本实验…

c55x汇编语言,TMS320C55x汇编语言编程A.ppt

TMS320C55x汇编语言编程A例4-17,无效定义的表达式。 .global Y ; 定义Y为全局外部符号 badsym1.set Y ; Y在当前文件中未定义 badsym2.set 50h Y ; 无效的表达式 badsym3.set 50h Z ; 无效的表达式,Z还未定义 Z .set 60h; 定义Z,但应在表达式使用之前 …

c语言课程笔记格式,C语言课程学习笔记.docx

C语言课程学习笔记C语言基础语言排行榜C——java——objective-C进制:进制:进位机制。用普通的话讲,应该为人为的定义一种度量来标识一样东西。计算机常用的进制有:十进制、二进制、八进制和十六进制。十进制:0-9(十个…

c语言 手机图形库,c语言的图形库 - osc_opiar5rp的个人空间 - OSCHINA - 中文开源技术交流社区...

图形库链接http://www.easyx.cn/ 使用图形库头文件easyx.h或graphics.h同样在里面下载图形库帮助文档进行查询vs vc都可使用图形库图形库窗口:initgraph打开窗口closegraph关闭窗口颜色RGB值 RGB(,,):red green blue 下表值都可以在函数中直接使用填充颜…

android 自动挂断,[转]android 来电自动接听和自动挂断

注意:android2.3版本不支持下面的自动接听方法。(会抛异常:java.lang.SecurityException:Neither user xxxxx nor current process hasandroid.permission.MODIFY_PHONE_STATE.)第一步:准备应用环境需要的系统包和aidl文件。(1)在应用中创建包…

Android实现mp3分析,Android编程实现播放MP3功能示例

本文实例讲述了Android编程实现播放MP3功能。分享给大家供大家参考,具体如下:在android中播放mp3非常简单,也是项目中经常使用的,比如说要做项目的背景音乐,应用中某些功能的提示音等的。应用非常广泛,下面提供一个简单…

android 投票功能,腾讯新闻Android客户端更新 加入投票功能

腾讯近日更新了其应用《腾讯新闻》安卓版,加入了新闻专题,投票两大新功能,同事还优化了用户界面,大家在浏览各类新闻方面又有了新的选择。新版特点:1、新闻专题:热门新闻专题呈现,聚合浏览&…

android8.1自定义通知栏,Android 8.1隐藏状态栏图标的实例代码

近期客户需求,状态栏只显示时间和电池图标,如图状态栏图标的布局文件在frameworks\base\packages\SystemUI\res\layout\status_bar.xml,主要包括通知,定位,蓝牙,信号,时间,电池等图标&#xff0…

广州城市地图为android,广州无障碍地图

广州无障碍地图是一款非常不错的手机导航app,专门为老人与残障人士打造的哦。该app将准确的为残障用户规划出一条没有任何障碍的出行路线,并且该软件拥有语音、文字等不同的播报方式。特色说明1、智能化的手机导航的系统,语音识别2、最为准确…

如何将系统退回上个版本Android,vivo NEX A降级教程,如何回退到旧版本系统的方法...

也来分享一下这个vivo NEX A手机的相关降级操作了,因为看到有的小伙伴对对于新升级的系统不是特别的满意,这个时候就会考虑进行系统的降级回退操作 ,一般直接刷官方的全量包是降不了,需要一个安卓10.0的中转降级包才行的&#xff…

支持3d android 模拟器,真正免root的3D神器详细使用教程

3D神器的功能众所周知,Android手机的GPU(图像显示芯片)是内置在CPU中的,而由于各个手机所采用的CPU不同,其GPU也不一样,不同的GPU,其内置的渲染模式也不一样。这就导致了不同手机的CPU平台需要使用对应的游戏数据包才能…

jays+android耳机,android – 响应多按钮有线耳机

我正在驾驶一对JAYS四耳机(有线遥控器/麦克风上有3个按钮)插入Galaxy Nexus(ICS 4.0.2)进行实验.我的问题是,只有中间的按钮被我写的测试应用程序’识别’,即按键时触发了Intent.ACTION_MEDIA_BUTTON和/或Activity.onKeyDown回调与KeyCode 79.按另外两个按钮不会触发任何以前的…

华为副总鸿蒙,“哄蒙”败北!华为副总裁落实最新消息,鸿蒙3月31日正式亮剑...

原标题:“哄蒙”败北!华为副总裁落实最新消息,鸿蒙3月31日正式亮剑不得不说,最近的华为生态建设又取得了重大的突破。在2020年不到一年的时间里,华为HMS生态注册开发者的数量就已经快要突破200万了,如此庞大…

android sonar 简书,SonarQube对ios、android代码检测

一、sonar安装利用sonar检测代码需要安装下面几个软件SonarQube、Sonar-Scanner、OClint、sonar plugin for objective-c、sonar-I10n-zh(安装步骤参考http://www.cnblogs.com/ishawn/p/3959521.html )二、ios检测脚本cp -rf /Users/conf/ios/sonar-project.properties ${WORKS…

android afw模式,[HUAWEI-TITANC328]手机加密功能开启后,工作区中添加超级备份手机不断重启的分析报告...

工作区中添加超级备份手机不断重启的分析报告【华为反馈】 【TIT-AL00C328B120_AFW_必现】创建工作空间后升级系统,升级失败,手机循环重启。通过分析log发现,实际上这个问题与OTA无关,而与工作区应用发出的notification有关。经过沟通和自测&…

html淡化效果,jQuery实现基本淡入淡出效果的方法详解

本文实例讲述了jQuery实现基本淡入淡出效果的方法。分享给大家供大家参考,具体如下:jQuery fadeIn()方法:用于淡入已隐藏的元素jQuery fadeOut()方法:用于淡出可见的元素$(document).ready(function(){$("button").clic…

Html跨页面调用函数,一个cshtml如何在另一个cshtml中调用一个函数?

在webmatrix中,我在App_Data中创建了一个带有许多公共静态函数的DAL.cshtml。我想从其他文件夹中的另一个.cshtml页面调用它们。我现在得到了编译器错误消息:CS0103:名称DAL在当前上下文中不存在(请注意,我是一名初学者&#xff0…

html 类型转换,JavaScript怎么进行类型转换?

JavaScript怎么进行类型转换?下面本篇文章就来介绍一下使用javascript进行类型转换的方法,希望对大家有所帮助。JavaScript 变量可以转换为新变量或其他数据类型,分为两种情况:● 隐性转换:通过 JavaScript 自身自动转…

html 地图点击标注有提示框不完整,百度地图的实现标注以及标注提示框.docx

$(function () {//最后加载的js代码findDimensions();map new BMap.Map("container"); // 创建地图实例// var point new BMap.Point(116.404, 39.915); // 创建点坐标map.centerAndZoom("北京");map.enableScrollWheelZoom(); // 开启鼠标滚轮缩放map.e…