- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1背景2表述风格
CSE 语言风格
Wayne Chan 20 11 年
1.背景
在介绍CSE 语言风格之前 我们不得不提及这门语言要解决什么问题?有什么样的定位,就
有什么样的方案策略,语言风格便是这种应对策略的外在表现。
上世纪六、七十年代是编程语言的爆发期 目前大家常见的Basic、C、C++、Ada、Pascal、
LISP 等都产生于那个时代 而近十年编程语言又出现另一轮复兴,由于计算机硬件性能的
提升 多核技术普及 以及无处不在的网络化编程需求,都推动了众多新兴语言的产生与发
展 CSE 也产生于这一时期 顺应了新时代编程技术的发展潮流。
更具体来讲 当前流程的C/C++、C#、java、python 等语言并没有很好的满足人们需求 尤
其在快速开发与高效代码运行上得不到较好平衡。编程语言繁杂众多 选择C/C++等编译语
言可保证运行效率 但损失开发效率 选择python、ruby 等脚本语言保证了开发效率但损
失运行效率 开发人员常陷于两难困境。开发CSE 语言的主要目标就是要解决这一困境 把
基于编译的命令式语言与基于解释性的声明式语言揉合一起 让两者各自发挥优势。此外
CSE 还定位于通用领域的编程语言 新兴语言的常见特征 诸如多核、并发、网络化编程支
等 也将体现在这门语言中。
2.表述风格
从揉合命令式与声明式语言的角度出发 CSE 该具有多种面孔 其表达方式应兼容过程语言、
面向对象语言,及脚本语言的主流描述形式。为此 CSE 内核采用纯正的函数式架构 把常
见编程语言的各种语法抽象成4 种操作:
一元操作(unary operator)
二元操作(binary operator)
标记操作(notation operator)
变元操作(variety operator)
组合使用这4 种操作 即支撑起形形色色的语言表述要求。
举例来说 CSE 支 的一元操作如:“++”、“!”、“const”、“virtual”等,一元
操作的操作符既可以写在操作数之前也可写在操作数之后 如下写法都是正确的:
++iValue;
iValue++;
i as const TInt;
i as TInt const;
二元操作如:“as”、“=”、“at”、“+”、“-”等,大部分数学运算符是二元操作符
二元操作固定用 “data1 op data2”形式表达 比如 “3 + 4”。
标记操作分左标记(LNotator)与右标记(RNotator)左右标记总是成对使用的 如:“(”
与 “)”、“@(”与 “)”、“[”与 “]”、“{”与 “}”、“if”与 “end”、“while”与
“end”、“func”与 “end”等。标记操作描述一种可带若干个参数的操作 参数个数不确
定 可以是0 个 也可以成百上千 甚至数万个。比如用 “(”与 “)”括起来表达函数调用
用 “[”与 “]”表达取数组下标成员 用 “if”与 “end”表达if 语句块。
变元操作可跟据前后表达式的性质自动转化成一元操作、二元操作 或者标记操作 变元操
作有:“module”、“dummy”、 “else”、 “throw”、 “try”、 “lambda”等。变元用
作一元操作如:“throw meet error;” 变元用作二元操作 如:
if pMsg == NULL:
print(OK);
end else print(failed);
else 表示二选一执行 它连接if语句块与其后的print语句 这时它是按二元操作符使
用的。变元也可用作标记操作 如:
if pMsg == NULL:
print(OK);
end else:
pMsg = NULL;
print(failed);
end;
这里else 既用作二元操作(连接if语句块及else语句块) 也用作标记操作,由左标
记“else”与右标记“end”组成一个语句块。
变元操作在模拟常规编程语言的书写习惯时发挥重要作用 比如throw 操作可写成函数调用
形式(转成标记操作):“throw(ESystemError,meet error);”,又如#module
可写成函数调用方式 “#module()”,表示 取当前自然模块 与 “.”取成员操作连用可
写成“#modu
您可能关注的文档
最近下载
- 第二单元 项目1 《 获取长城研学路线-互联网信息有哪些信誉好的足球投注网站》教学设计 2024—2025学年安徽版(2024)初中信息技术七年级上册.docx VIP
- 江苏省2024普通高中学业水平合格性考试英语真题卷 .pdf
- 第二单元+项目1+《+获取长城研学路线-互联网信息有哪些信誉好的足球投注网站》课件+2024—2025学年安徽版(2024)初中信息技术七年级上册+.pptx VIP
- 浙江交投高速公路建设管理有限公司部分中层管理岗位公开竞聘【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 天然气对井内压力的影响(五)课件.pptx VIP
- 妇产科医疗质控总结.pptx VIP
- 企业内部控制指引.doc
- 山东大学齐鲁医院诊断证明.docx VIP
- 心胸外科出科.pptx VIP
- 2024贵州遵义市面向优秀村(社区)干部专项招聘乡镇(街道)事业单位工作人员61人笔试备考题库及答案解析.docx VIP
文档评论(0)