跳到内容

Ring/教程/功能

来自维基教科书,开放世界中的开放书籍

Ring 语言具有以下功能

.. tip:: 首个版本的其中一个主要目标是创建一个可用于生产的实用语言!

  • 免费开源(MIT 许可证)
  • 解释器 - 混合实现(编译器 + 虚拟机)
  • 面向对象编程之上的声明式编程
  • 语句没有显式结束(不需要 ; 或 ENTER)
  • 一种小语言(大约 100,000 行代码)

* 编译器 + 虚拟机是 15,000 行 C 代码 * 其他 85,000 行代码与库相关! * 10,000 行 C 代码 * 50,000 行 C++ 代码 * 25,000 行 Ring 代码

  • 用 ANSI C 编写(代码是生成的)
  • 使用可视化编程(PWCT)开发
  • 可选的打印令牌/语法/字节码以供执行期间使用
  • 可移植(Windows、Linux 和 Mac OS X)
  • 注释(单行和多行)
  • 不区分大小写
  • 动态类型
  • 弱类型
  • 词法作用域(全局、局部和对象状态)
  • 函数内部变量的默认作用域(局部)
  • 函数外部变量的默认作用域(全局)
  • 垃圾收集器 - 自动内存管理(逃逸分析和引用计数)
  • 结构化编程
  • 丰富的控制结构和运算符
  • For in 按引用获取项目而不是值,您可以读取/编辑项目
  • 使用 exit 从多个循环中退出
  • 过程/函数
  • 主函数(可选)
  • 在定义之前调用函数
  • 递归
  • 多行文本
  • 按索引访问(读/写)字符串字母
  • 列表索引从 1 开始
  • 没有关键字来结束函数/类/包
  • 范围运算符,例如:1:10 和 "a":"z"
  • 一等公民变量、列表、对象和函数
  • 按值存储/复制列表/对象(深拷贝)
  • 按引用传递列表/对象
  • 原生面向对象支持

* 封装 * 设置器/获取器(可选) * 私有状态(可选) * 实例化 * 多态性 * 组合 * 继承(单继承) * 运算符重载 * 包

  • 使用 { } 访问对象并使用属性/方法作为变量/函数
  • 反射和元编程
  • 清晰的程序结构(语句、然后是函数、然后是包和类)
  • 异常处理
  • Eval() 用于在运行时执行代码
  • 8 位干净,直接在二进制数据上工作
  • I/O 命令
  • 数学函数
  • 字符串函数
  • 列表函数
  • 文件处理函数
  • 数据库支持(ODBC 和 MySQL)
  • 安全函数(OpenSSL)
  • 互联网函数(LibCurl)
  • CGI 库(用 Ring 编写)

* HTTP Get * HTTP Post * 文件上传 * Cookie * URL 编码 * HTML 模板 * HTML 特殊字符 * 使用函数生成 HTML * 使用类生成 HTML * CRUD 示例(使用 MVC) * 用户示例(注册、登录和检查)

  • 使用 C/C++ 扩展(简单 API)
  • 在 C/C++ 程序中嵌入语言
  • 附带代码生成器(用 Ring 编写),用于快速包装 C/C++ 库

* 用于通过创建 RingAllegro 来支持 Allegro * 用于通过创建 RingQt 来支持 Qt

  • 创建 2D 游戏(使用 Allegro 库)
  • 为桌面和移动设备创建 GUI 应用程序(使用 Qt 框架)


华夏公益教科书