slice语言

来源:互联网 发布:梵高知乎 编辑:程序博客网 时间:2024/05/20 16:43

接口、操作、异常,以及继承等核心的 Slice概念。这些概念对分布式系统的行为有着深远的影响,你应该详细阅读。

Slice 的读音和a slice of bread 中的slice的读音是一样的。(Specification Language for Ice)是一种用于使对象接口与其实现相分离的基础性抽象机制。 Slice在客户与服务器之间建立合约,描述应用所使用的各种类型及对象接口。这种描述与实现语言无关,所以编写客户所用的语言是否与编写服务器所用的语言相同,这没有什么关系。

Slice定义由编译器编译到特定的实现语言 。编译器把与语言无关的定义翻译成针对特定语言的类型定义和 API。开发者使用这些类型和API 来提供应用功能,并与 Ice 交互。用于各种实现语言的翻译算法称为语言映射(language mappings)。 Ice 目前定义了C++ 和 Java 的语言映射。

因为 Slice描述的是接口和类型(不是实现),它是一种纯粹的描述性语言;你无法用 Slice编写可执行语句。
Slice定义关注的焦点是对象接口、这些接口所支持的操作,以及操作可能引发的异常。此外, Slice还提供了一些用于对象持久的特性(参见第21 章)。这需要相当多的支持机制;特别地, Slice的相当一部分关注的是数据类型的定义。这是因为,只有在其类型用 Slice进行了定义之后,数据才能在客户与服务器之间交换。你不能在客户与服务器之间交换任意的C++ 数据,因为 这可能会摧毁 Ice 的语言无关性。但是,你总能创建一种Slice类型定义,与你想要发送的 C++ 数据相对应,然后你就可以传送这种Slice类型了。
在此我们将介绍 Slice的完整语法和语义。因为Slice 的许多语法和语义都是以 C++ 和 Java为基础的,我们将特别关注 Slice与 C++ 或 Java不同的部分,或是 Slice以某种方式限制了等价的 C++ 或 Java特性的部分。与C++ 和 Java 特性相同的 Slice特性通常会用例子来说明。

编译

Slice编译器生成的源文件必须与应用代码相结合,才能产生客户和服务器的可执行程序。



含有 Slice定义的文件必须以 .ice扩展名结尾

于大小写不敏感的文件系统(比如 DOS),文件扩展名可以写成大写,也可以写成小写,所以 Clock.ICE 是合法的。对于大小写敏感的文件系统(比如 UNIX),Clock.ICE 是非法的(扩展名必须小写)。

这里我们的建议是利率采用小写。


Slice是一种形式自由的语言,所以你可以使用空格、横向和纵向制表符、换页,以及换行字符,按照你希望的任何方式安排代码的布局(空白字符是 token 分隔符) 。Slice不会把语义与定义的布局关联起来。  你可以遵循我们在本书中的 Slice例子中使用的风格。


这部分我们很快速的浏览,这也是学习所要必备的技能。


0 0
原创粉丝点击