全中文可视化开发环境

Y++ YStudio

用中文写代码,编译成原生 Windows 程序

Y++ 是一款面向中文用户的编程语言与集成开发环境。
全中文命令、可视化界面设计、拼音智能补全,让编程回归母语的直觉与流畅。

你好世界.yc
函数 主程序() {
    文本 问候语 = "你好,世界!"
    输出(问候语)

    整数 计数 = 0
    循环 (计数 < 5) {
        输出("第 " + 到文本(计数 + 1) + " 次循环")
        计数 = 计数 + 1
    }
}
向下滚动探索更多
200+ 内置命令
17+ 标准库
25+ 预设主题
30+ GUI 控件

核心特性

为中文用户精心打造的编程体验

全中文编程

命令、变量、函数名全部使用中文。告别英文语法障碍,用母语的思维方式编写程序,让逻辑表达更加自然流畅。

可视化设计器

拖拽式界面设计,所见即所得。像搭积木一样组合窗口、按钮、列表、树形视图等 30+ 类控件,快速构建图形化应用程序。

拼音智能补全

输入拼音首字母即可快速补全中文命令。例如输入 "sc" 自动提示"输出",极大提升编码效率。

内置编译工具链

自带完整的编译环境,下载即可使用。无需安装 Visual Studio 或任何额外工具,真正的开箱即用。

丰富的标准库

内置 HTTP、JSON、多线程、数据库、文件操作、正则表达式、Windows API 等 17+ 个标准库,满足各种开发需求。

多主题皮肤

20 余种精心设计的渐变主题——深邃黑夜、海洋蓝、极光、赛博朋克……还支持自定义纯色、渐变与图片背景。

代码示例

直观感受 Y++ 的中文编程风格

基础语法.yc
// ─── 数据类型 ───
整数 年龄 = 25
小数 分数 = 95.5
文本 姓名 = "张三"
逻辑 已通过 = 
长整数 大数 = 9223372036854775807

输出(姓名 + " 今年 " + 到文本(年龄) + " 岁")

// ─── 条件判断 ───
如果 (分数 >= 90) {
    输出("成绩优秀!")
} 否则如果 (分数 >= 60) {
    输出("成绩合格")
} 否则 {
    输出("需要努力")
}

// ─── 选择语句 ───
选择 (年龄) {
    情况 18: 输出("刚刚成年")
    情况 25: 输出("正值青春")
    默认: 输出("其他年龄")
}

// ─── 循环 ───
循环 (整数 i = 0; i < 5; i++) {
    如果 (i == 3) { 继续 }
    输出("第 " + 到文本(i) + " 次")
}

// ─── 函数定义 ───
函数 计算面积(小数 , 小数 ) 小数 {
    返回  * 
}

小数 面积 = 计算面积(10.5, 20.0)
输出("面积 = " + 到文本(面积))

简洁直观的语法

  • 7 种数据类型:整数、长整数、小数、双浮点、文本、逻辑、字节集
  • 条件判断如果 / 否则如果 / 否则
  • 选择语句选择 / 情况 / 默认
  • 多种循环:for 循环、while 循环、遍历
  • 跳转控制跳出继续
  • 函数定义:返回值类型直接写在参数后(无冒号)
  • 所有关键字均为中文,零英文门槛
数组操作.yc
// ─── 创建数组 ───
数组 水果[] = ["苹果", "香蕉", "橘子"]
数组 成绩[] = [92, 85, 78, 96, 88]

// ─── 增删改查 ───
数组添加(水果, "葡萄")
数组插入(水果, 1, "芒果")
数组删除(水果, 0)
数组设置(水果, 0, "西瓜")

整数 位置 = 数组查找(水果, "橘子")
逻辑 有香蕉 = 数组包含(水果, "香蕉")

// ─── 数学统计 ───
整数 总分   = 数组求和(成绩)
小数 平均分 = 数组平均(成绩)
整数 最高分 = 数组最大(成绩)
整数 最低分 = 数组最小(成绩)

