Skip to content
This repository was archived by the owner on Aug 18, 2025. It is now read-only.

Commit 8c4606b

Browse files
Update README.md
1 parent 77d1e4e commit 8c4606b

File tree

1 file changed

+1
-294
lines changed

1 file changed

+1
-294
lines changed

README.md

Lines changed: 1 addition & 294 deletions
Original file line numberDiff line numberDiff line change
@@ -1,236 +1,7 @@
11
# CodeNothing
22

3-
CodeNothing是世界上最好的语言,现在配备了**JIT(Just-In-Time)编译器**
3+
CodeNothing是世界上最好的语言
44

5-
## 🚀 v0.6.4 重大更新 - JIT编译器
6-
7-
### ⚡ JIT算术表达式编译
8-
- **热点检测**: 自动识别频繁执行的算术表达式(100次阈值)
9-
- **即时编译**: 使用Cranelift将热点代码编译为本地机器码
10-
- **智能缓存**: 编译结果缓存,避免重复编译
11-
- **性能飞跃**: 算术密集型程序可获得数倍加速
12-
13-
### 🔧 JIT调试系统
14-
```bash
15-
./CodeNothing program.cn # 正常运行
16-
./CodeNothing program.cn --cn-jit-debug # JIT调试模式
17-
./CodeNothing program.cn --cn-jit-stats # JIT性能统计
18-
./CodeNothing program.cn --cn-jit-debug --cn-jit-stats # 完整模式
19-
```
20-
21-
### 📊 JIT性能监控
22-
- **实时统计**: 热点检测、编译成功率、执行效率
23-
- **详细报告**: 格式化的性能分析报告
24-
- **开发友好**: 不干扰正常用户体验的调试系统
25-
26-
## 🚀 核心功能
27-
28-
### 基础语言特性
29-
- 变量声明和赋值
30-
- 基本的算术运算
31-
- 函数定义和调用
32-
- 命名空间
33-
- 自增、自减和复合赋值操作符
34-
- if-else 条件语句和逻辑操作符
35-
- for循环和while循环
36-
- 单行和多行注释
37-
- 动态库加载和调用
38-
39-
## 语法示例
40-
41-
### 变量声明和赋值
42-
43-
```
44-
num : int = 10;
45-
str : string = "hello";
46-
```
47-
48-
### 函数定义和调用
49-
50-
```
51-
fn add(a : int, b : int) : int {
52-
return a + b;
53-
};
54-
55-
result : int = add(1, 2);
56-
```
57-
58-
### 🚀 JIT编译示例(v0.6.4新功能)
59-
60-
```codenothing
61-
using lib <io>;
62-
using ns std;
63-
64-
fn main() : int {
65-
// JIT编译器会自动优化这个循环中的算术表达式
66-
i : int = 0;
67-
sum : int = 0;
68-
69-
while (i < 150) { // 超过JIT阈值(100次)
70-
temp : int = i * 2 + 1; // 🚀 这个表达式会被JIT编译
71-
sum = sum + temp; // 🚀 这个表达式也会被JIT编译
72-
i = i + 1;
73-
};
74-
75-
std::println("计算结果: " + sum);
76-
return 0;
77-
}
78-
```
79-
80-
**运行JIT优化程序**:
81-
```bash
82-
# 正常运行(自动JIT优化)
83-
./CodeNothing jit_example.cn
84-
85-
# 查看JIT编译活动
86-
./CodeNothing jit_example.cn --cn-jit-debug
87-
88-
# 显示性能统计报告
89-
./CodeNothing jit_example.cn --cn-jit-stats
90-
```
91-
92-
### 命名空间
93-
94-
```
95-
ns math {
96-
fn add(a : int, b : int) : int {
97-
return a + b;
98-
};
99-
};
100-
101-
result : int = math::add(1, 2);
102-
103-
// 导入命名空间
104-
using ns math;
105-
result : int = add(1, 2);
106-
```
107-
108-
### 自增、自减和复合赋值操作符
109-
110-
```
111-
num : int = 10;
112-
num++; // 后置自增
113-
num--; // 后置自减
114-
++num; // 前置自增
115-
--num; // 前置自减
116-
num += 5; // 复合赋值
117-
num -= 3; // 复合赋值
118-
num *= 2; // 复合赋值
119-
num /= 4; // 复合赋值
120-
num %= 3; // 复合赋值
121-
122-
// 在表达式中使用自增/自减
123-
a : int = 5;
124-
b : int = 5;
125-
x : int = ++a; // 前置自增:先增加a的值,再返回新值,x为6,a为6
126-
y : int = b++; // 后置自增:先返回b的原值,再增加b的值,y为5,b为6
127-
```
128-
129-
### if-else 条件语句和逻辑操作符
130-
131-
```
132-
if (condition) {
133-
// 代码块
134-
} else if (another_condition) {
135-
// 代码块
136-
} else {
137-
// 代码块
138-
};
139-
140-
// 逻辑操作符
141-
if (a > 5 && b < 10) {
142-
// 逻辑与
143-
};
144-
145-
if (a > 5 || b < 10) {
146-
// 逻辑或
147-
};
148-
149-
if (!condition) {
150-
// 逻辑非
151-
};
152-
```
153-
154-
### for循环
155-
156-
```
157-
// 遍历范围从1到5的整数
158-
for (i : 1..5) {
159-
// 代码块,i的值依次为1, 2, 3, 4, 5
160-
161-
if (i == 3) {
162-
break; // 跳出循环
163-
};
164-
165-
if (i % 2 == 0) {
166-
continue; // 跳过当前迭代,继续下一次迭代
167-
};
168-
};
169-
```
170-
171-
### while循环
172-
173-
```
174-
// 当条件为真时,重复执行代码块
175-
while (condition) {
176-
// 代码块
177-
178-
if (someCondition) {
179-
break; // 跳出循环
180-
};
181-
182-
if (anotherCondition) {
183-
continue; // 跳过当前迭代,继续下一次迭代
184-
};
185-
};
186-
```
187-
188-
### 注释
189-
190-
```
191-
// 这是单行注释
192-
193-
/!
194-
这是多行注释
195-
可以跨越多行
196-
!/
197-
198-
/! 这也是一个多行注释,虽然只有一行 !/
199-
200-
// 嵌套多行注释
201-
/!
202-
外层注释
203-
/!
204-
内层注释 - 这部分会被完全忽略
205-
!/
206-
继续外层注释
207-
!/
208-
```
209-
210-
### 动态库加载和调用
211-
212-
```
213-
// 导入动态库
214-
using lib_once <io>;
215-
216-
// 调用库函数
217-
std::println("Hello, world!");
218-
219-
// 读取用户输入
220-
input : string = std::read_line();
221-
```
222-
223-
## 运行(从源代码编译后)
224-
225-
```
226-
cargo run -- <文件路径>
227-
```
228-
229-
例如:
230-
231-
```
232-
cargo run -- helloworld.cn
233-
```
2345

