一、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语言中,不论是数学运算,还是逻辑运算,单目运算具有最高优先级,除此以外,与其他语言类似。