输出("平均分: " + 到文本(平均分))
输出("最高分: " + 到文本(最高分))

// ─── 排序与变换 ───
数组排序(成绩)
数组反转(成绩)
数组去重(成绩)
数组打乱(成绩)

// ─── 遍历 ───
遍历 (水果, i, ) {
    输出("第 " + 到文本(i) + " 项: " + )
}

// ─── 二维数组 ───
二维数组 矩阵[][] = [[1, 2], [3, 4], [5, 6]]

强大的数组操作

  • 支持一维、二维、三维及多维数组
  • 增删改:添加、插入、删除、设置
  • 查找:查找索引、包含判断、统计计数
  • 数学:求和、平均、最大值、最小值、随机取值
  • 变换:排序、反转、去重、打乱、截取、合并
  • 遍历:同时获取索引和元素
  • 支持文本分割成数组、数组合并成文本
文本处理.yc
文本 原文 = "  Hello Y++ World  "

// ─── 基本操作 ───
整数 长度 = 文本长度(原文)
文本 子串 = 截取文本(原文, 2, 5)
整数 位置 = 查找文本(原文, "Y++")
文本 替换 = 替换文本(原文, "World", "世界")

// ─── 大小写转换 ───
文本 大写 = 转大写(原文)
文本 小写 = 转小写(原文)
文本 首大写 = 首字母大写(原文)

// ─── 去空格与提取 ───
文本 干净 = 去空格(原文)
文本 左边 = 取左边(原文, 7)
文本 右边 = 取右边(原文, 7)

// ─── 判断 ───
逻辑 包含 = 文本包含(原文, "Y++")
逻辑 为空 = 文本空判断(原文)
逻辑 是数字 = 文本是否数字("12345")

// ─── 分割与合并 ───
数组 单词 = 文本分割("苹果,香蕉,橘子", ",")
文本 合并 = 数组合并(单词, " | ")
输出(合并)  // 苹果 | 香蕉 | 橘子

// ─── 其他 ───
文本 重复 = 文本重复("嗨 ", 3)
文本 反转 = 文本反转("Hello")
整数 编码 = 编码字符("A")  // 65

全面的文本处理

  • 基本操作:长度、截取、查找、替换
  • 大小写:转大写、转小写、首字母大写
  • 清理:去左空、去右空、去空格
  • 提取:取左边、取右边、取中间
  • 判断:包含、空判断、是否数字
  • 分割合并:按分隔符拆分与拼接
  • 变换:重复、反转、字符编解码
文件操作.yc
// ─── 文本文件读写 ───
写文件("日志.txt", "程序启动\n")
追加文本("日志.txt", "操作完成\n")
文本 内容 = 读文件("日志.txt")
输出(内容)

// ─── 字节集文件 ───
字节集 数据 = 读文件字节集("图片.png")
写文件字节集("备份.png", 数据)

// ─── 文件信息 ───
如果 (文件是否存在("config.ini")) {
    整数 大小 = 取文件大小("config.ini")
    文本 时间 = 取文件时间("config.ini")
    输出("文件大小: " + 到文本(大小) + " 字节")
}

// ─── 目录操作 ───
创建目录("输出文件夹")
数组 文件列表 = 枚举文件("D:/项目")
数组 子目录   = 枚举目录("D:/项目")

遍历 (文件列表, i, 文件) {
    输出(文件)
}

// ─── 路径操作 ───
文本 名称 = 取文件名("D:/项目/源码.yc")
文本 目录 = 取目录("D:/项目/源码.yc")
文本 扩展名 = 取扩展名("源码.yc")
文本 完整路径 = 合并路径("D:/项目", "源码.yc")

便捷的文件操作

  • 文本文件:读取、写入、追加
  • 二进制文件:字节集读写
  • 文件信息:判断存在、取大小、取修改时间
  • 目录管理:创建、删除、枚举文件和子目录
  • 路径工具:取文件名、目录、扩展名、合并路径
网络请求.yc
// ─── 简单 GET 请求 ───
文本 源码 = HTTP请求_文本("GET", "https://www.baidu.com")
输出(源码)

