README.md 3.2 KB
Newer Older
chai2010's avatar
chai2010 已提交
1
<div align="center">
chai2010's avatar
chai2010 已提交
2
<h1>The Wa Programming Language</h1>
chai2010's avatar
chai2010 已提交
3

chai2010's avatar
chai2010 已提交
4 5 6
[简体中文](https://github.com/wa-lang/wa/blob/master/README-zh.md) | [English](https://github.com/wa-lang/wa/blob/master/README.md) 


chai2010's avatar
chai2010 已提交
7 8
</div>
<div align="center">
3
3dgen 已提交
9

chai2010's avatar
chai2010 已提交
10
[![Build Status](https://github.com/wa-lang/wa/actions/workflows/wa.yml/badge.svg)](https://github.com/wa-lang/wa/actions/workflows/wa.yml)
chai2010's avatar
chai2010 已提交
11
[![Coverage Status](https://coveralls.io/repos/github/wa-lang/wa/badge.svg)](https://coveralls.io/github/wa-lang/wa)
chai2010's avatar
chai2010 已提交
12
[![GitHub release](https://img.shields.io/github/v/tag/wa-lang/wa.svg?label=release)](https://github.com/wa-lang/wa/releases)
chai2010's avatar
chai2010 已提交
13
[![license](https://img.shields.io/github/license/wa-lang/wa.svg)](https://github.com/wa-lang/wa/blob/master/LICENSE)
chai2010's avatar
chai2010 已提交
14

chai2010's avatar
chai2010 已提交
15 16
</div>

chai2010's avatar
chai2010 已提交
17 18
Wa is a general-purpose programming language designed for developing robustness and maintainability WebAssembly software.
Instead of requiring complex toolchains to set up, you can simply go install it - or run it in a browser.
chai2010's avatar
chai2010 已提交
19

3
3dgen 已提交
20
![](docs/images/logo/logo-animate1.svg)
chai2010's avatar
chai2010 已提交
21

chai2010's avatar
chai2010 已提交
22
- Home: [https://wa-lang.org](https://wa-lang.org)
chai2010's avatar
chai2010 已提交
23
- Manual(Chinese): [https://wa-lang.org/man/](https://wa-lang.org/man/)
chai2010's avatar
chai2010 已提交
24
- Github: [https://github.com/wa-lang/wa](https://github.com/wa-lang/wa)
chai2010's avatar
chai2010 已提交
25
- Playground: [https://wa-lang.org/playground](https://wa-lang.org/playground)
26

chai2010's avatar
chai2010 已提交
27 28
> Note: Our canonical Git repository is located at https://gitee.com/wa-lang/wa. There is a mirror of the repository at https://github.com/wa-lang/wa. Unless otherwise noted, the Wa source files are distributed under the AGPL-v3 license found in the LICENSE file.

chai2010's avatar
chai2010 已提交
29
## Playground
chai2010's avatar
chai2010 已提交
30 31 32

[https://wa-lang.org/playground](https://wa-lang.org/playground)

chai2010's avatar
chai2010 已提交
33
![](https://wa-lang.org/playground-01.png)
chai2010's avatar
chai2010 已提交
34

chai2010's avatar
chai2010 已提交
35 36
## Snake Game

chai2010's avatar
chai2010 已提交
37
- Play: [https://wa-lang.org/wa/snake/](https://wa-lang.org/wa/snake/)
chai2010's avatar
chai2010 已提交
38
- Code: [waroot/examples/snake/README-en.md](waroot/examples/snake/README-en.md)
chai2010's avatar
chai2010 已提交
39

chai2010's avatar
chai2010 已提交
40
![](https://wa-lang.org/st0018-03.jpg)
chai2010's avatar
chai2010 已提交
41

chai2010's avatar
chai2010 已提交
42
## Example: Print Wa
3
3dgen 已提交
43

chai2010's avatar
chai2010 已提交
44
Print rune and call function:
chai2010's avatar
chai2010 已提交
45

chai2010's avatar
chai2010 已提交
46 47 48
```wa
import "fmt"

49 50
global year: i32 = 2023

chai2010's avatar
chai2010 已提交
51
func main {
chai2010's avatar
chai2010 已提交
52
	println("hello, Wa!")
53
	println(add(40, 2), year)
chai2010's avatar
chai2010 已提交
54 55

	fmt.Println(1+1)
chai2010's avatar
chai2010 已提交
56 57
}

chai2010's avatar
chai2010 已提交
58
func add(a: i32, b: i32) => i32 {
chai2010's avatar
chai2010 已提交
59 60 61 62
	return a+b
}
```

chai2010's avatar
chai2010 已提交
63
Execute the program:
chai2010's avatar
chai2010 已提交
64 65

```
chai2010's avatar
chai2010 已提交
66
$ wa run hello.wa 
chai2010's avatar
chai2010 已提交
67
hello, Wa!
68
42 2023
chai2010's avatar
chai2010 已提交
69
2
chai2010's avatar
chai2010 已提交
70 71
```

chai2010's avatar
chai2010 已提交
72
## Example: Print Prime
3
zz  
3dgen 已提交
73

chai2010's avatar
chai2010 已提交
74
Print prime numbers up to 30:
3
3dgen 已提交
75

chai2010's avatar
chai2010 已提交
76
```wa
chai2010's avatar
chai2010 已提交
77
func main {
3
3dgen 已提交
78
	for n := 2; n <= 30; n = n + 1 {
79
		isPrime: int = 1
3
3dgen 已提交
80 81 82 83 84 85 86 87 88 89 90 91
		for i := 2; i*i <= n; i = i + 1 {
			if x := n % i; x == 0 {
				isPrime = 0
			}
		}
		if isPrime != 0 {
			println(n)
		}
	}
}
```

chai2010's avatar
chai2010 已提交
92
Execute the program:
chai2010's avatar
chai2010 已提交
93 94

```
chai2010's avatar
chai2010 已提交
95
$ cd waroot && wa run examples/prime
chai2010's avatar
chai2010 已提交
96 97 98 99 100 101 102 103 104 105 106 107
2
3
5
7
11
13
17
19
23
29
```

108 109 110 111 112 113 114 115
## Example: Print Prime with Chinese syntax

Print prime numbers up to 30:

```wz
引于 "书"

【启】:
衍星居士 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128
  // 输出30以内的素数
  从n=2,到n>30,有n++:
    设素=1
    从i=2,到i*i>n,有i++:
      设x=n%i
      若x==0则:
        素=0


    若素!=0则:
      书·曰:n


129 130 131 132 133

```

Output is the same as the previous example.

chai2010's avatar
chai2010 已提交
134
More examples [waroot/examples](waroot/examples)
3
3dgen 已提交
135

3
3dgen 已提交
136 137 138 139
## Contributors

|Contributor|Contribution points|
| --- | --- |
chai2010's avatar
chai2010 已提交
140
|柴树杉| 35000|
141 142 143 144 145 146 147 148 149 150
|丁尔男| 42500|
|史斌  | 29000|
|扈梦明| 14000|
|赵普明| 17000|
|宋汝阳|  2000|
|刘云峰|  1000|
|王湘南|  1000|
|王泽龙|  1000|
|吴烜  |  3000|
|刘斌  |  2500|
chai2010's avatar
chai2010 已提交
151
|尹贻浩|  2000|