1背景2表述风格.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档