// ─── 带完整配置的 POST 请求 ───
HTTP请求配置类 配置
配置.设置协议头("Content-Type", "application/json")
配置.设置协议头("Authorization", "Bearer token123")
配置.设置超时(5000)
配置.设置代理("http://proxy:8080")
配置.设置Cookie("session", "abc123")

文本 数据 = "{\"name\":\"张三\",\"age\":25}"
文本 响应 = HTTP请求_文本("POST", "https://api.example.com/users", 数据, 配置)

如果 (配置.是否成功) {
    输出("状态码: " + 到文本(配置.状态码))
    输出("响应: " + 响应)
}

// ─── 下载文件 ───
字节集 文件数据 = HTTP请求_字节集("GET", "https://example.com/file.zip")
写出文件("下载的文件.zip", 文件数据)

强大的网络能力

  • 支持 GET / POST / PUT / DELETE 等方法
  • 自动识别 UTF-8、GBK 等多种编码
  • Cookie 管理与 HTTP 代理支持
  • 文本与字节集两种响应模式
  • 可配置超时、协议头、重定向
  • 支持文件下载
JSON处理.yc
// ─── 解析 JSON ───
文本 jsonStr = "{\"name\":\"张三\",\"age\":25,\"scores\":[90,85,92]}"

JSON类 json
json.解析(jsonStr)

// ─── 读取值 ───
文本 姓名 = json.取文本("name")
整数 年龄 = json.取整数("age")
整数 科目数 = json.数组长度("scores")

输出(姓名 + " 共有 " + 到文本(科目数) + " 门成绩")

// ─── 修改与写入 ───
json.置文本("name", "李四")
json.置整数("age", 30)
json.置逻辑("graduated", )
json.数组添加("scores", 88)

// 格式化输出
文本 结果 = json.格式化()
输出(结果)

// ─── 文件读写 ───
json.保存到文件("data.json")

JSON类 json2
json2.从文件加载("data.json")

// ─── 快捷操作 ───
文本 名字 = JSON取文本(jsonStr, "name")
文本 新json = JSON置文本(jsonStr, "name", "王五")

灵活的 JSON 处理

  • 解析:从字符串或文件加载 JSON
  • 读取:按键名取文本、整数、逻辑值
  • 修改:设置任意键值对
  • 数组:查询长度、添加、删除元素
  • 文件:保存到文件、从文件加载
  • 快捷函数:一行代码读写 JSON
数据库示例.yc
// ─── 连接数据库 ───
整数 连接 = 数据库连接_SQLite("学生管理.db")

// ─── 创建表 ───
数据库执行(连接, "CREATE TABLE IF NOT EXISTS 学生("
    + "学号 INTEGER PRIMARY KEY,"
    + "姓名 TEXT,"
    + "年龄 INTEGER,"
    + "成绩 REAL)")

// ─── 插入数据(使用事务提高性能)───
数据库开始事务(连接)
数据库执行(连接, "INSERT INTO 学生 VALUES(1, '张三', 20, 92.5)")
数据库执行(连接, "INSERT INTO 学生 VALUES(2, '李四', 21, 85.0)")
数据库执行(连接, "INSERT INTO 学生 VALUES(3, '王五', 19, 96.0)")
数据库提交事务(连接)

// ─── 查询数据 ───
整数 结果 = 数据库查询(连接, "SELECT * FROM 学生 WHERE 成绩 >= 90")

 (数据库下一行(结果)) {
    整数 学号 = 数据库读整数(结果, 0)
    文本 姓名 = 数据库读文本(结果, 1)
    小数 成绩 = 数据库读小数(结果, 3)
    输出(姓名 + " 的成绩: " + 到文本(成绩))
}

数据库释放结果(结果)
数据库关闭(连接)

完整的数据库操作

  • 连接:支持 SQLite 数据库
  • 建表:标准 SQL 创建数据表
  • 事务:开始事务、提交事务,保证数据一致性
  • 增删改:INSERT / UPDATE / DELETE
  • 查询:SELECT + 逐行读取结果集
  • 类型读取:按列索引读整数、文本、小数
