Ring/教程/功能
外觀
< 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 框架)