R++是專為懶人設計的新型程式語言,它試圖融合C++和Lisp,並假定用戶是天才,允許DIY運算符和內置數據類型。它可以在Windows、Linux、Android或者IOS上運行,甚至能編譯成機器碼無作業系統裸奔。這個新玩具是綠色、免費、解釋器開源的。(編譯器暫不開源)
它的特點是:
全新JIT引擎,極致的編譯和運行速度。
精簡Lisp核心,無限的動態擴展能力。
完全開源,真正的開源不需要協定。
集成IDE,編輯、編譯、運行一體化,支持代碼自動完成。
兼容50%的C++語法,70%的C語法,編譯器本身使用C++編寫,但其90%的源碼都可以自我編譯。
。
基本介紹
- 中文名:程式R++
- 外文名:RPP
- 類別:國產開源程式語言
- 闡述:融合C++和Lisp
- 相關:專為懶人設計
- 運行環境:Windows、Linux、Android或者IOS
R+介紹,適合人群,
R+介紹
- 更徹底的類型推斷,C++11需要使用關鍵字auto,R++可以省略auto
- 語句後面的分號是可選的
- 宏自動加括弧,也不需要寫折行符號
- 空參函式的括弧是可選的
- 支持自定義新的運算符和優先權
- 更簡潔的模板寫法
- 更簡單的函式指針語法,函式指針不需要聲明
- 默認參數更靈活,默認參數可以訪問到前面的參數,也可以訪問到類的數據成員
- Lisp的S表達式和C++的中綴表達式可以混合使用,也為C++增加了一些動態特性
- 可以遞歸引用,不需要向前聲明
- 無縫內聯彙編,不需要關鍵字asm,暫存器幾乎可以當做一個整型變數使用
- 程式設計師可以隨意DIY,可以認為R++沒有內置數據類型,int也是程式設計師自定義的
- R++既可以編譯運行又可以解釋運行,靜態類型和動態類型都可以使用
- 自動處理重複包含問題,R++沒有.CPP檔案,只有.H檔案
適合人群
- 編程初學者,希望了解語言的本質
- 喜歡DIY語言的玩家
- 需要一種腳本語言,但又不習慣腳本內置的運算符優先權和數據類型
- 希望自己的程式能在手機上運行,但又不想使用Java,也不想安裝龐大的開發環境
- 喜歡DIY作業系統的玩家,R++能編譯成nasm彙編代碼,也可以使用grub引導
R++ v1.5:
- 使用PJIT(Pseudocode Just-In-Time),編譯速度大幅提高,但運行效率遠遠不如C++,不過R++將在下一版本支持RJIT(Real Just-In-Time),理論上RJIT的運行速度和C++完全相同,而編譯速度卻比C++快得多。
- 強大的元編程支持,元函式可以直接訪問實函式的變數
- 完整的反射和自省機制,解釋器和R++代碼幾乎融為一體
- 字元串常量統一使用utf8(如果需要在控制台輸出中文請參考rpp.pdf修改控制台的編碼)
- 完整的模板函式支持,模板函式不僅可以作為類的成員,還可以動態生成
- 可變參數支持
- 內部列表多改為紅黑樹,動態調用效率大幅提高
- 方便的調用外部DLL接口(R++所有數據類型和C/C++二進制兼容)
- 暫不支持跨平台和生成機器碼,如果需要這些功能請暫時使用v1.1
特性 | R++ | C++ | Java | Lisp |
模板 | √ | √ | × | × |
宏 | √ | 不太安全 | × | √√ |
運算符自定義 | √ | 僅重載 | × | 僅前綴 |
語法簡潔 | 簡潔 | 不太簡潔 | 較簡潔 | 極簡潔 |
內聯彙編 | √ | √ | × | × |
指針 | √ | √ | × | × |
元編程(非模板) | √ | ×(boost已實現) | × | √ |
動態編譯 | √ | × | √ | √ |
模組(包) | v1.1支持 | × | √ | √ |
內置並行通訊 | × | × | × | × |
依賴解釋器 | 雙運行模式 | 不依賴 | 依賴 | 依賴 |
國產 | √ | × | × | × |
R++ v1.8:
- 目前DIY作業系統一般使用gcc+nasm,R++是編譯型語言,抽象能力強過C,可直接內聯彙編,不需要面對討厭的AT&T彙編,絕對是您DIY作業系統的利器(支持GRUB從隨身碟或硬碟引導)。
- R++沒有GC,所以理論運行速度和C++一樣,可以作為lua的替代者候選。
- R++既可以編譯運行又可以解釋運行,既可以用靜態類型又可以用動態類型。語法層支持C++、JS、Lisp、python、asm混合編程,一種語言,五種語法。
- R++自由度極高,完全開源,您可以隨意DIY運算符的優先權,增加新運算符,增加修改“內置類型”,甚至於int、double這些基礎類型都是由用戶自定義的,一切由您做主。(如果您想製作屬於自己的程式語言並進入實用階段,R++將是您的最佳參考,沒有之一)
- 它的語法相當簡潔,支持N種省略語法,最大程度減少您的擊鍵次數。(R++支持類似《算法導論》的偽代碼)
- R++支持多種花括弧風格,無論是python的無花括弧風格還是K&D風格,或者是花括弧單獨占一行,隨你喜歡。
- 它是C++的山寨版,如果您習慣了C++的語法,又需要一種類似C++的腳本語言,似乎選擇R++是一個明智的決定。
- 既然它是C++的山寨版,所以R++幾乎不需要學習成本,很多C++和C的代碼經少量修改都可以移植過來,甚至能夠寫出同時兼容R++和C++的代碼。
- 又因為它是C++的山寨版,R++所有數據類型和C++二進制兼容,無論是靜態連結還是動態連結,想怎樣就怎樣。
- R++原始碼檔案可以使用任意後綴,在R++的世界裡,一切都是代碼。
- 支持中文編程是必須的。
RPP v1.86:(為避免與貝爾實驗室的R++名字衝突,從1.86開始R++改名為RPP)
- 全新JIT引擎,極致的編譯和運行速度。
- 精簡Lisp核心,無限的動態擴展能力。
- 完全開源,真正的開源不需要協定。
- 集成IDE,編輯、編譯、運行一體化,支持代碼自動完成。
- 兼容50%的C++語法,70%的C語法,編譯器本身使用C++編寫,但其90%的源碼都可以自我編譯。