Proj Tapioca
无论什么时候C++都不会是最正确的选择。在系统编程中,可以直接使用C,而非系统编程中,最好选择一种带有垃圾收集的语言,但C++的特性出了捣乱,基本没有用。
项目简介
编程语言一直以来都是软件开发领域的关键组成部分。 针对不同的应用场景,有各种各样的编程语言可供选择。 正如Linus所言,可以用C完成系统编程,并且使用带有垃圾收集的语言来完成应用程序。 目前确实存在以C/C++等底层编程语言来完成底层运行库,以Java/Lua/Python等高级语言来完成应用开发的模式。 这种开发模式兼顾了运行效率和开发效率,是一种很值得参考的模式。
但目前此平台中仍然存在一些问题。 (其中有很大一部分问题纯粹是Yeonji个人偏好问题。) 为了解决目前编程语言中存在的某些问题,作为个人编程平台提出了Tapioca项目。 Tapioca项目名称来源于珍珠奶茶(对标Java和咖啡)。 Tapioca项目主要包括:
- TSC: Tapioca平台中的主要编程语言,用于实现应用程序。
- TVM: Tapioca平台中的虚拟机,用于解释和执行TapiocaScript代码。
- TLL: Tapioca平台中的底层语言,用于实现底层运行库。
TSC 编程语言
Tapioca Script(以下:TSC)为Tapioca项目中的面向应用程序的编程语言。 目前脚本语言亦可分为若干种类,以Python和Ruby为代表的独立语言和以JavaScript和Lua为代表的嵌入式语言。 TSC希望能成为类似于JavaScript和Lua的嵌入式语言。 同时希望能解决JavaScript和Lua中存在的若干问题。
TVM 虚拟机
Tapioca Virtual Machine(以下:TVM)为Tapioca项目中的程序虚拟机。 TSC的标准编译器会将TSC代码编译为TVM字节码,TVM的主要功能为解释和执行此TVM字节码。 TVM项目希望能成为一个类似Java的平台,具有统一的字节码和行为标准。 但和JVM作为一个独立的虚拟机不同,TVM希望能成为一个类似于Lua的嵌入式程序虚拟机。
TLL 语言
Tapioca Low-layer Language(以下:TLL)为Tapioca项目中的底层语言。 TLL的主要目的是实现TVM虚拟机以及部分运行时库。 TLL设计为一个类似C语言的,仅具有最低限度运行时的底层开发语言。 旨在解决C语言中存在的若干问题,同时提供更加友好的开发体验。
路线图
- 自举路线
- 第一阶段:TSC与TVM基本功能定义与实现(C/golang)
- 第二阶段:在TVM上完成TSC自举(TSC)
- 第三阶段:TLL语言定义与实现(TSC)
- 第四阶段:TVM自举(TSC->TLL->TVM->TSC)