首页 > 其他分享 >COMP 2049 浮点数与简单算术表达式

COMP 2049 浮点数与简单算术表达式

时间:2024-04-14 14:46:44浏览次数:22  
标签:G3 G2 COMP 浮点数 任务 2049 语法 JFLAP 表达式


COMP 2049语言与计算课程:浮点数与简单算术表达式1浮点数字
设计一个右线性语法G1,根据以下规则生成二进制浮点文字的语言:每个数字可以是有符号的,也可以是无符号的。
–在1.01中无符号,在+1.01或-1.10中有符号数字部分(也称为值字段)必须非空,并且可以选择包含小数点“.”,在这种情况下,它后面必须跟一些其他数字。例如:–在数字+110.11中,存档的值为110.11。–1和.01、-.001、001都可以接受,但1.、+、-和λ不可以。可能有一个可选的指数字段,在这种情况下,它必须包含字母“e”,后跟有符号或无符号整数。–例如,101e+1或-1.1e10是可接受的,但1.01e、1.01e-1.1和e11是不可接受的。此外,小数点“”之间必须至少有一位数字还有字母“e”。因此诸如11e01之类的字符串是不可接受的。
任务1。在JFLAP中实现语法G1,并在您选择的一些输入字符串上进行测试。图1提供了JFLAP中语法G1的一些示例输入字符串解析结果的屏幕截图。图1:一些样本输入和相应的结果
备注1.1在本课程的所有任务中,默认的解析方法应为“暴力解析”。因此,要在几个输入字符串上测试JFLAP中的语法,请选择选项卡“input”,然后选择项目“Multiple Brute Force Parse”。1.
2个算术表达式
对于第二个任务,您需要设计一个上下文无关语法(CFG)G2,该语法以二进制格式生成自然数上的算术表达式语言。每个算术表达式由以下内容构成:二进制无符号整数文字,接受前导零;
算术运算符+、-、*和/;
正确嵌套的括号。
例如,表达式(11+0101)/001必须被接受,而((11-01)必须被拒绝,因为括号不匹配。任务2。在JFLAP中实现语法G2,并在您选择的一些输入表达式上进行测试。检查语法G2的所有产生式规则,看看是否有λ-产生式或单位-产生式。如果有这样的结果,你可能会注意到,对于更复杂的输入字符串,JFLAP解析字符串需要很长时间。事实上,有时它可能会进入一个非终止循环。任务3。使用JFLAP去除语法G2的λ-乘积和单位乘积,得到语法G3。然后,尝试解析与以前相同的字符串,并注意解析它们所需的时间更短,而且解析器不会进入非终止循环。在JFLAP中,要删除λ-乘积和单位乘积,您可以首先选择选项卡“转换”,然后选择项目“转换语法”。图2中提供了JFLAP中语法G3的一些示例输入字符串解析结果的屏幕截图。要比较G2和G3的效率,可以使用示例输入“1+1-(1/1*1)”。图2:一些样本输入和相应的结果
3提交
您必须提交一个zip文件,其中包含三个JFLAP文件,根据以下模板命名:1。任务1的语法G1的JFLAP文件名为:ID_Surname_FirstName_01.jff 2。任务2的语法G2的JFLAP文件名为:ID_Surname_FirstName_02.jff 3。任务3的语法G3的JFLAP文件名为:4.名为的zip文件:
ID_Surname_FirstName_03.jff ID_Surnname_FirstName.zip2.
备注3.1如果您设计的任务2的语法G2已经没有λ-乘积和单位乘积,那么您可以提交与G3相同的语法。尽管如此,即使在这种情况下,您也必须提交三个具有上述命名约定的文件。发布日期:2024年4月2日,星期二
截止日期:2024年4月19日星期五17:00重量:模块标记的15%如何提交:通过Moodle
4评分方案
正确性:(80%)三项任务的正确答案占总分的80%,如下所示:任务1:40%任务2:20%
任务3:20%
格式:(20%)
1.虽然任务3的语法G3是由JFLAP生成的,但任务1和任务2的语法必须由您编写。对于语法G1和G2,所有具有相同左侧变量的乘积必须一个接一个地出现在一个块中。(15%)2.zip文件和三个JFLAP文件必须根据上面给出的模板命名。5.逾期提交:适用大学对逾期提交的标准处罚,即5%的绝对罚款每天的标准大学量表,直到分数达到零。
其他技术的使用:如果您使用的技术不是课业摘要中指定的技术,例如chatGPT,50%的绝对扣除额。

标签:G3,G2,COMP,浮点数,任务,2049,语法,JFLAP,表达式
From: https://www.cnblogs.com/quanwang/p/18134118

相关文章

  • COMP7250 用神经网络进行简单分类
    COMP7250的编程赋值欢迎参加COMP7250的课业!本课业由两部分组成:第1部分:用神经网络进行简单分类第2部分:神经网络的对抗性例子。通过尝试此任务,您将对以下内容有一个简要的了解:如何处理数据;如何建立一个简单的网络;向前和向后传播的机制;如何使用FGSM和PGD方法生成对抗性示例。注意:尽管......
  • Visual Components对重型机械工业的影响 衡祖仿真
    一、重型机械行业面临的挑战此行业制造商面临着许多挑战,首先是世界各地实施的环境法规不断增多,可持续建筑实践、改善空气质量和减少排放已成为产品设计和开发背后的主要驱动力,健康和安全标准也在不断发展,给已经面临熟练劳动力短缺问题的制造商带来了新的负担。二、为什么使用Vi......
  • Java stream sorted使用 Comparator 进行多字段排序
    摘要:介绍使用JavaStream流排序器Comparator对List集合进行多字段排序的方法,包括复杂实体对象多字段升降序混合排序方法。综述​ Java8的Stream使用了函数式编程模式,人如其名,它可以被用来对集合或数组进行链状流式的排序、过滤和统计等操作,从而让我们更方便的对集合或数组......
  • 为什么要使用工业仿真软件? —— CAE(Computer Aided Engineering)工程设计中的计算机
    CAE技术:引自:https://baike.baidu.com/item/CAE技术/18884456?fr=ge_ala引自:https://www.mscsoftware.com.cn/cases/173.html当前制造业市场的竞争愈演愈烈,消费者在选择产品时不仅限于一个合适的价格,而且更加注重产品的质量和品质。钣金冲压成形工艺在汽车、航空航......
  • IDEA中Live Templates和Postfix Completion的用法
     前言 IDEA中代码生成的方式有两种LiveTemplatesPostfixCompletion这两种方式中,第一种基本每一个IDE都支持,但是支持第二中的很少。LiveTemplates输出模板1、sout,最基本的输出语句,快速生成System.out.println();2、soutp,快速生成参数输出语句。3、soutm,快速生成......
  • Podman Compose 新手指南
    技术人员多数又呆板又花心不长久。我知道你可能已经厌倦了Docker,但是系统还没有复杂到需要高攀K8S的地步。那我建议您,有空的话可以约一下Podman。Podman使用起来是足够简单的,直接把它当做改了名字的Docker就可以了。所以以下只介绍一下它的编排工具,也就是podman-compose......
  • IDEA 中 build和compile的区别
    build:功能类似compile,只是只对整个项目进行编译。相同点:将java文件编译为class文件,并且将src/main/resources下的.xml文件复制到target目录。不同点:compile不会编译test,build会编译test。compile会根据pom.xml里面的命令,build不会。build和compile的区别**Compile:**只编译选定的......
  • 52 Things: Number 3: Computational and storage power of different form factors
    52Things:Number3:Computationalandstoragepowerofdifferentformfactors52件事:数字3:不同外形尺寸的计算和存储能力Thisisthethirdinaseriesofblogpoststoaddressthelistof '52ThingsEveryPhDStudentShouldKnow' todoCryptography.Thes......
  • 52 Things: Number 5: What is meant by the complexity class NP?
    Thisisthelatestinaseriesofblogpoststoaddressthelistof '52ThingsEveryPhDStudentShouldKnow' todoCryptography:asetofquestionscompiledtogivePhDcandidatesasenseofwhattheyshouldknowbytheendoftheirfirstyear.......
  • 52 Things: Number 4: The Complexity Class P
    52Things:Number4:TheComplexityClassP52件事:数字4:复杂度等级PThisisthefourthblogposttalkingabout '52ThingsEveryPhDStudentShouldKnow' todoCryptography,andthefirstonthetopicofTheoreticalComputerScience.Inthispost,......