Fuxi

程序設計語言

Fuxi是一種多范型(multiparadigm)程序設計語言,外文名為Fuxi Programming Language。

設計語言


Fuxi程序設計語言(Fuxi Programming Language)是一種多范型(multiparadigm)程序設計語言,它採用類-JAVA的類型框架和模式匹配的方法定義將面向對象、函數型及邏輯型語言有機地結合到一起。它兼備JAVA的簡潔性和說明型語言的高表達力,具有平台無關性,是繼JAVA、C#之後推出的又一面向網際網路的程序設計語言。和JAVA等面向對象的語言不同,Fuxi將方法區分為函數(Function)、子句(Clause)和觸發器(Trigger)三種類型。

示例


以下是一個Fuxi語言的計算Fibonacci數的例子:
import fuxi.*
public acitve class FibonacciApp: Applet {
Fib(0) = 1
Fib(1) = 1
Fib( int n ) = Fib(n - 1) + Fib(n - 2)
public Activate() =
let
{
int n = System.Console.Readln().ToInteger()
}
in
{
System.Console.Println( "請輸入一個正整數:" )
System.Console.Println( "Fib(" + n + ")=" + Fib(n) )
}
}
一個Fuxi程序通常包括三個部分: 1)導入部分:導入Fuxi的基本類庫或其它的裝配件,如本例中的fuxi; 2)類定義部分:類是Fuxi的編程單位,是程序的構成要素。一個Fuxi程序至少需要定義一個類,本例就是只包含一個類的簡單Fuxi程序; 3)輸出部分:至少包含一個公開的類定義,如本例中的FibonacciApp。
一個值得注意的地方是Fuxi程序沒有象JAVA、C#等那樣定義一個執行入口函數main(),列印出現在函數Activate()中;其次,在類FibonacciApp定義的前面使用了active關鍵字。
Fuxi語言區分主動式對象和被動式對象,只有主動式對象才具有獨立的執行線程,而被動式對象必須包含在某個主動式對象中。類定義前的active關鍵字可使類帶有主動式風格,帶主動式風格的類的所有實例都是主動式對象。Fuxi抽象機在創建一個主動式對象后,將為其分配一個線程,並且該線程第一個執行的函數就是Activate(),然後等待其它對象發送來的消息。