跳到內容

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 框架)


華夏公益教科書