多线程示例.yc
整数 完成数 = 0
整数 任务总数 = 20

// ─── 定义工作任务 ───
函数 执行任务(整数 编号) {
    输出("任务 " + 到文本(编号) + " 开始执行")
    延时(1000)
    原子加(完成数, 1)
    输出("任务 " + 到文本(编号) + " 已完成")
}

// ─── 定时刷新进度 ───
函数 刷新进度() {
    整数 已完成 = 原子读(完成数)
    输出("[进度] " + 到文本(已完成) + "/" + 到文本(任务总数))
}

// ─── 创建线程池 + 定时器 ───
整数 池句柄 = 创建线程池(取CPU核心数())

定时器类 计时器
计时器.启动(300, 刷新进度)

计次循环 (i, 1, 任务总数) {
    线程池提交(池句柄, 执行任务, i)
}

等待线程池(池句柄)
计时器.停止()
输出("全部任务完成!")

// ─── 锁与信号量 ───
整数  = 创建锁()
加锁()
// ... 临界区操作 ...
解锁()

现代化并发编程

  • 线程池:自动管理并发数量,按 CPU 核心数创建
  • 原子操作:线程安全的计数与读写
  • 定时器:周期性执行回调函数
  • 同步原语:锁、信号量、事件
  • 线程控制:启动、等待、休眠
  • 全中文 API,降低多线程编程门槛
绘图示例.yc
// ─── 获取绘图场景 ───
整数 场景 = 绘图_取窗口场景(主窗口.句柄)

// ─── 定义颜色 ───
整数 红色 = 绘图_RGB(255, 0, 0)
整数 蓝色 = 绘图_RGB(0, 120, 215)
整数 绿色 = 绘图_RGB(0, 200, 80)
整数 白色 = 绘图_RGB(255, 255, 255)

// ─── 绘制图形 ───
绘图_填充矩形(场景, 0, 0, 800, 600, 白色)
绘图_画矩形Ex(场景, 50, 50, 200, 120, 蓝色, 绿色)
绘图_画椭圆Ex(场景, 300, 50, 200, 120, 红色, -1)
绘图_画线(场景, 50, 200, 500, 200)

// ─── 绘制文字 ───
绘图_设置文字颜色(场景, 蓝色)
绘图_画文字(场景, 50, 220, "Y++ 绘图示例")

// ─── 双缓冲(防闪烁)───
整数 内存场景 = 绘图_创建内存场景(主窗口.句柄, 800, 600)
绘图_填充矩形(内存场景, 0, 0, 800, 600, 白色)
// ... 在内存场景上绘制 ...
绘图_复制场景(场景, 0, 0, 内存场景, 0, 0, 800, 600)
绘图_释放内存场景(内存场景)

绘图_释放场景(主窗口.句柄, 场景)

灵活的绘图 API

  • 场景管理:窗口场景、屏幕场景、内存场景
  • 基础图形:线段、矩形、椭圆、像素点
  • 颜色系统:RGB 自定义颜色
  • 文字绘制:设置颜色、绘制文字
  • 双缓冲:内存场景绘制后一次性拷贝,防止闪烁
  • 可用于游戏、数据可视化、自定义控件
加密编码.yc
// ─── 哈希算法 ───
文本 md5    = MD5文本("Hello Y++")
文本 sha256 = SHA256文本("Hello Y++")
整数 crc32  = CRC32文本("Hello Y++")

输出("MD5:    " + md5)
输出("SHA256: " + sha256)

// ─── Base64 编码 ───
文本 编码 = Base64编码("Y++ Studio 你好")
文本 解码 = Base64解码(编码)
输出(编码)  // WSsrIFN0dWRpbyDkvaDlpb0=

// ─── URL / HTML 编码 ───
文本 url编码  = URL编码("你好 世界")
文本 html编码 = HTML编码("<script>alert('XSS')</script>")

