有哪些由中国人开发的编程语言?
有哪些由中國人開發(fā)的編程語言?
出品 | OSC社區(qū)(ID:OSCHINA_2013)
本期 Awesome 系列給大家介紹下中國人主導(dǎo)的編程語言 。
1、洛書 —— 國產(chǎn)中文編程語言
洛書編程語言旨在打造開源 、高效 、強(qiáng)大的國產(chǎn)中文編程語言 。
項(xiàng)目地址:https://www.oschina.net/p/losu
2、ReScript —— 類型化 JavaScript

ReScript 是一種強(qiáng)大的類型化語言,可以編譯成高效且可讀性高的 JavaScript。ReScript 包含了一個(gè)快速的編譯器工具鏈,可以擴(kuò)展到任何代碼庫的大小。
示例代碼
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 }}編譯為 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;項(xiàng)目地址:https://www.oschina.net/p/rescript
3 、文言 —— 文言文編程語言

文言(wenyan-lang)是一門采用文言文輸入的編程語言 ,該語言不使用英文字符,僅包含繁體中文字符 ,并保留繁體引號(hào)「」。

項(xiàng)目地址:https://www.oschina.net/p/wenyan-lang
4、Go+ —— 為數(shù)據(jù)科學(xué)而生的編程語言

Go+ 是一門適用于工程 、STEM 教育和數(shù)據(jù)科學(xué)的編程語言。主要特性包括 :靜態(tài)類型語言 、與 Go 完全兼容 、腳本化的風(fēng)格 ,以及比 Go 更易于閱讀的數(shù)據(jù)科學(xué)代碼。
簡單對(duì)比 :
GoPlus 代碼
println [1, 2, 3.4]Go 代碼
package mainimport "fmt"func main() { fmt.Println([]float64{ 1, 2, 3.4})}項(xiàng)目地址:https://www.oschina.net/p/goplus
5、凹語言 —— 國內(nèi) Go 開發(fā)者設(shè)計(jì)的實(shí)驗(yàn)性編程語言

凹語言 (凹讀音 “Wa”)是國內(nèi) Go 開發(fā)者設(shè)計(jì)的實(shí)驗(yàn)性編程語言。發(fā)起者稱其為“披著 Go 和 Rust 語法外衣的 C++ 語言” 。
例子

項(xiàng)目地址 :https://www.oschina.net/p/wa-lang
6、HVML —— 可編程標(biāo)記語言

HVML 即 Hybrid Virtual Markup Language,能夠讓熟悉 C/C++ 或其他編程語言的開發(fā)者可以通過 HVML 使用 Web 前端技術(shù)(如 HTML/SVG/MathML 和 CSS)輕松開發(fā) GUI 應(yīng)用程序。
項(xiàng)目地址:https://www.oschina.net/p/hvml
7、CovScript —— 跨平臺(tái)腳本編程語言

CovScript 是一門跨平臺(tái) 、開放源代碼的動(dòng)態(tài)類型腳本編程語言 ,具有高效、易懂、可靠的特點(diǎn) ,充分吸收了現(xiàn)代編程語言研究的成果 ,與 C、C++ 等現(xiàn)代語言有良好的可交互性。

項(xiàng)目地址:https://www.oschina.net/p/covscript
8、Calcit —— 縮進(jìn)語法的 Clojure 方言
Calcit 是縮進(jìn)語法的 Clojure 方言 ,基于 Rust 解釋執(zhí)行,支持編譯為 *.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項(xiàng)目地址:https://www.oschina.net/p/calcit-lang
9、Cicada(蟬語)—— 依賴類型編程語言
Cicada(蟬語)是一門依賴類型編程語言,一個(gè)交互式定理證明器。蟬語項(xiàng)目主要是為了幫助大眾理解開發(fā)軟件和研究數(shù)學(xué)事實(shí)上是同一類活動(dòng) ,實(shí)踐這兩項(xiàng)活動(dòng)的人可以相互學(xué)習(xí),并以非常好的方式相互幫助。
示例代碼
將自然數(shù)定義為歸納數(shù)據(jù)類型 (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) }}項(xiàng)目地址:https://www.oschina.net/p/cicada-lang
10、Aya —— 形式化數(shù)學(xué)編程語言

Aya 是一種編程語言和證明助手,專為形式化數(shù)學(xué)和類型導(dǎo)向編程而設(shè)計(jì)。Aya 的類型系統(tǒng)具有類似于 Arend 的同源性 (homotopical) 特征、重疊但匯合的模式匹配以及對(duì)定義等式 (definitional equalities) 的抽象 。
項(xiàng)目地址:https://www.oschina.net/p/aya
11、OpenBlock —— 可視化塊編程語言

OpenBlock 是可視化塊編程語言,是一門希望通過將編程簡化、將業(yè)務(wù)邏輯可視化的圖形化編程語言 ,語言特性上有 Erlang 和 Smalltalk 的影子 ,語法層面借鑒了 Scratch,使用 Blockly 作為語言前端 。


項(xiàng)目地址