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 ...
随机推荐
- visual studio no editoroptiondefinition export found for the given option nam
今天用VS 2012打开项目,打开项目时,出现以下的bug.解决方法:清理了在C盘用户文件目录下的缓存. 具体的路径是:C:\Users\{当前用户}\AppData\Local\Microsoft\ ...
- 高性能 Java 缓存库 — Caffeine
http://www.baeldung.com/java-caching-caffeine 作者:baeldung 译者:oopsguy.com 1.介绍 在本文中,我们来看看 Caffeine - ...
- 典型的NIO代码
public void selector() throws IOException { ByteBuffer buffer = ByteBuffer.allocate(1024); Selector ...
- [ACdream] 女神教你字符串——三个气球
Problem Description 女神邀请众ACdream开联欢会,显然作为ACM的佼佼者,气球是不能少的~.女神准备了三种颜色的气球,红色,黄色,绿色(交通信号灯?) 有气球还不能满足女神,女 ...
- 处理MySQL服务器无法启动的问题
MySQL数据库在升级到5.7版本后,和之前的版本有些不一样,没有data文件夹,我们都知道MySQL数据库文件是保存在data文件夹中的,网上有人说把5.6版本的data文件夹拷贝一个,这种说法听听 ...
- 队列(存储结构双端链表)--Java实现
/*用链表实现的队列--使用的是双端链表 *注意:空指针错误肯定是引用没有指向对象 * */ public class MyLinkedQueue { private MyFirstAndLastLi ...
- 聊聊pthread_cond_wait的虚假唤醒
使用条件变量时,仅仅从pthread_cond_wait返回就说条件成立是不恰当的.我们正确使用pthread_cond_wait的唯一方式是当线程被从pthread_cond_wait唤醒时,再检查 ...
- javascript 之执行环境-08
概念 执行环境(Execution context,简称EC)或执行上下文对象(后面统一用执行上下文表示),它定义了变量或者函数有权访问的其他数据,决定了他们各自的行为.是不是有点不好理解,那我先简单 ...
- 虚拟软件vmware安装
什么是虚拟软件: 虚拟原件是一个可以使你在一台机器上同时运行二个或更多Windows.LINUX等系统.它可以模拟一个标准PC环境.这个环境和真实的计算机一样,都有芯片组.CPU.内存.显卡.声卡.网 ...
- C++雾中风景1:友元类与面向对象
因为后续准备入职的公司都希望能转C++,所以最近也是按部就班的开始进行C++的学习.然后这个系列的文章打算探究C++的语言特性,也比较一下不同语言(如Java,Scala,Python,Go)之间的设 ...