StoneLang(石语言)是一门灵活强大的动态类型编程语言

研发进度(60%) » 下载0.2.0测试版 »

灵活简洁

StoneLang为动态类型语言。语法借鉴了Javascript、Python、Swift、C#、C++和GoLang等语言优秀特性。目标是设计出基于C系语法且兼具Javascript灵活性和Python便捷性的新语言,让您能够方便高效的愉快开发。

本地多国母语编程

能够支持全球大部分国家的语言作为母语进行程序开发。母语是我们最熟悉和最青睐的语言,通过使用母语开发,让更多的人有能力参与到编程这个不可思议的领域中来实现自己的梦想。

面向对象和多类继承

完全面向对象的设计,支持多类方法继承。借鉴了C++的多类继承设计,多类和单类继承各有千秋,通过多类继承能够更加方便的融合已有功能。支持面向接口编程的概念,约定大于配置。

元组和列表

元组定义数据结构非常方便,让您的开发效率更加高效。

Lambda表达式

StoneLang能够让Lambda融入到程序的各个角落,这样的设计有助于您快速批量处理数据,同时减少代码冗余。

闭包和匿名函数

闭包使用非常方便,摆脱各种函数标准定义的束缚,让开发变的更加具有灵活性。


StoneLang下载


阶段性测试版下载

阶段性测试版下载 0.2.0内测版 2016/05/22

这个版本为阶段性测试版。基于虚拟机运行,代码会被自动编译为虚拟机字节码,使用原始计数器GC,支持基础的石语言语法特性和基础对象类型的支持(Number、String、List、Map等),包含了标准库的部分功能(流、HTTP客户/服务端、压缩和系统等)。源代码扩展名.sl,虚拟机字节码扩展名为.slc。此版本仅为阶段性测试用版本。

验证版下载

下载验证版(非正式) 0.1.0验证版 2016/01/07

目前只提供验证版下载,用于验证语言本身。正式版是基于虚拟机运行的,而这里的验证版是基于解释树运行的。 初期使用java开发的验证版,后来移植到了C++(ps.只用了两天),这里就是当时的C++移植版。

正式版本

正在努力的研发中(查看进度/提点建议)

已完成虚拟机和中间代码编译标准库和扩展库方案GC和多线程技术UNICODE和本地语言方案。标准库当前已经完成 日期时间、文件处理、HTTP客户端、Cookie管理、流处理(文件流、字节流、压缩流)、多线程支持,目前正在进一步完善标准库。


StoneLang进度


[2016-06-01] StoneLang石语言将进行GC的重构。新版GC将采用mark-compact算法管理内存,数据结构也将进行重构,数值和逻辑型直接作为值对象而文本等对象将采用引用类型的数据结构。重构工作量比较大,周期可能会比较长。

2016-05-27 扩展HTTP服务器开发功能

2016-05-25 加入线程池和线程锁

2016-05-19 加入基础HTTP服务器开发功能

2016-05-15 优化对象池使StoneLang内核支持多线程

2016-05-08 重构扩展库方案结构

2016-04-25 import导入机制和UNICODE编码支持进一步增强

2016-04-23 建立StoneLang标准库

2016-04-12 建立语言扩展库方案

2016-03-31 加入UNICODE和本地语言支持

2016-03-29 建立内部对象方法机制并完成所有内部对象的基础方法

2016-03-27 实现虚拟机字节码编译和import导入机制

2016-03-23 实现异常捕获、本地语言和基于寄存器的switch实现

2016-03-16 建立标准库指令调用机制

2016-03-15 类结构和运行机制已完工

2016-03-12 虚拟机内存布局和内存结构重构

2016-02-11 加入虚拟机函数栈帧机制

完成变量循环相关的作用域和字节码定义。加入虚拟机函数栈帧机制,函数、函数作用域、字节码和函数运行栈帧。完成初步的变量访问组字节码生成,由于是纯动态语言,所以变量访问组部分在类等相关环境中需要建立能够优化的动态访问机制,这部分还在完善中,在接下来的类运行机制建立完成后会继续扩展。

[2/12]

2016-02-06 虚拟机基本运行机制已经完成

已经完成基础的内存池,对象池,快速堆栈(用于对象池和虚拟机栈操作)和虚拟机,GC(垃圾回收器)使用标记和引用计数双重机制保证可靠性和高性能,建立一套较完善的石语言字节码定义,现在已经完成变量定义,循环定义,算术运算,逻辑运算部分的字节码解释。通过大量的优化工作,虚拟机的运行效率已经超越了Python。

2016-01-28 正式开始石语言虚拟机开发

由于石语言的语言特性比较多,为了更高的效率和完善的垃圾回收器(GC)机制,虚拟机开发过程周期可能会比较长。

2016-01-27 完成新版语言验证器

为兼容新版本语法分析器和Inline caching技术,构建了新的语言验证器,验证器提供最基本的语言虚拟运行环境,虚拟运行环境仅部分支持内存回收器(GC),运行效率相对来说比较低,用于验证语言本身的运行逻辑。

2016-01-25 再次重构语法分析器 Parser

语法分析器的第二次重构,本次语法分析器重构基于LALR分析法,再次提高了构建抽象语法树AST的效率。

2016-01-23 加入Inline caching技术

由于石语言初期优先定义为解释型语言,所以内部变量寻址过程如果通过hash定位会比较低效,为了能够使语言更加高效,加入inline caching技术。

2016-01-18 重构了分词器 Scan

新的分词器支持本地多语言代码输入,加入全角符号的支持,解析速度更快。

2016-01-07 石语言正式验证器诞生(C++版本)

此版本为C++移植版,您可以点击这里下载,运行目录下的Simple.txt(简单)为示例源码,命令行中可以输入各种表达式用于测试,目前版本还有不少问题,也仅仅用于语言测试和佐证。

2016-01-05 石语言验证器诞生(java版本)

石语言初期开发使用的是java语言,石语言大量的借鉴了javascript、python、C#、C++、swift和Go语言的特性,由于作者个人偏爱js的灵活性和方便性,所以加入闭包和动态类型的支持。


关于


诞生日期

StoneLang(石语言)诞生于2016年1月7日。

作者

谢栋,英文名JimStone。资深架构师,狂热的编程极客。喜欢电影、小说、旅游、大小提琴音乐和游戏。曾任职于上海英和文化胜任CTO。

联系方式

邮箱
boychong2@126.com
QQ
123581766跟StoneLang作者JimStone(谢栋)直接约谈吧
电话
+86 152 2186 9351