// ─── 加密 / 解密 ───
文本 密文 = RC4加密("机密数据", "我的密钥")
文本 明文 = RC4加密(密文, "我的密钥")

// ─── 进制转换 ───
文本 十六进制 = 十进制转十六进制(255)  // "FF"
文本 二进制 = 十进制转二进制(255)    // "11111111"
整数 十进制 = 十六进制转十进制("FF")  // 255

// ─── 生成随机标识 ───
文本 密钥 = 生成随机密钥(32)
文本 uuid = 生成UUID()

加密与编码工具

  • 哈希:MD5、SHA256、CRC32
  • 编码:Base64、URL、HTML 编解码
  • 加密:RC4、XOR 对称加密
  • 进制:十进制、十六进制、二进制互转
  • 生成:随机密钥、UUID
  • 支持字节集级别的哈希与编码
网络通信.yc
// ─── TCP 客户端 ───
TCP类 tcp
tcp.连接("127.0.0.1", 8080)
tcp.发送("你好,服务器!")

文本 回复 = tcp.接收()
输出("服务器回复: " + 回复)
tcp.断开()

// ─── UDP 通信 ───
UDP类 udp
udp.发送("192.168.1.100", 9090, "广播消息")
文本 数据 = udp.接收()

// ─── WebSocket ───
WebSocket类 ws
ws.连接("ws://example.com/chat")
ws.发送("大家好!")

文本 消息 = ws.接收()
输出("收到消息: " + 消息)
ws.断开()

// ─── 全局热键 ───
函数 热键回调() {
    输出("热键被按下!")
}

