出品 | 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