Nuva 语言的渊源(1)


Nuva 语言的渊源

    本文简要介绍了 Nuva 语言的渊源,主要包括 Nuva 语言的一些特色功能及其设计决策,说明 Nuva 语言缘何成为现在的样子,以及这些设计的考虑因素(其中也包括参考的其他编程语言,适合广大的编程语言爱好者阅读)。

    Nuva 语言的介绍请参考 Nuva 语言官方主页

    作为一门简单的编程语言,Nuva 语言很自然的采用了某种类似伪码的语法风格,所有的结构都以一种简单的关键字开头,并且以 “end <关键字>” 结束,如下:

     <.
      if (a = b)
        //...
      end if

      for (i = 1, 9)
        //...
      end for
    .>

   

    从上面的示例可以看出,Nuva 语言的语法规则比较简单(与 Basic 语言不同,Nuva 语言完全遵从这种简单的规则,没有任何例外)。

    在 Nuva 语言中,各种结构可以任意嵌套,没有任何约束,如下:

     <.
      if (a == b)
        //...
        function foo()
          //...
          class coo()
            //...
          end class
        end function
      end if
    .>

    这样方便了私有函数或者私有类等的编写(Python 语言也是可以任意嵌套的。古老的语言如 Basic、C 以及 C++ 语言中的函数/类不可嵌套,Pascal 语言的函数可以嵌套,但是 Object Pascal 语言的类不可嵌套,Java 和 C# 语言的类可以嵌套,但是函数不可嵌套)。

    Nuva 语言是一门新生的编程语言,其语言元素大部分都源自现有的编程语言,其中也包括 Nuva 语言的关键字的选取。

    Nuva 关键字(32个):
     if case for foreach loop function class file assign try
     else elseif elsecase except finally
     end exit skip var ref call using
     div mod in not and or
     true false null nil
    Nuva 保留关键字(32个):
     property get set event operator interface
     return goto throw raise
     is as int string bool float const new
     then to downto step do while until with of on
     private public protected namespace

    Nuva 语言的关键字只有小写形式,并且不能用作用户标识符,但是这些关键字的非小写形式则可以用作用户标识符(类似于 C 语言以及 C 风格的语言)。

    除了关键字外,Nuva 语言的用户标识符不区分大小写(类似于 Basic/Pascal 等语言)。

    为了程序员能够习惯 Nuva 语言的语法,Nuva 语言兼容了多种现有编程语言的语法风格,包括关键字和运算符的兼容,如下:

    <.
      var a = 1
      var a := 1
                      // := 兼容了类似 Pascal 的赋值风格
                      // Nuva 语言支持类似 C 语言的运算赋值
                      // a += ... ,a ^= ... 等

      if (a == b)
                      // Nuva 语言兼容了大部分运算符
                      // == 和 = ,!= 和 <>
                      // and 和 && 或 & ,or 和 || 或 |,not 和 !
                      // ^ 和 ** ,mod 和 %
                      // 也支持 ++ ,-- 等
        //...
      end if;
                      // Nuva 语言的语句结尾可以加分号(;),也可以不加
    .>

    Nuva 语言采用的模板标记也有独特的设计。因为 Nuva 语言首先是一种模板语言,设计的目的是为了基于模板的代码生成,因此 Nuva 语言必须能够生成所有文本形式的源代码,其中也包括其他类似模板语言(如 ASP 和 ASP.NET)的源代码,采用 <. .> [. .] 等标记,可以避开诸如 ASP 等的脚本标记,从而方便了模板的编写。

    <.. Nuva 模板注释 ..>
    [.. Nuva 模板注释 ..]

    <. ='Hello, Nuva!' .>
    [. ='Hello, Nuva!' .]
    <. ='Hello, Nuva!' .]
    [. ='Hello, Nuva!' .>

    上面的例子显示了 Nuva 语言的模板标记的使用方式,采用 <>(尖括号) 和 [](方括号)混合的方式是为了方便输出的格式化,凡方括号([])的前导和结尾,均不改变输出的格式,而尖括号(<>)则能够删除行前空格和行尾空格以及行尾换行符。

    Nuva 语言的渊源(2)

    Nuva 语言的渊源(3)之 惰性计算

 

posted on 2006-08-20 20:24  Wisdom-zh  阅读(636)  评论(0编辑  收藏  举报

导航