ShoneSharp语言(S#)的设计和使用介绍系列(1)— 开篇
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。
ShoneSharp语言(S#)的设计和使用介绍系列(1)— 开篇的更多相关文章
- ShoneSharp语言(S#)的设计和使用介绍系列(4)— 入门概述
ShoneSharp语言(S#)的设计和使用介绍 系列(4)- 入门概述 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- ShoneSharp语言(S#)的设计和使用介绍系列(3)— 修炼工具
ShoneSharp语言(S#)的设计和使用介绍 系列(3)- 修炼工具 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- ShoneSharp语言(S#)的设计和使用介绍系列(2)— 掀开盖头
ShoneSharp语言(S#)的设计和使用介绍 系列(2)- 掀开盖头 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- ShoneSharp语言(S#)的设计和使用介绍系列(11)—“类”披炫服靓妆化成“表”
ShoneSharp语言(S#)的设计和使用介绍 系列(11)—“类”披炫服靓妆化成“表” 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Sh ...
- ShoneSharp语言(S#)的设计和使用介绍系列(10)— 富家子弟“语句“不炫富
ShoneSharp语言(S#)的设计和使用介绍 系列(10)— 富家子弟“语句“不炫富 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Sho ...
- ShoneSharp语言(S#)的设计和使用介绍系列(9)— 一等公民“函数“爱炫巧
ShoneSharp语言(S#)的设计和使用介绍 系列(9)— 一等公民“函数“爱炫巧 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Shon ...
- ShoneSharp语言(S#)的设计和使用介绍系列(8)— 最炫“公式”风
ShoneSharp语言(S#)的设计和使用介绍 系列(8)— 最炫“公式”风 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSha ...
- ShoneSharp语言(S#)的设计和使用介绍系列(7)— 布尔Bool及对象Object
ShoneSharp语言(S#)的设计和使用介绍 系列(7)— 布尔Bool及对象Object 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ ...
- ShoneSharp语言(S#)的设计和使用介绍系列(6)— 字符串String
ShoneSharp语言(S#)的设计和使用介绍 系列(6)— 字符串String 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneS ...
随机推荐
- 解决执行sql脚本报错:没有足够的内存继续执行程序。
出现执行sql脚本报错:没有足够的内存继续执行程序.是因为sql脚本过大,大家可能分为多个文件多次执行,这种笨方法可行,不过比较麻烦,大家可以用下面的方式,利用sqlcmd一次就行了: 执行cmd ...
- maven基本基础知识及命令学习-1
Maven概述:Maven是很有效的项目管理工具,maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目构建.报告和文档的软件项目管理工具.统一管理环境,架包等. 一 maven下载 ...
- Java项目打包方式分析
[TOC] 概述 在项目实践过程中,有个需求需要做一个引擎能执行指定jar包的指定main方法. 起初我们以一个简单的spring-boot项目进行测试,使用spring-boot-maven-plu ...
- 版本控制之五:SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤(转)
使用场景: 假如你的项目(这里指的是手机客户端项目)的某个版本(例如1.0版本)已经完成开发.测试并已经上线了,接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时 ...
- shell 组合新的变量名
shell 组合新的变量名 普通变量 name=yushuang var=name # 要获取到yushuang res=`eval echo '$'"$var"` echo $r ...
- .NET在VS2008中生成DLL并调用
1.生成DLL 打开VS2008 - >新建->项目->类库->ClassLibrary1,在ClassLibrary1中会自动创建一个Class1类 class1中加入代码如 ...
- POJ 3468 A Simple Problem with Integers(树状数组区间更新) 续
这个题刚开始的时候是套模板的,并没有真的理解什么树状数组的区间更新,这几天想了一下,下面是总结: 区间更新这里引进了一个数组delta数组,delta[i]表示区间 [i, n] 的共同增量,每次你需 ...
- Cup
Cup Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio ...
- SSH服务详解
第1章 SSH服务 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定:在进行数 ...
- IdentityServer4实现Token认证登录以及权限控制
相关知识点 不再对IdentityServer4做相关介绍,博客园上已经有人出了相关的系列文章,不了解的可以看一下: 蟋蟀大神的:小菜学习编程-IdentityServer4 晓晨Master:Ide ...