1背景2表述风格

1背景2表述风格

ID:34651129

大小:156.19 KB

页数:9页

时间:2019-03-08

1背景2表述风格_第1页
1背景2表述风格_第2页
1背景2表述风格_第3页
1背景2表述风格_第4页
1背景2表述风格_第5页
资源描述:

《1背景2表述风格》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CSE语言风格WayneChan,2011年1.背景在介绍CSE语言风格之前,我们不得不提及这门语言要解决什么问题?有什么样的定位,就有什么样的方案策略,语言风格便是这种应对策略的外在表现。上世纪六、七十年代是编程语言的爆发期,目前大家常见的Basic、C、C++、Ada、Pascal、LISP等都产生于那个时代,而近十年编程语言又出现另一轮复兴,由于计算机硬件性能的提升,多核技术普及,以及无处不在的网络化编程需求,都推动了众多新兴语言的产生与发展,CSE也产生于这一时期,顺应了新时代编程技术的发展潮流。更具体来讲,当前流程的C/C++、C#、java

2、、python等语言并没有很好的满足人们需求,尤其在快速开发与高效代码运行上得不到较好平衡。编程语言繁杂众多,选择C/C++等编译语言可保证运行效率,但损失开发效率,选择python、ruby等脚本语言保证了开发效率但损失运行效率,开发人员常陷于两难困境。开发CSE语言的主要目标就是要解决这一困境,把基于编译的命令式语言与基于解释性的声明式语言揉合一起,让两者各自发挥优势。此外,CSE还定位于通用领域的编程语言,新兴语言的常见特征,诸如多核、并发、网络化编程支持等,也将体现在这门语言中。2.表述风格从揉合命令式与声明式语言的角度出发,CSE该具有多种面

3、孔,其表达方式应兼容过程语言、面向对象语言,及脚本语言的主流描述形式。为此,CSE内核采用纯正的函数式架构,把常见编程语言的各种语法抽象成4种操作:·一元操作(unaryoperator)·二元操作(binaryoperator)·标记操作(notationoperator)·变元操作(varietyoperator)组合使用这4种操作,即支撑起形形色色的语言表述要求。举例来说,CSE支持的一元操作如:“++”、“!”、“const”、“virtual”等,一元操作的操作符既可以写在操作数之前也可写在操作数之后,如下写法都是正确的:++iValue;i

4、Value++;iasconstTInt;iasTIntconst;二元操作如:“as”、“=”、“at”、“+”、“-”等,大部分数学运算符是二元操作符,二元操作固定用“data1opdata2”形式表达,比如“3+4”。标记操作分左标记(LNotator)与右标记(RNotator),左右标记总是成对使用的,如:“(”与“)”、“@(”与“)”、“[”与“]”、“{”与“}”、“if”与“end”、“while”与“end”、“func”与“end”等。标记操作描述一种可带若干个参数的操作,参数个数不确定,可以是0个,也可以成百上千,甚至数万个。比

5、如用“(”与“)”括起来表达函数调用,用“[”与“]”表达取数组下标成员,用“if”与“end”表达if语句块。变元操作可跟据前后表达式的性质自动转化成一元操作、二元操作,或者标记操作,变元操作有:“module”、“dummy”、“else”、“throw”、“try”、“lambda”等。变元用作一元操作如:“throw"meeterror";”,变元用作二元操作,如:ifpMsg==NULL:print("OK");endelseprint("failed");else表示二选一执行,它连接if语句块与其后的print语句,这时它是按二元操作符使

6、用的。变元也可用作标记操作,如:ifpMsg==NULL:print("OK");endelse:pMsg=NULL;print("failed");end;这里else既用作二元操作(连接if语句块及else语句块),也用作标记操作,由左标记“else”与右标记“end”组成一个语句块。变元操作在模拟常规编程语言的书写习惯时发挥重要作用,比如throw操作可写成函数调用形式(转成标记操作):“throw("ESystemError","meeterror");”,又如#module可写成函数调用方式“#module()”,表示获取当前自然模块,与“.

7、”取成员操作连用可写成“#module.iValue”,CSE内核自动按“#module().iValue”解析,显然用“#module.iValue”描述更自然,也更简洁。有时将一元操作或函数调用方式改写成语句块方式会更自然,大家不妨对比下面书写形式:vaslambda(i,j,@(print(i,j),i+j));vaslambda:i,j,print(i,j);returni+j;end;#include"file1.h";#include"file2.h";#include:"file1.h";"file2.h";end;变元操作既可用作一个变

8、量(如刚才举例的#moudle),也可用作一元操作、也可用于函数调用与标记操作,所以,变元多于

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。