GS-全新的动态脚本语言V2.0
来源:互联网 发布:vb comdlg32.ocx 编辑:程序博客网 时间:2024/04/30 21:42
GS 全称GScript,前几日刚延生的一门新的动态脚本语言,今日再次更新,
更新内容:
1、解析引擎优化,采用表达式预测,ID预测,性能比之前提升近一倍.
2、引用方式更新,采用"最终实体引用"模式,解决"环形引用"问题
3、语言上增加了关键字:typeof typecast sizeof
4、增加了寄存器编程方式(提升性能),寄存器操作关键字:#push #pop ,寄存器名称A-Z,表示方法 #[A-Z]
5、支持预处理指令:#define、#undef、#include
测试效果:
脚本内容:
test1.c
#include <.\test1.h>string fn=getch("请选择使用的函数\x32(注:函数功能一致,但效率不同。)[A]使用C++函数[B]使用脚本函数(普通版)[C]使用脚本函数(寄存器版)输入选项:[ ]\b\b");print("%s\n",fn);switch(fn){case "a":case "A":_tmainA();break;case "b":case "B":_tmainB();break;case "c":case "C":_tmainC();break;default:print("输入错误,将使用缺省值[A]\n");_tmainA();break;}
test1.h
#define printfprint#define BAILOUT 16 #define MAX_ITERATIONS 1000#define double real#define long int int mandelbrotA(double x, double y) { double cr = y - 0.5; double ci = x; double zi = 0.0; double zr = 0.0; int i = 0; while(1) { i ++; double temp = zr * zi; double zr2 = zr * zr; double zi2 = zi * zi; zr = zr2 - zi2 + cr; zi = temp + temp + ci; if (zi2 + zr2 > BAILOUT) return i; if (i > MAX_ITERATIONS) return 0; } } #define cr #A#define ci #B#define zi #C#define zr #D#define i #E#define temp #F#define zr2 #I#define zi2 #Jint mandelbrotB(real x, real y) {//#push #A #B #C; cr = y - 0.5; ci = x; zi = 0.0; zr = 0.0; i = 0; while(true){ ++i; temp = zr * zi; zr2 = zr * zr; zi2 = zi * zi; zr = zr2 - zi2 + cr; zi = temp + temp + ci; if (zi2 + zr2 > BAILOUT) return 1; if (i > MAX_ITERATIONS) return 0; }//#pop #C #B #A;return i<=MAX_ITERATIONS;}#undef cr#undef ci#undef zi#undef zr#undef i#undef temp#undef zr2#undef zi2int _tmainA (){ int old;int now; old=time(); int x;int y; for (y = -39; y < 39; y++) { print("\n"); for (x = -39; x < 39; x++) { int i = mandelbrot(x/40.0, y/40.0); if (i) print(" "); else print("*"); } } print ("\n"); now=time(); real query_time = (now-old)/1000.0; print ("time %lf", query_time); return 0; }int _tmainB (){ int old;int now; old=time(); int x;int y; for (y = -39; y < 39; y++) { print("\n"); for (x = -39; x < 39; x++) { int i = mandelbrotA(x/40.0, y/40.0); if (i) print(" "); else print("*"); } } print ("\n"); now=time(); real query_time = (now-old)/1000.0; print ("time %lf", query_time); return 0; }int _tmainC (){ int old;int now; old=time(); int x;int y; for (y = -39; y < 39; y++) { print("\n"); for (x = -39; x < 39; x++) { int i = mandelbrotB(x/40.0, y/40.0); if (i) print(" "); else print("*"); } } print ("\n"); now=time(); real query_time = (now-old)/1000.0; print ("time %lf", query_time); return 0; }
以上程序内容来互连网上一个很有趣的程序,运行结果很神奇!
测试脚本截图:
- GS-全新的动态脚本语言V2.0
- 全新的动态语言- GS
- web测试工具SoapUI NG Pro v2.0发布,来看看全新的仪表盘
- 动态脚本语言
- T00ls Lpk Sethc 全新v2.0版(附LPK提权)
- gs文件的运行
- gs
- gs
- C4748: /GS的处理记录
- 堆栈的保护机制GS
- Delphi MlSkin V2.0正式版 (2015.01.28)全新发布啦! 它能让你的程序拥有像QQ一样多彩炫丽的外观
- 上网本市场出货量刚刚开始 Moblin v2将带来全新的移动体验
- 边打字边查找 baidu输入法V2.10的全新体会
- 利用.NET语言开发自己的脚本语言(二)--动态编译
- vc++访问javascript(2)--IDispatchEx是动态脚本语言的基础
- 动态语言——披着彩衣飞舞的脚本语言
- JAVA的动态性之脚本语言支持API
- 全新的动态规划入门——从维度谈起
- Socket
- Python
- 使用crossdomain.xml让Flash/Flex可以跨域传输数据
- Davlik虚拟机技术揭秘之一
- 移动电视信号发生器(ISDB-T)
- GS-全新的动态脚本语言V2.0
- Service
- Linux下makefile教程
- C unsigned int and int
- 相关性与卷积
- pro文件部分语法
- 读取EXCEL数据到SQL的实例
- 告别cpp&h:hpp文件编写心得(转)
- c语言中static使用方法