全新的动态语言- GS

来源:互联网 发布:java高德web 地址编码 编辑:程序博客网 时间:2024/04/30 09:18

一、什么是GS?

GS 是C、C++、javascript三者的结合体,它具有C/C++的强大的表达能力,同时具有JS的动态运行能力.GS是一门全新的脚本语言,其设计目的与Lua相同:为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

GS本身除了计算无任何额外功能,所以功能由宿主程序提供,从而使其体积小、启动速度更快。

二、代码示例

int s=0;for(int i=0;i<100;i++)       s+=iprint(s);
 

三、语言特性

1、支持C、C++所有关键字,并增加了switchto goout foreach 三个关键字

2、内建数组、字符串支持

3、弱类型

4、支持匿名函数

5、支持动态类

6、自动垃圾回收机制

7、与由宿主程序无缝结合

 

四、与lua相比优势

1、 类似C、C++的语法

2、 支持动态类型,面向对象化编程(class)

3、 内建数组支持

4、 支持更多基本数据类型:int、string、real、array、object

5、 未来版本中提供语言层的多线程支持

五、Demo程序

 

//打印一个菱形int i=20;int j=1;int k;int offset=0;void outputsp(int i){for(int j=0;j<i;j++)print(' ');}void outputchar(int i){for(int j=0;j<i;j++)print('*');}i=getinput("Enter number of size(eg. 20):");offset=getinput("Enter number of offset(eg. 10):");k=(i-j)/2;int t=time();while(j<k){outputsp(k-j+offset);outputchar(j*2-1);print('\n');j++;}while(j>0){outputsp(k-j+offset);outputchar(j*2-1);print('\n');j--;}print("time:");print(time()-t);getinput("Enter any number to exit :");

输出结果截图:



宿主程序及源码下载地址:

 

附A关键字列表(所能关键字不区分大小写)

关键字

说明

示例

Var/ void

变量定义,定义一个空类型变量

Var a=0;

var b;

Int

变量定义,定义一个整数变量

Int a;

int b=1;

Real

变量定义,定义一个实数变量

Real a=0.0

string

变量定义,定义一个字符串变量

String b;

Array

变量定义,定义一个数组变量

Array b;

array c={1,2,3,’sdf’};

class

定义一个类

Class myclass

{

myclass()

{

}

Public int add()

{

This.m_data++;

}

Readonly int m_data=0;

}

public

类成员限定符, 指示成员在对像外部与内部均可访问

Public int add()

{

}

Protected / private

类成员限定符, 指示成员只有对像内部可访问

Protected int b;

readonly

类成员限定符,只对成员变量有效, 否则与public等效,指示成员变量为外部只读

Readonly int a;

parent

在对象内部访问父级对象

parent.m_data;

parent ->m_data;

parent ->add(1);

 

this

在对象内部访问对象本身

This.m_data;

This->m_data;

This->add(1);

 

If-else

流程控制语句

If(…)

{

}

Else

{

}

Switch-case- default

开关语句

Switch(a)

{

Case 1:

….

break;

Case 2:

….

break;

default:

}

Switchto-case- default

扩展开关语句, break关键字对其无效

Switchto(a)

{

Case 1:

….

Case 2:

….

Default:

}

while

循环语句,

While(t)

{

}

Do-while

循环语句

Do

{

}while(t);

For

循环语句

For(int a=0;a<b;a++)

{

}

Foreach

数组遍历循环语句

Foreach(ar;index,val)

{

}

continue

循环控制语句

Continue;

break

跳出正在执行的语句块

Break;

goout

跳出所有语句块之外

Goout;

Return

返回控制语句

Return;

Return 1;

Return a;

function

申明函数(命名函数可不使用该关键字)

Int function add(int x,int y)

{

}

 

Int b= function (int x,int y)

{

}

Taskproc

任务过程(异步函数)此版本尚不支持,与function同义

null

常量(空)

Int a;

a=10;

a=null;

true

常量

 

false

常量

 

 

原创粉丝点击