Files
Oraset3/docs/LANGUAGE_SPEC.md

3.5 KiB
Raw Permalink Blame History

Oraset3 编程语言规范

1. 概述

Oraset3 是一种现代化的通用编程语言,结合了 Go 的简洁性和 C++ 的性能。

1.1 设计目标

  • 简洁的语法,易于学习
  • 高性能的编译型语言
  • 跨平台支持(Windows/Linux
  • 内存安全

2. 词法结构

2.1 关键字

var, let, const, func, struct, interface, if, else, for, while, return, break, continue, import, export, true, false, nil

2.2 标识符

字母开头,可包含字母、数字、下划线

2.3 字面量

  • 整数: 42, -100, 0x1A
  • 浮点数: 3.14, -0.5, 1e10
  • 字符串: "hello", 'world'
  • 布尔值: true, false
  • 空值: nil

2.4 运算符

  • 算术: +, -, *, /, %
  • 比较: ==, !=, <, >, <=, >=
  • 逻辑: &&, ||, !
  • 赋值: =, :=, +=, -=, *=, /=

3. 语法结构

3.1 变量声明(简化语法)

推荐写法 - 使用类型推断:

x := 42           // 自动推断为 int
name := "Alice"   // 自动推断为 string
flag := true      // 自动推断为 bool
pi := 3.14        // 自动推断为 float

传统写法:

var x int = 42
let name string = "Alice"
const PI float = 3.14

3.2 函数定义

简洁写法 - 省略返回类型(void):

func greet(name string) {
    println("Hello, " + name)
}

带返回值:

func add(a int, b int) int {
    return a + b
}

无参数:

func main() {
    println("Hello, Oraset3!")
}

3.3 条件语句

if x > 0 {
    println("Positive")
} else if x < 0 {
    println("Negative")
} else {
    println("Zero")
}

3.4 循环

// while 循环
while i < 10 {
    println(i)
    i := i + 1
}

// for 循环
for i := 0; i < 10; i := i + 1 {
    println(i)
}

3.5 结构体

struct Point {
    x int
    y int
}

3.6 接口

interface Shape {
    area() float
}

4. 内置函数

Oraset3 提供以下内置函数,无需声明即可使用:

函数 说明
print(value) 输出值到控制台(不换行)
println(value) 输出值到控制台(换行)

支持的类型:

  • int - 整数
  • float - 浮点数
  • string - 字符串
  • bool - 布尔值

示例:

func main() {
    println(42)                    // 输出整数
    println(3.14)                  // 输出浮点数
    println("Hello, World!")       // 输出字符串
    println(true)                  // 输出布尔值
    
    print("Hello")                 // 不换行输出
    println(" World!")             // 换行输出
}

5. 类型系统

5.1 基本类型

  • int - 整数(64位)
  • float - 浮点数(64位)
  • bool - 布尔值
  • string - 字符串
  • nil - 空值

5.2 复合类型

  • 数组: [5]int
  • 切片: []int
  • 字典: map[string]int
  • 函数: func(int) int

6. 内存管理

Oraset3 使用自动垃圾回收机制,无需手动管理内存。

7. 模块系统

import "math"
export func main() {
    // 入口函数
}

8. 代码风格建议

8.1 分号

分号在 Oraset3 中是可选的,推荐省略分号以保持代码简洁:

推荐:

x := 42
println(x)

也支持:

x := 42;
println(x);

8.2 缩进

使用 4 个空格进行缩进。

8.3 命名规范

  • 变量和函数名使用蛇形命名: my_variable, my_function
  • 类型名使用 Pascal 命名: MyStruct, MyInterface