Fine语言及其语法介绍

一、Fine语言包含三个部分:编译器 finecomp.exe、虚拟机 finevirt.xe、以及Fine开发工具,Fine语言的所有功能,均免费提供,下载地址:http://www.finelanguage.com.cn

      Fine语言的编译器和虚拟机均为杭州发源软件有限公司开发的产品,具有完全自主知识产权,供大家免费使用。


二、语法介绍

1、行注释符: #

     在注释符 # 之后,直至换行符之间的所有数据,均不参与程序编译。


2、段落注释符: /*……*/, 在其间的所有内容,均不参与编译。


3、print语句,例如:

     print("%\n","显示内容")

     # print()是Fine语言的内置函数,在屏幕上打印显示内容,上例中第一个参数是打印控制字符串,第二个参数是被打印内容。

     # 需要说明的是在第一个参数中 % 是占位符,显示内容将显示在该位置,\n是换行符,表明打印完内容后换行,我们注意到在占位符和换行符之间没有其他字符(区别于C语言和Python语言等),这里并没有错误,因为Fine虚拟机知道每一个变量(常量)的数据类型,虚拟机会根据被打印对象的类型自动执行,无需程序干预。

     # print()语句不需要结束符,Fine语言的所有语句都不需要结束符。


4、if-elif-else条件判断语句,并依据判断结果转移程序。例如:

     if  5 > 3

     {

           print("%\n","if语句的条件为真")      

     }

       #  在这段程序中 if 是关键字,其后 5 > 3 是判断条件代数式,判断条件无需括号包裹,也无需行结束符(不同于Python语言),但是,符合体检的执行内容必须使用一对大括号包裹起来,在大括号内部无需行缩进(只是为了阅 读方便)。


     再例如:

    if  a > b                            

     {

          print("%\n"," a > b")

     }

     elif  a == b                               

     {

           print("%\n"," a = b")

     }

     else  

     {

           print("%\n"," a = b")

     }


5、while循环语句,例如:

     while  a > b

     {

         #  …… 循环体

         # break

         # continue

     }

     #  while是关键字,其后是条件表达式,条件表达式无需括号包裹,也无需行结束符(不同于Python语言)。

     #  满足条件会执行循环体内容,循环体必须使用大括号包裹,循环体无需行缩进(只是方便阅读)。

     #  在循环体内可以使用 break、continue 控制循环退出、或转向


6、for循环,例如:

     for  i  in  range(0,10,1)

     {

           print("%\n",i)

     }

     #  range(0,10,1)将生成一个列表 [0,1,2,3,4,5,6,7,8,9],for循环的 i 将遍历列表内容,然后退出for循环。同样,for语句不需要结束符(不同于Python语言),for循环体需要一对大括号包裹。


7、def自定义函数的关键字,例如:

     def  add(x,y)

     {

          return  x+y

     }

     a = add(1,2)

     print("%\n",a)       #  执行结果是打印出 3

     #  def是关键字,表明其后的add是一个自定义函数,有两个参数x,y,同样def语句无需结束符,该例的函数体只有一句,即,返回两者的和。所有的语句均无需结束符。


8、class自定义类的关键字,例如:

     class  Student(object)             # object 表明是基类

     {

           name = ""                         #  类属性,赋值空

           sex     = ""                         #  类属性,赋值空

           age     =""                         #  类属性,赋值空(不论它是什么数据类型,都可以赋值空)

          def  printname(self)          # 定义类方法,参数是类对象本身

          {

                print("%\n",self.name)

          }

         def  printage(self,x)               # 定义类方法,参数是类对象本身

          {

                 y = self.age +x

                print("%\n",y)

          }

     }

     a = Student("张三","男",25)      # 定义类对象 a,并对其初始化。

     # 注意:在类定义中给属性age曾经赋值"",并不影响这里的初始化结果。

     a. printname()                          # 打印对象 a 的姓名

     a.printage(10)                          # 打印对象 a 的(年龄+10)

     # 在类方法printname(self) 定义时,self是必须的,但是在调用方法a. printname()时,self参数无需显现。又如调用 a.printage(10)仅输入参数 x,对象 a 本身无需显式输入。


9、运算优先级


操作符


描述

优先级

~+-


单目运算符

最高优先级0

**


指数

1

&|^<< >>


按位运算符

2

*/%


乘法

3

+-


加法

4

< <= == != >= >


比较运算符

5

in notin


包含于、不包含

6

=


赋值运算符

7

not


逻辑取反(单目运算符)

8

and  or


逻辑与、逻辑或

最低优先级9

    

     数学运算举例:

     a = -10**2     # 运行结果为100,而非-100

     # 等价于(-10)^2,即,~+-具有最高优先级(这里的正负号是取一个数的整数或负数,非加减法运算),然后才是乘方运算、位运算、乘除取模、加减法。这一点区别于其他语言,需要特别注意。


     逻辑运算举例:

     a = True

     b = not a  and   5 > 3      # 运行结果 b = False

     # 等价于(not a) and (5 > 3),not 比 and 或 or 具有更高优先级。这一点也区别于其他语言,需要特别注意。

     # 需要特别注意的是:在fine语言中,不论是数学运算,还是逻辑运算,单目运算具有最高优先级,除此以外,与其他语言类似。



0