Fuxi语言的多范型程序设计

Fuxi语言的多范型程序设计
1978年著名的计算机科学家、图灵奖得主R. W. Floyd教授在其图灵奖演讲中提出了程序设计范型 (Programming Paradigms) 的概念。程序设计范型指设计和实现程序的模型。不同的范型导致不同的程序设计技术和方法学。我们把体现某种范型的程序设计语言称为该范型的语言。

至今已经出现过几百种语言,但这些语言大体上可以归纳为以下几种范型:

过程性语言:代表语言有ADA、BASIC、C、FORTRAN、PASCAL等;
说明性语言:说明性语言可分为两类,一类是基于λ演算的函数型语言(如LISP、SCHEME、ML、HASKELL等);另一类是基于谓词逻辑的逻辑型语言,其代表语言是PROLOG;
面向对象语言:如SMALLTALK、C++、JAVA、C#等。
虽然不同的范型的侧重点不同,但同一范型中的语言具有许多共同之处。过去,语言通常是单一范型的,即一种语言只体现一种范型。经过激烈的竞争,同一范型的语言仅能生存下来为数不多的几种。

从上世纪80年代开始,人们便开始探索不同范型之间的融合,从而形成了多范型(Multi-paradigm)。研究比较多的是将面向对象的语言成分注入传统的过程性和函数型语言(如C++、Objective-C、CLOS等);将函数型、逻辑型语言进行结合形成函数逻辑型语言(如BABEL、CURRY等);过程型和说明型结合的语言(如LEDA等);将面向对象、函数型、逻辑型等范型融为一体语言,如AKL、Fuxi语言等。

在这些多范型语言中,新近出现的Fuxi语言是一种比较有特点一种。Fuxi强调简洁性(Simplicity)、表达力(Expressiveness)和效率(Efficiency)的平衡。语法结构采用类-JAVA的类型框架和模式匹配的方法定义。以下是Fuxi语言的一个简单例子:

import fuxi.*
public active 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) )
  }

}

这是一个计算Fibonacci数的Fuxi程序,程序中的Fib(n)函数就采用了模式匹配的定义形式。模式匹配可以最大限度地减少条件语句的使用,使得程序结构简洁明了,符合人们的书写习惯。
fuxi程序设计语言

猜你喜欢

转载自blog.csdn.net/fuxi_hitrend/article/details/82252144