<div align="center">
# ⚡ kylin-go
Kylin Go, 一款基于 Golang 的跨平台简洁高效轻量的编程语言
![Last Commit](https://img.shields.io/github/last-commit/zmh-program/kylin-go)
![Status](https://img.shields.io/github/actions/workflow/status/zmh-program/kylin-go/build.yaml?branch=main)
![Dependence](https://img.shields.io/badge/dependencies-0-blue)
![License](https://img.shields.io/github/license/zmh-program/kylin-go)
[» Kylin Jvm »](https://github.com/Linwin-Cloud/Kylin-Language)
</div>
## 语言特性
- ✨ 语法简单,易学易用
- ⚡ 语法高效,编译速度快
- 📦 内存占用小
- 🎃 跨平台编译
- 🎈 国际化支持 (英,中文)
## [发行版](https://github.com/zmh-program/kylin-go/releases)
- [x] Windows
- [x] Linux Ubuntu
- [x] MacOS
## 语言示例
```kylin
fn main() {
print("Hello, World!")
}
main()
```
## 国际化
```kylin
use 'chinese'
遍历 变量 在 范围(2) {
输出(变量, "hi")
尝试 {
输出(变量位置, "hi")
} 捕获 {
输出("报错:", error)
}
}
```
> ```shell
> 0 hi
> 报错: ReferenceError(type="ReferenceError", message="Variable 变量位置 not defined", line=7, column=15)
> 1 hi
> 报错: ReferenceError(type="ReferenceError", message="Variable 变量位置 not defined", line=7, column=15)
> 2 hi
> 报错: ReferenceError(type="ReferenceError", message="Variable 变量位置 not defined", line=7, column=15)
> ```
## 语言规范
#### 1. 赋值计算
```kylin
a = 1024
a += 2
a -= 4
a *= 8
a **= 12
a /= 16
b = a + 1
```
#### 2. 函数
```kylin
fn add(a, b) {
return a + b
}
fn main() {
print("Hello, World!")
return add(1, 2)
}
```
#### 3. 条件判断
```kylin
if val > 10 {
print("val > 10")
} elif val < 10 {
print("val < 10")
} else {
print("val = 10")
}
if condition {
print("condition")
}
if n + 1 != 0 && n {
print("n & (n + 1) != 0")
}
```
#### 4. 循环
```kylin
for i in range(0, 10) {
print(i)
}
```
```kylin
n = 0
while n < 10 {
print(n)
n += 1
}
```
#### 5. 数组
```kylin
arr = [1, 2, 3, 4, 5]
for i in arr {
...
}
for i in ["hello", "world"] {
print(i)
}
```
#### 6. 异常截获
```
for i in range(1,10,2) {
try {
print(id)
} catch {
print("a", error, "b")
}
}
```
> ```shell
> $ kylin test.ky
> a ReferenceError(message="Variable id not defined", type="ReferenceError",
> line=3, column=22) b
> a ReferenceError(message="Variable id not defined", type="ReferenceError",
> line=3, column=22) b
> a ReferenceError(message="Variable id not defined", type="ReferenceError",
> line=3, column=22) b
> a ReferenceError(message="Variable id not defined", type="ReferenceError",
> line=3, column=22) b
> a ReferenceError(message="Variable id not defined", type="ReferenceError",
> line=3, column=22) b
> a ReferenceError(message="Variable id not defined", type="ReferenceError",
> line=3, column=22) b
> ```
## 运行
```shell
kylin main.ky
```
> .ky 后缀可省略
> ```shell
> kylin server
> ```
## 关键字
- `fn` 函数
- `if` 条件判断
- `else` 条件判断
- `for` 循环
- `in` 循环
- `while` 循环
- `return` 返回
- `true` 真
- `false` 假
- `null` 空
- `try` 异常截获
- `catch` 异常截获
- `break` 跳出循环
- `continue` 跳过本次循环
- `import` 导入
- `use` 国际化导入语言包
## 内置函数
- `print` 打印
- `input` 输入
- `str` 字符串
- `int` 整数
- `float` 浮点数
- `bool` 布尔值
- `array` 数组
- `range` 范围
- `len` 长度
- `sum` 求和
- `max` 最大值
- `min` 最小值
- `abs` 绝对值
- `all` 全部为真
- `any` 任意为真
- `join` 连接字符串
- `split` 分割字符串
- `type` 类型
- `time` 时间 (ms)
- `sleep` 阻塞等待 (ms)
- `timenano` CPU 时间 (ns)
- `read` 读取文件
- `write` 写入文件
- `shell` 执行 shell 命令
- `exit` 退出程序
## 语言设计
#### 1. 词法分析
- Lexer 编译 AST 语法树
- 词法分析器使用递归下降进行语法分析
#### 2. 语言解释
- 动态解释器
#### 3. 语言编译
- 编译器使用 Golang SSA 进行编译
## 基准测试
#### 性能测试
```kylin
n = 0
val = 2345
t = time()
while n < 9999999 {
n += 1
val **= 1289
val = n * 999
}
print(time() - t, "ms")
```
1. C (GCC) `891.9ms`
2. Golang `1012.5ms`
3. NodeJS `1170.0ms`
4. **Kylin Go** `1751.2ms`
5. Python `4681.8ms`
#### 内存占用 (整体)
```kylin
n = 0
while n < 1000000 {
n += 1
print('hello world')
}
```
1. C (GCC) `0.9 MB`
2. Golang `3.2 MB`
3. **Kylin Go** `8 MB`
4. Node `10 MB`
5. Python `14MB`
6. Kylin JVM `84MB`
#### 内存溢出测试
1. C ❌
2. Golang ❌
3. **Kylin Go** ❌
4. NodeJS ❌
5. Python ❌
6. Kylin JVM ✔
#### 风格对比
C 语言
```c
#include <stdio.h>
int main() {
int n = 0;
while (n < 1000000) {
n++;
printf("hello world\n");
}
return 0;
}
```
Golang
```go
package main
import "fmt"
func main() {
n := 0
for n < 1000000 {
n++
fmt.Println("hello world")
}
}
```
**Kylin Go**
```kylin
n = 0
while n < 1000000 {
n += 1
print('hello world')
}
```
**Kylin JVM**
```kylin
var n = 0
while n < 1000000 {
n = <n + 1>
out('hello world')
}
```
NodeJS
```js
let n = 0;
while (n < 1000000) {
n++;
console.log('hello world');
}
```
Python
```python
n = 0
while n < 1000000:
n += 1
print('hello world')
```
没有合适的资源?快使用搜索试试~ 我知道了~
Kylin Go 是一款基于 Golang 的跨平台高效的编程语言,面相过程,动态脚本语言。
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共31个文件
go:23个
yaml:2个
mod:1个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
需积分: 5 0 下载量 199 浏览量
2024-05-23
17:09:56
上传
评论
收藏 28KB ZIP 举报
温馨提示
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
资源推荐
资源详情
资源评论
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![deb](https://img-home.csdnimg.cn/images/20210720083646.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![deb](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 31 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/d7864c98224046ec9a7f43fa6207c84e_qq_51320133.jpg!1)
生瓜蛋子
- 粉丝: 3830
- 资源: 6140
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)