ShoneSharp語言(S#)的設計和使用介紹
系列(1)— 開篇
作者:Shone
聲明:原創文章歡迎轉載,但請注明出處,https://www.cnblogs.com/ShoneSharp。
一、開宗立派
編程語言已經百花齊放,為什么還要開發另一個語言?難道不是重復造輪子嗎?
不管是自然語言還是編程語言,其最核心的功能都是一種表達。在常用的編程語言中,主要有以下四種表達方式:
1. 面向函數:函數是一等公民,經典如LISP、Python、F#等語言;
2. 面向過程:數據+算法=程序,經典如BASIC、Pascal、C等語言;
3. 面向對象:一切皆對象,經典如C++、Java、C#等語言;
4. 面向數據:數據層疊嵌套,經典如XML、YAML、JSON等語言;
當然上述語言以及其他未提到的語言或多或少都支持其中一到多種表達方式,每種表達方式都有一些約定俗成的語言特性,這些特性有些可以共通兼容,有些則會相互排斥。可見要設計一種語言包含所有特性其實很難,這也是為什么一談到語言,容易引起程序語言民族主義式的爭論。
本人才疏學淺、無知無畏,多年來一直在嘗試設計並開發這樣一種“面向表達”的編程語言,可以包容大多數慣用的語言特性。直至今天方才略有所成,特此分享以求進一步完善。
本人為新創立的編程語言取名為ShoneSharp(簡稱為S#),其中Shone兼有表達和炫酷之意,Sharp則表明設計出處,主要參考CSharp、FSharp(即C#、F#)。從今而后S#自成一派,號稱“炫語派”,創立祖師為Shone,歡迎各位使用和支持S#。
炫語派的立派之本是:
- S#語言心法:一切皆表達。數據即程序,程序即數據,函數、過程和對象本質都是數據的不同表達。正所謂空即色,色即空,大象無形,大音希聲,萬物歸一。
- S#語言內功:一切都是樹。與堆棧式語言不同,語法解析樹就是數據結構樹,解析時就是運行時,獨木成林,一樹一世界。
- S#語言招式:化繁為簡。所想即所得,所見即所得,語言特性盡量簡化,與已有慣用表達保持一致,無招勝有招。
開發一門語言是很困難的事情,涉及到語言設計、開發以及應用的方方面面,要介紹的內容也很多。本篇作為系列的開篇,后面將按照下面所列的大綱順序逐步進行寫作並發布,敬請期待與交流。
二、S#語言編輯器
1) 軟件下載
2) 軟件界面
3) 程序輸入
4) 語法解析
5) 查看結果
6) 高級功能
三、S#語言簡介
3.1. 基本類型
1) 數值
2) 字符串
3) 布爾值
4) 幾何類型
5) 擴展類型
3.2. 復合類型
1) 數組
2) 列表
3) 數據表
4) 自定義函數
5) 自定義類
3.3. 基本語法
1) 常量
2) 變量
3) 算符
5) 函數
6) 屬性
7) 方法
8) 公式
9) 語句
3.4. 高級語法
1) 變量作用域
2) 順序控制
3) 條件控制
4) 循環控制
5) 函數定義
6) 函數調用
7) 類定義
8) 類實例化
9) JSON式表達
8) XML式表達
四、S#語言應用
1) 數據配置
2) 文件解析
3) 二維參數化
4) 三維參數化
5) BIM信息模型
6) 軟件界面
五、S#語言展望
1) 軟件跨平台
2) 開源計划
3) 建立生態
聲明:原創文章歡迎轉載,但請注明出處,https://www.cnblogs.com/ShoneSharp。