网络知识 娱乐 virgil:一种快速轻量级的编程语言

virgil:一种快速轻量级的编程语言

Virgil 是一种编程语言,专为快速、无依赖的程序而设计。它的设计融合了功能性和面向对象的编程范式,以提高表现力和性能。Virgil 的编译器为 JVM 生成优化的独立本机可执行文件、WebAssembly 模块或 JAR。为了在测试和调试中快速周转,程序也可以直接在内置解释器上运行。它非常适合编写小而快的程序,这使得它非常适合构建某些类型的程序,如编译器和虚拟机。它目前被用于虚拟机和编程语言研究,特别是下一代 WebAssembly 虚拟机Wizard的开发。

该存储库包括 Virgil 各种编译目标的整个编译器、运行时系统、一些库、测试、文档和支持代码。

语言设计

Virgil 专注于平衡静态类型语言中的这些主要特性:

  • 类 - 用于基本的面向对象编程
  • 功能 - 用于功能的小规模重用
  • 元组 - 用于多参数函数的有效聚合和统一处理
  • 类型参数 - 用于对类型进行强大而清晰的抽象
  • 代数数据类型——便于数据结构的构建和匹配

有关更多信息,请参阅教程。或阅读图书馆。

支持的目标

Virgil 可以编译为 Linux 或 Darwin 的本机二进制文件、JVM 的 jar 文件或 WebAssembly 模块。Linux 二进制文件可以使用 Window 的 Linux 系统调用层在 Windows 下成功运行。编译器自然是一个交叉编译器,能够从任何受支持的平台编译到任何其他受支持的平台,因此您只需要能够在其中一个平台上运行即可针对其他任何平台。

  • x86-darwin:32 位达尔文内核 (MacOS)
  • x86-64-darwin:64 位达尔文内核 (MacOS)
  • x86-linux:32 位 Linux 内核
  • x86-64-linux : 64 位 Linux 内核
  • jar :Java 虚拟机的 JAR 文件
  • wasm : 任何 Wasm 引擎的 WebAssembly 模块

执行

Virgil 是完全自托管的:它的整个编译器和运行时系统都是在 Virgil 中实现的。它最初被设计为嵌入式系统的语言,特别是微控制器,但现在支持更多的主流目标。编译器包括复杂的整体程序优化,可实现出色的性能和小型二进制文件。从您的程序编译的本机二进制文件的大小可以小至几百字节,并且在运行时仅消耗千字节的内存。