注册全局热键(#VK_F1, #MOD_ALT, "热键回调")

丰富的网络通信

  • TCP:面向连接的可靠通信
  • UDP:轻量级数据报通信
  • WebSocket:实时双向通信
  • 全局热键:注册系统级快捷键
  • 简洁的面向对象风格 API
  • 适用于即时通讯、游戏联网、远程控制
JS引擎.yc
// ─── JS 引擎库:脚本与互调 ───
JS引擎类 js
js.初始化()

// 执行 JavaScript 代码
js.执行("var x = 10; var y = 20;")
js.执行("function add(a, b) { return a + b; }")

// Y++ 与 JS 双向传值
js.设置变量("name", "来自Y++的数据")
文本  = js.获取变量("name")

// 调用 JS 函数
文本 结果 = js.调用函数("add", [10, 20])
输出("计算结果: " + 结果)

js.清理()

// ─── COM 自动化(操作 Excel 等)───
对象类 excel
excel.创建("Excel.Application")
excel.调用("Visible", )
excel.调用("Workbooks.Add")
excel.调用("Cells", [1, 1], "Y++ 自动化")
excel.释放()

脚本引擎与自动化

  • JS 引擎库:轻量脚本引擎,启动快、资源占用低
  • 双向互调:Y++ 与 JavaScript 变量、函数互通
  • COM 自动化:操控 Excel、Word 等 Office 应用
  • 适用于插件系统、数据处理、自动化脚本

可视化界面设计

拖拽控件、设置属性,快速构建图形化应用

30+ 内置 GUI 控件

窗口
标题、大小、背景色、透明度、置顶、居中
按钮
标题、背景色、文字颜色、启用/禁用
A
标签
字体、对齐、渐变背景、文字阴影、3D 效果、发光
文本框
单行 / 多行 / 富文本 / 超级文本框(大文件优化)
下拉框
添加项目、选中索引、取选中文本
列表框
添加、选中、多选、取项目文本
进度条
最小/最大值、步进、颜色、正常/错误/暂停状态
选项卡
添加/删除/插入页面、设置标题
列表视图
图标视图 / 详细视图、多列、图标
树形视图
添加/展开/折叠节点、层级结构

代码设置控件属性

界面设计.yc
// ─── 窗口设置 ───
主窗口.标题 = "我的应用 v1.0"
主窗口.宽度 = 800
主窗口.高度 = 600
主窗口.居中()

// ─── 按钮 ───
按钮1.标题 = "提交"
按钮1.宽度 = 120
按钮1.背景色 = #蓝色
按钮1.文字颜色 = #白色

// ─── 标签(丰富样式)───
标签1.标题 = "欢迎使用"
标签1.字体名称 = "微软雅黑"
标签1.字体大小 = 24
标签1.粗体 = 
标签1.对齐 = #居中
标签1.发光效果 = 

// ─── 对话框 ───
信息框("操作成功!")
逻辑 确认 = 确认框("确定删除?")
文本 输入 = 输入框("请输入姓名:")

// ─── 文件选择对话框 ───
文本 文件 = 打开文件对话框(
    "选择文件",
    "Y++文件|*.yc|所有文件|*.*")
整数 颜色 = 选择颜色对话框()

更多内置功能

200+ 内置命令覆盖开发中的方方面面

数学运算

绝对值 四舍五入 取整 随机数 求余 最大值 最小值

时间日期

取时间戳 取年份 取月份 格式化时间 计算时间间隔 是否闰年

字节集操作

文本到字节集 字节集到十六进制 取子字节集 合并字节集 字节集查找

剪贴板

取剪贴板文本 设置剪贴板图片 剪贴板文件列表 监听剪贴板

注册表

读注册表 写注册表 删注册表 注册表项存在

系统操作

取CPU核心数 取进程ID 取鼠标坐标 取按键状态 取进程内存

音频播放

播放声音 停止声音 蜂鸣(支持同步/异步播放)

调试工具

日志_信息 断言_相等 性能计时 内存监控

标准库

内置多种开箱即用的功能模块

HTTP

GET / POST 请求、Cookie、编码识别、代理、下载

数据库

SQLite 连接、增删改查、事务、结果集遍历

多线程

线程池、原子操作、锁、信号量、事件

文件操作

读写、目录遍历、路径处理、属性查询

JSON

解析、生成、嵌套操作、文件读写

正则表达式

匹配、替换、提取、分组、分割

Windows API

窗口操作、系统调用、原生 API 封装

JS 引擎库

轻量脚本引擎,Y++ 与 JavaScript 双向互调

编码转换

UTF-8、GBK、GB2312、UTF-16 互转

网络通信

TCP / UDP 客户端与服务器

调试工具

日志、断言、性能计时、内存监控

热键

全局/应用热键注册与监听

扩展类库

WebSocket、定时器、对象类、COM 自动化

右键菜单

创建菜单、子菜单、菜单项回调与绑定控件

布局库

锚点、停靠、自动布局与窗口尺寸自适应

子类化美化

ListView / TreeView / 进度条等控件的样式增强

* 以上为常用标准库展示,实际以 IDE 内命令库为准

IDE 功能

不仅是语言,还包含完整开发工作流

工程管理

多窗口项目 source/ui/resources 项目树 一键新建

代码编辑体验

拼音补全 参数提示 语法高亮 查找替换

可视化设计器

拖拽控件 属性面板 事件绑定 撤销/重做

编译体系

MSVC/MinGW 增量编译 缓存复用 详细构建输出

运行与调试

断点调试 变量查看 输出面板 快速重复运行

编译器设置

引擎路径 目标平台 静态/动态链接 主题与外观

工作原理

从中文代码到可执行程序

1

编写代码

使用全中文命令编写程序,可视化设计器拖拽搭建界面

2

智能编译

内置编译器完成词法分析、语法解析与代码优化,支持增量编译

3

原生程序

生成原生 Windows 可执行程序(.exe),无需运行时,直接双击运行

立即下载 Y++ YStudio

免费使用,开箱即用,无需安装额外依赖

当前版本 v1.0.0.3
累计下载
IDE 支持平台 Windows 10
IDE 架构 x64(64位)
生成程序兼容系统 Windows 7 SP1 及以上
下载 64 位版本 v1.0.0.3

* 当前仅提供 Windows 10 64 位 IDE;生成的程序可兼容 Windows 7 SP1 及以上系统

文档与资源

从入门到进阶,全面的学习资料