Tapioca Language Project proposal

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)