全新的动态语言- 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
常量
- 全新的动态语言- GS
- GS-全新的动态脚本语言V2.0
- gs文件的运行
- gs
- gs
- Windows的全新设计语言Project Neon
- C4748: /GS的处理记录
- 堆栈的保护机制GS
- GS语言更新到V3.0
- 全新的动态规划入门——从维度谈起
- Material Design----全新的界面设计语言(一)
- 想设计一门全新的编程语言
- 显卡那些GS、GT的名称是什么意思?
- 画底图mask.gs程序的使用
- 替换.DATA的COOKIE突破GS
- 960GS网页框架的使用
- win7 Octava+gs的下载和安装
- x64 gs寄存器的一点资料
- 手机产品设计
- 由于无法创建应用程序域,因此未能执行请求。错误: 0x80070005 拒绝访问
- oracle迁移数据文件方法
- C# winform 获取当前路径
- C++ 堆和栈的区别
- 全新的动态语言- GS
- WiFi无线网络的几种认证与加密方式
- Oracle AWR 介绍
- 下雨天的十月末还不冷
- C# 集合类 :(Array、 Arraylist、List、Hashtable、Dictionary、Stack、Queue)
- js中回车事件的捕捉
- 『总是忘记,记录下』mysql远程访问权限设置
- linux shell 学习笔记7——HERE Document
- 没有参数的函数f(void)