中国人创建的编程语言有哪些?

发表时间: 2022-08-17 21:07

出品 | OSC社区(ID:OSCHINA_2013)

本期 Awesome 系列给大家介绍下中国人主导的编程语言。

1、洛书 —— 国产中文编程语言

洛书编程语言旨在打造开源、高效、强大的国产中文编程语言。

项目地址:https://www.oschina.net/p/losu

2、ReScript —— 类型化 JavaScript

ReScript 是一种强大的类型化语言,可以编译成高效且可读性高的 JavaScript。ReScript 包含了一个快速的编译器工具链,可以扩展到任何代码库的大小。

示例代码

ReScript 编写:

module Button = {  @react.component  let make = (~count: int) => {    let times = switch count {    | 1 => "once"    | 2 => "twice"    | n => Belt.Int.toString(n) ++ " times"    }    let msg = "Click me " ++ times    <button> {msg->React.string} </button>  }}

编译为 JavaScript:

var React = require("react");function Playground$Button(Props) {  var count = Props.count;  var times = count !== 1 ? (      count !== 2 ? String(count) + " times" : "twice"    ) : "once";  var msg = "Click me " + times;  return React.createElement("button", undefined, msg);}var Button = {  make: Playground$Button};exports.Button = Button;

项目地址:https://www.oschina.net/p/rescript

3、文言 —— 文言文编程语言

文言(wenyan-lang)是一门采用文言文输入的编程语言,该语言不使用英文字符,仅包含繁体中文字符,并保留繁体引号「」。

项目地址:https://www.oschina.net/p/wenyan-lang

4、Go+ —— 为数据科学而生的编程语言

Go+ 是一门适用于工程、STEM 教育和数据科学的编程语言。主要特性包括:静态类型语言、与 Go 完全兼容、脚本化的风格,以及比 Go 更易于阅读的数据科学代码。

简单对比:

GoPlus 代码

println [1, 2, 3.4]

Go 代码

package mainimport "fmt"func main() {    fmt.Println([]float64{1, 2, 3.4})}

项目地址:https://www.oschina.net/p/goplus

5、凹语言 —— 国内 Go 开发者设计的实验性编程语言

凹语言™(凹读音 “Wa”)是国内 Go 开发者设计的实验性编程语言。发起者称其为“披着 Go 和 Rust 语法外衣的 C++ 语言”。

例子

项目地址:https://www.oschina.net/p/wa-lang

6、HVML —— 可编程标记语言

HVML 即 Hybrid Virtual Markup Language,能够让熟悉 C/C++ 或其他编程语言的开发者可以通过 HVML 使用 Web 前端技术(如 HTML/SVG/MathML 和 CSS)轻松开发 GUI 应用程序。

项目地址:https://www.oschina.net/p/hvml

7、CovScript —— 跨平台脚本编程语言

CovScript 是一门跨平台、开放源代码的动态类型脚本编程语言,具有高效、易懂、可靠的特点,充分吸收了现代编程语言研究的成果,与 C、C++ 等现代语言有良好的可交互性。

项目地址:https://www.oschina.net/p/covscript

8、Calcit —— 缩进语法的 Clojure 方言

Calcit 是缩进语法的 Clojure 方言,基于 Rust 解释执行,支持编译为 *.mjs 使用。

用法示例

Snippets evaling:

cr -e 'range 100'

multi-lines snippet:

cr -e 'println "|a demo"->  range 100  map $ fn (x)    * x x'

Run with a compact.cirru:

cr compact.cirru -1 # run only oncecr compact.cirru # watch mode enabled by defaultcr compact.cirru --init-fn='app.main/main!' # specifying init-fn

项目地址:https://www.oschina.net/p/calcit-lang

9、Cicada(蝉语)—— 依赖类型编程语言

Cicada(蝉语)是一门依赖类型编程语言,一个交互式定理证明器。蝉语项目主要是为了帮助大众理解开发软件和研究数学事实上是同一类活动,实践这两项活动的人可以相互学习,并以非常好的方式相互帮助。

示例代码

将自然数定义为归纳数据类型 (inductive datatype)

datatype Nat {  zero: Nat  add1(prev: Nat): Nat}function add(x: Nat, y: Nat): Nat {  return recursion (x) {    case zero => y    case add1(prev, almost) =>      add1(almost.prev)  }}

项目地址:https://www.oschina.net/p/cicada-lang

10、Aya —— 形式化数学编程语言

Aya 是一种编程语言和证明助手,专为形式化数学和类型导向编程而设计。Aya 的类型系统具有类似于 Arend 的同源性 (homotopical) 特征、重叠但汇合的模式匹配以及对定义等式 (definitional equalities) 的抽象。

项目地址:https://www.oschina.net/p/aya

11、OpenBlock —— 可视化块编程语言

OpenBlock 是可视化块编程语言,是一门希望通过将编程简化、将业务逻辑可视化的图形化编程语言,语言特性上有 Erlang 和 Smalltalk 的影子,语法层面借鉴了 Scratch,使用 Blockly 作为语言前端。

项目地址:https://www.oschina.net/p/openblock

12、草蟒 —— 基于 Python 的全中文编程语言

草蟒是 Python 汉化版,开发草蟒的目的是消除英语门槛,提供一种简单自然、易学易用、功能强大、应用广泛的中文编程语言,让普通国人能自由地使用母语进行编程。

示例 :

# '列表型' 和 '枚举' 函数>>> 水果 = ['香蕉', '苹果']>>> 水果.追加('梨')>>> 列表型(枚举(水果))[(0, '香蕉'), (1, '苹果'), (2, '梨')]

项目地址:https://www.oschina.net/p/grasspy

13、木兰编程语言 —— 基于 Python 实现的编程语言

木兰编程语言是基于 Python 实现的编程语言,木兰源代码转换为 Python 的中间表示(AST)后执行,可实现各种语法设计与周边功能,并可方便地利用 Python 现有生态。

代码中可以直接调用现有 Python 库,如下调用了草蟒的中文 API:

项目地址:https://www.oschina.net/p/mulan-rework

14、KCL —— 开源配置策略语言

Kusion 配置语言 (KCL, Kusion Configuration Language) 是一种开源配置语言,主要用于 Kusion Stack 开放协同技术栈。并且 KCL 是一种基于声明性和面向对象编程 (OOP) 范式等概念,用于配置和策略场景的静态类型语言。

项目地址:https://www.oschina.net/p/kcl

15、气 (Qi) —— 轻量级中文编程语言

气 (Qi) 是一种轻量级、快速、开源的中文编程语言。作者表示,他希望这种语言能够快速、轻巧,并且完全透明,就像空气一样。

示例

Hello World:使用 Qi 编写的 "Hello, World!" 程序:

系统。打印行("你好,世界"

保留关键字

打断 继续 类 切换 案例 预设 否则 功能 而 对于 如果 空 返回 超 真 假 这 变量 和 或 等 不等 打等 小等

项目地址:https://www.oschina.net/p/qi-lang