ShoneSharp語言(S#)的設計和使用介紹系列(1)— 開篇

来源:http://www.cnblogs.com/ShoneSharp/archive/2017/12/01/ShoneSharp-1.html
-Advertisement-
Play Games

本人多年來一直在獨自設計並開發一種“面向表達”的編程語言——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#。

炫語派的立派之本是:

  1. S#語言心法:一切皆表達。數據即程式,程式即數據,函數、過程和對象本質都是數據的不同表達。正所謂空即色,色即空,大象無形,大音希聲,萬物歸一。
  2. S#語言內功:一切都是樹。與堆棧式語言不同,語法解析樹就是數據結構樹,解析時就是運行時,獨木成林,一樹一世界。
  3. 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。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 瞭解一個語言最好的方式就是在編輯器中按照語法規則輸入代碼,然後運行並查看結果是否符合預期。本博文內容非常重要,承上啟下,不但公開了S#語言的所有武功招式——語法規則,並提供了練功的基礎工具——編輯器,統統都是乾貨呀。 ...
  • 在C#的字元串,其中有許多空格,現要求是把多餘的空格去除保留一個。原理是使用Split()方法進行分割,分割有一個選項是RemoveEmptyEntries,然後再把分割後的字元串Join起來。 string string1 = "AAaaA Oopps 32 211 44.8 69 15.9 C# ...
  • 最近學習數據驅動UI,瞭解到INotifyPropertyChanged這個介面的用法,看了很多網上的文章,自己作了一個總結。 INotifyPropertyChanged這個介面其實非常簡單,只有一個PropertyChanged事件,如果類繼承了這個介面,就必須實現介面。用VS的提示,就是補充了 ...
  • RoutData.values[Key] 只能獲取路由定義中的數據,url參數的數據不包含在裡面 https://i.cnblogs.com/EditPosts.aspx?opt=1 路由:功能變數名稱到?之間 -->EditPosts.aspx URL參數:?之後 -->opt=1 修改路由規則後 ...
  • 鏈接的地址,可以根據路由規則動態生成,不用寫死,文檔結構有變化時,依然可以找到正確的路徑 1.url.Action(只生成URL) 有很多重載方法,可以根據需要選擇,生成URL時,會根據路由規則生成,不過調用時也是根據路由規則定址,所以OK 2.Html.ActionLink(生成整個Link標簽) ...
  • 你有一個函數,其中完全取決於參數值而採取不同行為。針對該參數的每個可能值,建立一個獨立的函數。 ...
  • Nginx集群可以實現基於Http Basic身份驗證,通過輸入用戶、密碼,經過SSL協議的HTTPS,從而實現有效的身份驗證並訪問相應的WebApi。當然,訪問的方式不僅僅基於Http Basic一種,還可以通過令牌token的方式進行訪問,又或者基於redis實現單點登錄的訪問,本文主要講述的是... ...
  • 先看下麵的這組字元,如果輸出來,它是無法靠右對齊: string[] s1 = { "300", "5", "54210", "6300", "88" }; foreach (string s in s1) { string s2 = s; Console.WriteLine(s2); } C#的處 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...