实验一:词法分析程序一、实验目的   通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。
并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。
并依次输出各个单词的类型码及单词符号的自身值。
(遇到错误时可显示“Error”,然后跳过错误部分继续显示)二、实验要求用C或C++写一个简单的词法分析程序,程序可以满足下列要求:1、能分析如下几种简单的语言词法(1)标识符:ID=letter(letter|digit)*(2)关键字(全部小写)mainintfloatdoublecharifthenelseswitchcasebreakcontinuewhiledofor(3)整型常量:NUM=digitdigit*(4)运算符=+-*/=25整型常量11;26+13(27-14)28*15?29/16:303、词法分析程序实现的功能输入:单词序列(以文件方式提供),输出识别的单词的二元组序列到文件和屏幕输出:二元组构成:(syn,token或sum)其中:syn为单词的种别码token为存放的单词自身符号串sum为整型常数例:源程序:intab;
floatef=20;
ab=10+ef;
输出:(保留字--1,int)(标识符--10,ab)(分号--26,;)(保留字--2,float)(标识符--10,ef)(等号--17,=)(整数--11,20)(分号--26,;)(标识符--10,ab)(等号--17,=)(整数--11,10)(加号--13,+)(标识符--10,ef)(分号--26,;)4、自己准备测试数据存放于TestData.txt文件中,测试数据中应覆盖有以上5种数据,测试结果要求以原数据与结果对照的方式输出并保存在Result.txt中,同时要把结果输出到屏幕。
5、提前准备① 实验前,先编制好程序,上机时输入并调试程序。
准备好多组测试数据(存放于文件TestData.txt中)。
6、写出实验报告 报告格式:要求有实验名称、实验目的、实验要求、实验内容、实验小结。
其中实验内容包括算法分析、程序流程图及程序代码。
2023/2/21 22:09:07 7KB 词法分析 源代码
1
变数1-它是存储价值的容器2-没有int或特殊符号可以定义变量常数-常数类型1-整数常数(1,7,-3)2-实常数(322.1,22.3)3-字符常量(“a”,“$”,“@”)关键词1.自动2.休息3.案例4.字符5.常量6.继续7.默认8.做9.双10.长11.前往12.注册13.短14,签名15.sizeof16.静态17.int18,其他19.枚举20,外部21.float22为23.转到24.如果25.结构26.开关27.typedef28.联盟29.未签名30.void31.易失性32岁C程序的基本结构AC程序以主要功能开始库功能print(“这是%d”)%d用于整数%f代表实际价值字符的%c如何从用户那里获取输入声明一个变量询问使用printf用于回答使
2023/2/21 0:14:31 603KB C
1
OpenCL领域公认的权威著作,由OpenCL核心设计人员亲自执笔,不仅全面而深刻地解读了OpenCL规范和编程模型,而且通过大量案例和代码演示了基于OpenCL编写并行程序和实现各种并行算法的原理、方法、流程和最佳实践,以及如何对OpenCL进行功能优化,如何对硬件进行探测和调整。
,本书分为两大部分:第一部分(1~13章),从介绍OpenCL的核心思想和编写OpenCL程序的基础知识开始,对枯燥的OpenCL规范进行了深刻而系统的解读,旨在帮助读者全面、正确地理解OpenCL规范及其编程模型;
第二部分(14~22章),提供了一系列经典的案例,如图像直方图、Sobel边界检测过滤器、并行实现Dijkstra单源最短路径图算法、BulletPhysicsSDK中的布模拟、用快速傅里叶变换模拟海洋、光流、OpenCL与PyOpenCL结合使用,使用OpenCL完成矩阵相乘与稀疏矩阵矢量乘法等,目的是让读者通过案例熟练掌握编写复杂并行程序的方法和技巧。
本书的附录收录了OpenCL规范定义的大量函数、命名常量和类型,可供程序员开发时查阅。
2023/2/19 10:16:10 49.79MB OpenCL
1
第一部分 面向过程的程序设计第1章 C++概述11.1 计算机语言与程序11.1.1 机器语言与程序11.1.2 汇编语言与程序11.1.3 高级语言与程序11.2 从C到C++21.3 程序设计方法21.3.1 结构化程序设计方法31.3.2 面向对象的程序设计方法31.4 简单的C++程序引见41.5 程序开发的步骤5习题15第2章 数据类型、运算符和表达式62.1 保留字和标识符62.1.1 保留字62.1.2 标识符62.2 C++的基本数据类型62.3 常量和变量82.3.1 常量82.3.2 符号常量92.3.3 变量102.4 基本运算符和表达式112.4.1 C++运算符及表达式简介112.4.2 算术运算符和算术表达式112.4.3 运算优先级和结合性112.4.4 关系运算符和关系表达式122.4.5 逻辑运算符和逻辑表达式122.4.6 位运算符和位运算表达式122.4.7 自增、自减运算符和表达式142.4.8 赋值运算符和赋值表达式142.4.9 逗号运算符和逗号表达式152.4.10 sizeof()运算符和表达式152.4.11 逻辑表达式运算优化的副作用152.5 类型转换162.5.1 赋值时的自动类型转换162.5.2 各种类型运算量混合运算时的自动类型转换172.5.3 强制类型转换17习题218第3章 简单的输入/输出193.1 传统的输入/输出函数实现方法193.2 cout输出流203.2.1 输出八进制数、十六进制数和用科学记数法表示的数223.2.2 输出字符或字符串233.3 cin输入流233.3.1 输入十六进制或者八进制数据253.3.2 输入字符数据263.4 总结27习题327第4章 C++的流程控制294.1 算法概述294.1.1 算法的作用和类别294.1.2 算法的设计原则304.1.3 算法的表示工具304.1.4 结构化程序设计中基本结构的表示314.2 C++程序的结构和语句334.3 选择结构语句的使用354.3.1 if语句354.3.2 if语句的嵌套使用374.3.3 条件运算符384.3.4 switch语句394.4 循环结构语句的使用424.4.1 goto语句及标号的使用424.4.2 while语句434.4.3 for语句434.4.4 do-while语句444.4.5 break语句和continue语句454.4.6 循环的嵌套474.5 控制语句的应用举例47习题452第5章 函数545.1 概述545.2 函数的定义与调用545.2.1 函数的定义545.2.2 函数的调用565.2.3 函数的参数585.3 函数的原型声明595.4 函数的嵌套调用和递归调用605.4.1 函数的嵌套调用605.4.2 函数的递归调用635.5 内联函数665.6 函数重载675.6.1 参数类型不同的重载函数675.6.2 参数个数不同的重载函数685.7 使用C++系统函数685.8 作用域和存储类别695.8.1 作用域695.8.2 存储类别725.8.3 全局变量的作用域的扩展和限制745.9 程序的多文件组织765.9.1 内部函数和外部函数765.9.2 多文件组织的编译和连接77习题577第6章 编译预处理796.1 宏定义796.1.1 不带参数的宏定义796.1.2 带参数的宏定义806.2 “文件包含”处理82*6.3 条件编译83习题685第7章 数组867.1 数组的定义及应用867.1.1 一维数组的定义及使用867.1.2 一维数组作函数参数887.1.3 多维数组的定义及使用967.1.4 二维数组作函数参数987.2 字符数组的定义及应用1017.2.1 字符数组的定义1017.2.2 字符数组的初始化1017.2.3 字符数组的使用1027.2.4 字符串和字符串结束标志1027.2.5 字符数组的输入/输出1037.2.6 字符串处理函数1047.2.7 字符数组应用举例106习题7108第8章 结构体、共用体和枚举类型1108.1 结构体的定义及应用1108.1.1 结构体类型的定义1108.1.2 结构体类型变量的定义1118.
2023/2/11 6:48:32 1.36MB 王珊珊 c++ 第二版
1
1)洛必达法则求极限,最常用,要熟练;
2)无穷小代换求极限,在解题中非常有用,几个等价公式要倒背如流;
3)求含参数的极限,关键是把握常量变量的关系,求解过程体现你极限计算的基本功;
4)1的∞次方的极限是重点,多练几个题;
5)函数连续计算中要会对点进行修改定义、补充定义,看看书上怎样写的,给你说句话你体会一下,“连续的概念是逐点概念”,所以问题就是围绕特殊点展开的,这是数学思想了
2023/1/12 15:09:19 185.71MB 数学
1
这是维护版本。
在此版本中,PHPMailer获得了官方的PHP8兼容性;
早期版本可在PHP8预发行版中使用,但测试套件却不能。
@jrfnl完成了所需的大量工作(它还恢复了在较旧的PHP版本上运行的测试)–非常感谢!PHP8.0兼容性从PHPCSFixer切换到PHPCodeSniffer以获取编码标准为POP3类中的调试级别创建类常量改进法语,斯洛文尼亚语和乌克兰语的翻译改进文件上传示例,以便保留文件扩展名处理了由于修复了一个非常老的PHP错误而导致的PHP8换行问题使用旧的openssl函数时避免警告改善Travis-CI构建配置
2015/5/24 9:35:28 122KB PHPMailer mail群发
1
自定义语言C--的词法系统1)类型系统:支持int、char、void基本类型,分别用词法记号表示为关键字int、char和void。
2)常量:字符常量(用单引号括起来)、字符串常量(用双引号括起来)、八/十/六进制整数常量(0开头表示八进制,0x开头表示十六进制)。
分别用词法记号表示为ch、str和num。
3)变量:与常量对应,使用标识符表示,词法记号表示为id。
4)表达式运算符:支持加减乘除、求余、取负、自增、自减算术运算,大于、大于等于、小于、小于等于、等于、不等于关系运算,与、或、非逻辑运算,表示为词法记号:‘+’,‘-’,‘*’,‘/’,‘%’,‘-’,‘++’,‘--’,‘>’,‘>=’,‘<’,‘<=’,‘==’,‘!=’,‘&&’,‘||’,‘!’。
注意:取负运算和减法运算在词法分析器里是被看做是同一个词法记号。
5)语句:支持赋值语句、do-while、while、for循环语句,if-else、switch-case条件分之语句、函数调用、函数返回、跳转等语句。
涉及的词法记号表示为赋值号‘=’,关键字do,while,for,if,else,switch,case,default,return,break,continue。
语句和函数体要求用大括号括起来,case和default后面需要跟冒号,因而需要包括各种分界符作为词法记号:‘{’,‘}’,‘;’,‘:’,‘(’,‘)’,‘,’。
2022/12/4 4:20:21 56KB 词法分析 编译原理 Lex实现
1
说明:1.LunarCalendar对象是以月历为基准的,例如:2014年8月的月历数据。
2.LunarCalendar的所有方法都是针对于农历而言,例如getMonth方法,代表获取的是农历月的数据,而不是公历。
3.LunarCalendar实例化,默认为今天,可以指定为某天,大多数方法都是依据实例化时指定的天而前往数据的。
4.LunarDate类,是某一天的农历数据对象,并且已经拆分,而不是以前那样都混杂在一块。
5.JulianDate类,是公历数据对象。
6.LunarConstant类,是基本常量的数据对象,里面含有大量基本数据。
本次的封装版,实质上还是较为简单,没有进一步深入和挖掘,但也基本够用了。
各位读者可以根据自己的需要进行进一步整理,不过再整理和改造之前,建议还是先了解下相关的知识,否则估计你都无从下手,即便改了,在不了解逻辑的情况下,也容易出错。
2017/6/15 12:36:04 100KB 寿星天 文历 万年历 Java
1
《java程序设计》课程的题库资料,由贺州学院整理,可供学生期末课程复习使用,也可以供相关任课教师出卷使用。
内容示例为:40.__________包包含了Collection的接口的类的API。
答案:Java.util41.Math.round(11.5)等于__________,Math.round(-11.5)等于__________。
答案:12;-11[考点范围]常用的系统类42.________对象可以使用read方法从标准的输入设备(通常键盘)读取数据;
__________对象可以使用print方法向标准输出设备(屏幕)输出显示。
答案:System.in;
System.out[考点范围]JAVA输入输出系统43.框架(JFrame)和面板(JPanel)的默认规划管理器分别是______和_______。
答案:BorderLayoutFlowLayout[考点范围]图形用户界面44.Swing的规划管理器主要包括_______。
答案:FlowLayout、BorderLayout、CardLayout、GridLayout、GridBogLayout、BoxLayout[考点范围]图形用户界面45.Java事件处理包括建立事件源、________和将事件源注册到监听器。
答案:声明监听器[考点范围]图形用户界面46.AWT的事件处理机制包括_______、事件和事件监听者。
答案:事件源[考点范围]图形用户界面47.Swing的顶层容器有________、JApplet、JWwindow和JDialog。
答案:JFrame[考点范围]图形用户界面48.线程的启动是通过调用其______________方法而实现的。
答案:start()[考点范围]线程49.Java虚拟机(JVM)中的线程调度器负责管理线程,调度器把线程的优先级分为10个级别,分别用Thread类中的类常量表示,每个Java线程的优先级都在常数________和_______之间,即Thread.MIN_PRIORIY和Thread.MAX_PRIORIY之间。
答案:1;10[考点范围]线程
1
坏窗口下载您可以为最常见的桌面平台下载该游戏的二进制文件。
所有可执行文件均为64位。
注意:在macOS和Windows上,操作系统会警告您,这是因为二进制文件未签名。
(因为那笔常量钱,作为一个学生,我买不起。
)游戏玩法尝试用鼠标关闭窗口。
提示:您可以按ESC更改窗口的“心情”,它会显示在您的手中,因而您可以更轻松地关闭它。
在本地构建该游戏是使用Godot创建的,可以从获得一旦从该存储库中卸载了所有代码,就可以使用Godot打开该文件夹并开始破解。
2020/7/22 6:08:41 813KB GDScript
1
共 117 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