logo
0
0
WeChat Login
be20_在cnb_yml配置使用golang镜像
chai2010<chaishushan@gmail.com>
完善 w2 设计

凹语言

主页 | Playground | 路线 | 社区 | 日志

凹语言(凹读音“Wā”)是针对 WebAssembly 设计的编程语言,目标是为高性能网页应用提供一门简洁、可靠、易用、强类型的编译型通用语言。凹语言的代码生成器及运行时为全自主研发(不依赖于LLVM等外部项目),实现了全链路自主可控。目前凹语言处于工程试用阶段。

说明: 凹语言编译器代码以 AGPL-v3 开源协议授权, 标准库以 MIT 协议授权,这意味着您使用凹语言开发的程序可以安全商用无需开源。若您希望在自己的项目中整合凹语言编译器的代码,而又不希望受 AGPL-v3 的传染性限制,您可以联系我们单独为您定制授权协议。

如何参与开发

项目尚处于原型开源阶段,如果有共建和PR需求请参考 如何贡献代码。我们不再接受针对第三方依赖库修改的 PR。

向本仓库提交PR视同您认可并接受凹语言贡献者协议,但在实际签署之前,您的PR不会被评审或接受。

特别注意:与 Issue 相比,发起 PR 更容易获得贡献点(贡献点可用于参加回馈活动,如:首次凹语言贡献者回馈活动)。当您在项目中找到问题发起 Issue后,不妨与我们联系,我们会帮助您将 Issue 转为 PR。

Playground 在线预览

https://wa-lang.org/playground

贪吃蛇游戏

WASM4游戏

NES小霸王游戏机模拟器

WebGPU 模拟土星和小行星

P5 儿童编程

Arduino Nano 33 开发板

例子: 凹语言

打印字符和调用函数:

import "fmt"

global year: i32 = 2023

func main {
	println("hello, Wa!")
	println(add(40, 2), year)

	fmt.Println(1+1)
}

func add(a: i32, b: i32) => i32 {
	return a+b
}

运行并输出结果:

$ wa run hello.wa 
你好,凹语言!
42 2023
2

例子: 打印素数

打印 30 以内的素数:

// 版权 @2021 凹语言™ 作者。保留所有权利。

func main {
	for n := 2; n <= 30; n = n + 1 {
		isPrime: int = 1
		for i := 2; i*i <= n; i = i + 1 {
			if x := n % i; x == 0 {
				isPrime = 0
			}
		}
		if isPrime != 0 {
			println(n)
		}
	}
}

运行并输出结果:

$ cd waroot && wa run -target=wasi examples/prime
2
3
5
7
11
13
17
19
23
29

例子:用中文语法打印素数

引于 "书"

【启】:
  // 打印30以内的素数
  从n=2,到n>30,有n++:
    设素=1
    从i=2,到i*i>n,有i++:
      设x=n%i
      若x==0则:
        素=0
      。
    。
    若素!=0则:
      书·曰:n
    。
  。
。

运行的结果和英文语法的示例相同。

例子:Chrome本地AI

Chrome builtin Gemini Nano Demo:

import "ai"

func main {
	ai.RequestSession(func(session: ai.Session){
		session.PromptAsync("Who are you?", func(res: string) {
			println(res)
		})
	})
}

更多例子 waroot/examples

贡献者名单

贡献者贡献点
柴树杉99650
丁尔男104150
史斌10000
扈梦明60000
赵普明10000
宋汝阳2000
刘云峰1000
王潇南1000
王泽龙1000
吴烜3000
刘斌2500
尹贻浩2000
安博超3000
yuqiaoyu600
qstesiro200
small_broken_gong100
tk103331100
蔡兴3000
王任义1000
imalasong2000
杨刚4000
崔爽2000
李瑾20000
王委委100
雪碧100

贡献点变更记录见 waroot/cplog 目录。

联系我们

电子邮箱:dev@wa-lang.org

微信号:walang_dev