微软Cω编程语言问世 XML数据处理性能更出色

www.chinacs.net  2004-12-01  中文C#技术站

美国微软研究机构--微软研究院(Microsoft Research)2004年7月公开了名为“Cω”的编程语言。这是一种处于研究阶段的C#扩展语言。

  Cω引入的数据类型

  使用Content保存XML数据的杂志类具有图书数据和内容2大要素。而前者则又具有书名和发行日期,后者则具有报道内容和作者2个要素。只要将属于此数据类型的XML数据代入杂志型变量,就会生成对象,而且XML数据的内容将会作为类的成员变量保存起来

  该语言具有C#所没有的一些特点,比如,非同步执行方法的功能、从数据库获取数据的标记等。其中尤为值得关注的是提供了用于处理XML数据的数据类型。

  Cω最新引入的数据类型有4种(表。点击放大)。其中主要用于处理XML数据的是“Content”。只要根据Content的格式定义类,就能轻松生成处理XML数据的对象。

  我们可以这样认为,Content可通过类和结构对象描述XML数据类型(结构图。点击放大)。相当于使用XML Schema和DTD定义的数据类型。

  还能够描述C#过去不能描述的XML数据特有的数据类型。比如,要任意重复同样的数据要素时,就在结构对象的定义末尾加上“*”。可有可无的数据要素则用“?”来定义。

  可直接将XML数据代入上述定义的类对象中。XML数据所包含的各种要素将自动保存在成员变量(member variable)中。

  可轻松访问XML数据

  通常情况下,处理XML数据时都是根据DOM(Document Object Model)的规则进行操作。绝大多数用于读取及处理XML数据的对象生成工具均基于DOM。DOM不限制所保存的数据类型。正因为如此,即便只是单纯地获取值,也要求进行复杂的描述。

  作为DOM,以每个要素为对象,以基于XML数据类型的工具形式保存这些对象。要想访问某个要素的值,首先要依据工具调出目的对象,然后再取得要素值。另外,所取出的要素值将重新保存在专用类(Private Class)对象中。Content可以消除这种负担。

  Cω好像并没有与C#合并的计划。不过,今后如果C#能够很好地汲取其优点,定将成为功能强大的语言。

英文资料:


Cω is a research programming language. It is pronounced "c" followed by " -mg, -mg".
It can be written (and searched for) as Cw or the "Comega language".

A Cω compiler preview is now available for download. [NOTE: This new release no longer requires Visual Studio .NET 2003 to be installed on the target machine!] You can also browse the documentation online.

Cω is an extension of C# in two areas:

- A control flow extension for asynchronous wide-area concurrency (formerly known as Polyphonic C#):

  • Modern Concurrency Abstractions for C#. Nick Benton, Luca Cardelli, Cedric Fournet.
    • ©2004 ACM [ PDF] (Revised version.) To appear in TOPLAS.
    • ©2002 Springer [ PDF] In: Boris Magnusson, Editor: ECOOP 2002 - Object-Oriented Programming, 16th European Conference, Malaga, Spain, June 10-14 2002, Proceedings. Lecture Notes in Computer Science 2374, Springer, 2002. ISBN 3-540-43759-2. pp. 415-440.

- A data type extension for XML and table manipulation (formerly known as Xen and as X#):

  • The essence of data access in Cω.Gavin Bierman, Erik Meijer, and Wolfram Schulte.
    • (Submitted.)
  • Programming with Rectangles, Triangles, and Circles. Gavin Bierman, Erik Meijer, and Wolfram Schulte.
    • ©2004 XMLconference [ HTML] In Proc. XML 2003.
  • Unifying Tables, Objects and Documents. Erik Meijer, Wolfram Schulte and Gavin Bierman.

Reasons why these kinds of extensions (and possibly more) are related, are described in this talk:

  • Transitions in Programming Models. Luca Cardelli.
    • [ PDF] New University of Lisbon, November 13, 2003.
Project Members

  • Nick Benton
  • Gavin Bierman
  • Luca Cardelli
  • Erik Meijer
  • Claudio Russo
  • Wolfram Schulte

>>原作者:   >>来源: 

→ 相关文章