本人多年來一直在獨自設計並開發一種“面向表達”的編程語言——S#,以求達到數據即程式、程式即數據的最高境界,可以包容大多數慣用的語言特性。直至今天初步成形,特此在博客園上開篇介紹,通過分享和交流進一步發揚光大。 ...
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。