English  
     
 

 

主页   新闻   白皮书   文档   出版物   下载   源码   方案   资质
 
 
  主页 | 培训    
 

Fuxi语言的“Hello, World!”

     从编写“Hello, World”程序开始,已经成为介绍一种程序设计语言的传统。以下便是Fuxi语言的“Hello, World!”:

import fuxi.*
public active class HelloApp: Applet
  {
       public Activate() = System.Console.Println( "Hello, World!" )
  }

Fuxi语言的源程序文件通常带有 .fux 扩展名。假设这个程序就存储在hello.fux文件中,该程序可以通过以下命令行将对其进行编译:

            fuxic hello.fux

    上述命令将“Hello, World”程序编译成一种平台无关的Fuxi模块文件hello.fxm。使用以下命令来启动Fuxi抽象机(FAM)执行hello.fxm模块:

            fuxi hello


程序执行的结果将在控制台上显示:


            Hello, World!

 

§1.Fuxi程序的基本结构


    Fuxi程序结构的关键性概念包括:程序(Programs)、模块(Modules)、类型(Types)、成员(Members)及装配件(Assemblies)等。Fuxi程序由一个或多个源程序文件组成。程序定义类型,而类型又包含其成员。这些类型通常又可以组织在一个模块中。类和接口是类型的例子,成员包括字段(Field)和方法(Method)。在Fuxi中,方法又可以分为函数(Function)、谓词(Predicate)和触发器(Trigger)等。每个方法都是一个由具有相同模式签名的规则(Rule)组成的结构,该签名也就是方法的签名。

    装配件是一个抽象概念,其构成取决于Fuxi实现技术。在基于Fuxi抽象机的实现中,装配件便是FOG模块文件。Fuxi程序经过编译,生成称为Fuxi对象图(FOG)的计算图,并且同其它信息一起被包装成FOG模块文件。

  Fuxi装配件可以是可独立执行的模块(在抽象机上或者在某种特定的计算机上执行),也可以用于同其它装配件一道,共同装配成一个可执行的模块。这取决于Fuxi源程序所定义类型成份。

一般而言,Fuxi程序应该包括以下部分:

  1. 导入部分:导入Fuxi的基本类库或其它的装配件,如本例中的fuxi;

  2. 类定义部分:类是Fuxi的编程单位,是程序的构成要素。一个Fuxi程序至少需要定义一个类,“Hello, World!”程序就是只包含一个类的简单Fuxi程序;

  3. 输出部分:至少包含一个公开的类定义,如本例中的HelloApp。

§2.Fuxi程序的执行过程

    首先,一个值得注意的地方是“Hello, World!”程序没有象JAVA、C#等那样定义一个执行入口函数main,“Hello, World!”的打印出现在函数Activate()中;其次,在类HelloApp定义的前面使用了active关键字。

    Fuxi语言区分主动式对象和被动式对象,只有主动式对象才具有独立的执行线程,而被动式对象必须包含在某个主动式对象中。类定义前的active关键字可使类带有主动式风格,带主动式风格的类的所有实例都是主动式对象。Fuxi抽象机在创建一个主动式对象后,将为其分配一个线程,并且该线程第一个执行的函数就是Activate(),然后等待其它对象发送来的消息。

  Fuxi抽象机在装载一个Fuxi模块后,将首先查找公开的带active风格的顶层类(Top-Level Class),并用该类创建一个主动式对象。如果程序中包含多个这样的类,可在抽象机的调用参数中指定某个类来创建主活动对象;如果没有指定,则缺省选择第一个顶层主动类。

  在“Hello, World”程序中,抽象机将使用HelloApp类来创建一个主动式对象,该对象的执行线程调用Activate()函数,显示“Hello, World!”。由于没有其它对象发送消息来,因此该对象将处于等待状态,直到用户关闭Console窗口为止。

§3.Fuxi平台

    Fuxi语言是相对高级的程序设计语言,具有更强的抽象性。例如,主动式对象、永久性对象、可移动对象等,在程序中只要用一两个关键字就可以替代很多行的C/C++代码。但所有这些抽象性的实现,都是建立在一个良好的底层基础(Infrastructure)之上的。这里所谓的“底层基础”就是Fuxi平台。Fuxi平台包括Fuxi抽象机、Fuxi的通信基础、数据库引擎,以及Fuxi的基础类库等。例如,“Hello, World!”例子,短短的几行代码,却涉及到主动式对象、控制台的激动与管理、字符串等,所有这些都需要有Fuxi平台的支持。


 

 
   
   
 

友情链接:深圳市触品科技有限公司 www.touchbuy.cn

友情链接:深圳市趋高智能系统有限公司 www.hitrend.com

友情链接:深圳市触品便利店有限公司 www.touchstore.cn

关于我们  联系我们  加入我们

©2006-2019 fuxi.org, 版权所有. 粤ICP备11003046号