- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计语言原理
语言设计规格说明书
院(系)名称
计算机学院
学生姓名
学号
任务分工与安排
工作量:我负责语言设计中大概全部(90%)语法的设计,主要是参考网络上的python的语法文档和C语言的语法文档,包括书上IMP语言和书本附录语言。
主要设计内容有:
1.设计的语言在命令中包含完整的变量声明、参数传递、兼容原Pascal的begin-end与Let-in设计结构、同时我们考虑设计了IF-Then-Else和While-Do当下流行的C语言结构(同时包含了递归机制),并且考虑异常的错误捕捉设计了Try-Catch的语法结构。
2. 在名称方面,设计兼容了数组形式表达。
3. 在声明方面,我们的设计包含了常量和变量参数的机制(const\var),proc过程抽象机制、func过程抽象机制(包含了函数调用函数的迭代机制)。
4. 在类型指示符方面,语法设计包含编程语言常用的类型声明(包含指针设计)。
5. 在表达式方面我们的设计包含了完备的函数抽象机制、过程抽象机制(参考MATLAB的过程语言设计)、参数抽象机制,并且完备的兼容了数组机制与指针机制。
6. 在参数方面的设计,我们包含了复数参数机制、多参数机制,并且兼容了过程抽象和函数抽象,总体上形成了一个完备的编程语言。
其次:本语言的语法指称语义全部都是我设计的,主要是参考书本和附录。
最后:PPT语法部分和前面的总结和设计原则都是我写的。其次我还负责组织同学开会讨论,敲定设计目标,并且安排任务分工等等。
1.语言设计的背景及范型
Python 是解释执行的动态语言,具有丰富的语法糖和类库。缺点是执行效率低;并且动态语言由于没有构建的过程,因此很多错误只有等到运行时才会发现,代码检查工具的效率不高。
因此,我们想设计一种类Pascal的静态类型的编译型语言,既拥有高效的执行效率,又具有丰富的语言特性。
它的优点有:
1、严格的结构化形式,简明灵活的控制结构。
2、丰富完备的数据类型
3、运行效率高
4、查错能力强, 语言简单易学
5、无副作用的简单命令式语言,语义指称和实现上都不设计存储改变的副作用。
语言设计思路与原理
设计目标:从底层到上层完整实现一门语言。
设计原则:严格的结构化形式,完备的数据类型,高效率的编写运行,完美的纠错机制。
设计思路:早期过程式语言调研,词法语法设计,指称语义设计与说明,词法分析,语法分析,纠错设计。
设计特色:
(1)精简性:
此语言作为一个轻量级静态编译语言,舍弃了不常用的词法和语法形式,使得用户在学习,编写,编译,查错过程中都能体会到“简单”。
(2)完备性:
虽然此语言较为精简,但是就词法来说,我们几乎囊括了所有常用关键字,运算符和数据类型,就语法来说,我们实现了从命令到程序的所有常见功能,完全满足轻量编程实践的需要。
(3)完整性:
我们完整实现了从语言设计到语法分析器的步骤,并且考虑到了用户体验,用户可直接从我们的产品中获知编写的语言在编译层面的错误。
(4)词法,语法错误反馈机制:
借鉴了市场上绝大部分编译器的特点,我们通过语法树可以给出用户在哪一行,哪一部分代码可能发生了哪一类型错误。
语言的语法、语义规格说明
2.1 词法EBNF
2.1.1 词法定义:
本语言的词法包括以下几大部分的类型定义:
2.1.2 关键字:
本语言有20个关键字,在此将其定义为keyWord类型,EBNF表达如下:
keyWord ::= begin | proc | while | var | func | is | do | array | in | record | if | let | then | of | type | end | else | const | try | catch
2.1.3 运算符:
本语言有36种运算符,同样地,将其定义为Calculation类型,EBNF表达如下:
Calculation ::= + | - | * | / | , | ; | | = | | = | = | == | != | ( | ) | { | } | [ | ] | ^ | | || | ! | /* | */ | : | % | // | ++ | -- | | | += | -= | *= | /+
2.1.4 数值类型:
本语言有7种数值类型,在此将其定义为Value类,EBNF表达如下:
valueType ::= Integer | Char | Real | Boolean
另外
digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Integer ::= digit,{digit}
Real? ::= i
您可能关注的文档
最近下载
- 钢结构吊装专项施工方案(技术方案).doc
- 中国成人念珠菌病诊断与治疗专家共识解读PPT课件.pptx VIP
- 05S804:矩形钢筋混凝土蓄水池.pdf VIP
- 01-泌尿系统疾病总论.ppt VIP
- 物理治疗学神经生理疗法Bobath技术.docx VIP
- Unit 3 My favourite food Lesson 2 Happy birthday, Amber! 单元教学设计 粤教沪外教版英语三年级下册.docx
- Andrews分析法诊断正畸.pptx
- (新课程中小学科学教学设计与案例分析提纲及答案2.doc VIP
- 2025年湖北省遴选面试真题及答案大全解析.docx VIP
- DB11T 1832.15-2022 建筑工程施工工艺规程 第15部分:通风与空调安装工程 conv.docx VIP
网络工程师持证人
本人已从事浙江省工程咨询5年,对浙江省内工程信息非常熟悉,可获取新建工程相关联系人、设计院、业主等关键信息。另外从事楼宇自控专业已10年,考取了一建二建等资格证书,有关考试方面的问题(考试心得、方法、学习资料等)都欢饮来咨询交流。
原创力文档


文档评论(0)