2356
## 动态库开发
2367

@@ -240,67 +11,3 @@ CodeNothing 支持通过动态库扩展功能。动态库必须遵循以下规
24011
2. 库函数必须接受 `Vec<String>` 类型的参数,并返回 `String` 类型的结果。
24112

24213
详细信息请参阅 `library_example` 目录中的示例库和说明文档。
243-
244-
### 枚举类型 (Enum)
245-
246-
CodeNothing 支持类似 Rust 的枚举类型,可以定义带有或不带有参数的枚举变体。
247-
248-
#### 基础枚举
249-
250-
```
251-
enum Color {
252-
Red,
253-
Green,
254-
Blue
255-
};
256-
257-
// 使用枚举
258-
red : Color = Color::Red;
259-
green : Color = Color::Green;
260-
```
261-
262-
#### 带参数的枚举
263-
264-
```
265-
enum Shape {
266-
Circle(float),
267-
Rectangle(float, float),
268-
Triangle(float, float, float)
269-
};
270-
271-
// 创建带参数的枚举变体
272-
circle : Shape = Shape::Circle(5.0);
273-
rectangle : Shape = Shape::Rectangle(10.0, 20.0);
274-
triangle : Shape = Shape::Triangle(3.0, 4.0, 5.0);
275-
```
276-
277-
#### 复杂枚举示例
278-
279-
```
280-
enum Message {
281-
Quit,
282-
Move(int, int),
283-
Write(string),
284-
ChangeColor(int, int, int)
285-
};
286-
287-
// 创建不同类型的消息
288-
quit_msg : Message = Message::Quit;
289-
move_msg : Message = Message::Move(10, 20);
290-
write_msg : Message = Message::Write("Hello, World!");
291-
color_msg : Message = Message::ChangeColor(255, 128, 64);
292-
```
293-
294-
枚举类型可以作为函数参数和返回值使用,支持字符串连接操作,并且可以在控制台中正确显示。
295-
296-
### 运行基准测试
297-
298-
```bash
299-
# 运行完整基准测试套件
300-
bash benchmarks/scripts/run_benchmarks.sh
301-
302-
# 查看详细性能报告
303-
cat benchmarks/results/performance_report_*.md
304-
```
305-
306-
详细的性能优化报告请参见:[性能优化文档](docs/performance-optimization-v0.5.10.md)

0 commit comments

Comments
 (0)