要说我这样的人是真喜欢自己造轮子,一点也没错。接触代码刚刚两年多一点,什么微软谷歌干过的事情我都会去亲自尝试一遍,像自己制作一个图形界面的操作系统、自己实现一套独立的图形库、使用OpenGL封装一个比unitiy菜许多的3D引擎这样子的事情我都做得津津有味。现在,我又开始自己研发新的语言了。考虑到实用性,最终我还是决定将这个SGS语言作为SGL图形库的专属脚本语言。

SGS(Super Graphic Script),从名字就可以看出其和SGL的关联。所以,在这个语言的一些特性的设计上,我就会着重考虑使用它进行图形界面编程的实用性。

这款语言的设计初衷是希望打造一款接近于英语的编程语言,所以很多语言特性都跟英语很接近。为什么不是汉语呢?原因很简单,道理不在编码的难易,主要在于汉语的分词是无法简单实现的。英语中单词之间用空格间隔,但是汉语的单词之间并没有什么间隔。所以对于完整的一句话,计算机该如何分割成为了很大的难题。如果这个问题可以解决,那么汉语编程就很快会出现。那么我们继续说英语编程的事情,越接近英语,那么使用的符号就越少,多为逗号句号这样常见的标点符号。同样地,SGS语言里削减了绝大部分编程符号的使用,主要以逗号句号为主。

下面举几个例子:像编程中最常见的声明并赋值,以C为例,写作“int a = 0;”。那么,在SGS中,同样含义的句子要写作“let integer a be 0.”也许大家会觉得这样阅读代码会更加吃力,不过事实上并不会。在加入合适的高亮之后,代码的阅读跟其他语言相比不会逊色。于是乎,凭着这样一个想法,这个语言就这样慢慢地被设计了出来。综合考虑到各种编程语言的优点,像什么面向对象、动态绑定、函数式编程这样的种种优点,都会慢慢地加入SGS语言中。对于SGL图形库来说,较为常见的就是绘图函数了,比如putBmp("back.bmp", 0, 0);这样的,这种操作使用一句SGS语言就可以完成。因为SGS是解释器语言,所以它的每一句都是可以单独运行的,不必和C一样整个代码文件放在一起才能编译运行。这样的好处很明显,就是我们可以很容易地将整个程序分成若干个部分,逐个部分完成,最后再拼接到一起。

除了SGS本身的特性之外,这个解释器还将嵌入我的另一个项目(RWE)中,就是一款三维的继承开发环境。在这个开发环境中,我们可以将SGS语言的运行结果显示在一块虚拟的屏幕上来进行调试,从而更方便我们编写图形界面的程序。

当然,如果SGS真的实现了上述全部的期望,那当然可以继续对它委以重任,比如对数据处理这样的任务也可以使用SGS来完成。不过,SGS终究也只是script,是以启发式为根本的编程脚本语言,与C这样的基础编程语言还是不能比较的。接下来,我会尽力将现有的设计加以实现,让SGS为编程世界带来更多的便利。

SGL专用语言SGS开发灵感相关推荐

  1. 会c 学plc编程语言,想学PLC编程?先弄清5种PLC专用语言!

    PLC目前有5种标准的编程语言,包含图形化编程语言和文本化编程语言. 图形化编程语言包含:梯形图(LD-Ladder Diagram).功能块图(FBD - Function Block Diagra ...

  2. 自动化学计算机语言先学什么,要入门PLC编程 先搞清这5种专用语言

    原标题:要入门PLC编程 先搞清这5种专用语言 PLC,(Programmable Logic Controller),乃是一种电子装置,早期称为顺序控制器"Sequence Control ...

  3. 领域专用语言(DSL)简介

    原文地址:http://blog.csdn.net/u010278882/article/details/50554299 主要回答几下几个问题  1 什么是 DSL  2 为什么使用 DSL  3 ...

  4. 深入体验c语言项目开发 光盘,深入体验C语言项目开发

    c语言是当今使用最为频繁的编程语言之一,一直在开发领域占据重要的地位.<深入体验C语言项目开发>通过10个综合实例的实现过程,详细讲解了c语言在实践项目中的综合运用过程.这些项目从作者的学 ...

  5. 发布至今18年,为什么SQLite一定要用C语言来开发?

    C语言是最好的 \\ SQLite在2000年5月29日发布,并一直使用C语言实现.C语言一直是实现SQLite这类软件库的最佳语言,目前还没有计划使用其他编程语言重新开发SQLite. \\ C语言 ...

  6. php大牛额城战笔记,PHP语言大牛开发笔记(8)——MySQL数据库基础回顾[2]

    本文主要向大家介绍了PHP语言大牛开发笔记(8)--MySQL数据库基础回顾[2],通过具体的实例向大家展示,希望对大家学习php语言有所帮助. 一.数据表 为了确保数据的完整性和一致性,在创建表时指 ...

  7. .Net语言 APP开发平台——Smobiler学习日志:如何快速实现类似于微信的悬浮显示二维码效果...

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 样式一 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的&qu ...

  8. 如何实现 OpenAPI 多语言 SDK 开发?

    简介:由于每个网关所对应的后端情况不同,因此没有一套元数据可以适用于所有的网关.阿里云通过重新定义一门 DSL 语言 -- Darabonba 来支持不同风格的 OpenAPI,同时支持多语言的 SD ...

  9. mixin network_基于Mixin Network的Go语言比特币开发教程 : 用 Mixin Messenger 机器人接受和发送比特币...

    基于Mixin Network的Go语言比特币开发教程 : 用 Mixin Messenger 机器人接受和发送比特币 在 上一篇教程中, 我们创建了自动回复消息的机器人,当用户发送消息"H ...

最新文章

  1. Mac打包Android的apk,[Mac][React Native][Android] 打包成apk
  2. python内置作用域_python内置金融数据Python 五点搞定作用域
  3. TPC-H生成Spark测试用的伪数据集(转载)
  4. C#图像处理基础概念知识
  5. 第二节:简易安装 和 快速入门Vue.js
  6. 2012年9月计算机二级c语言,2012 年9月 全国计算机二级c语言试题
  7. docker 远程访问_Docker 与其守护进程
  8. http服务ajax编程
  9. Python:cv2.imwrite无法存储带有中文路径图片
  10. Android Studio for Experts(Android Dev Summit2015)
  11. Oracle merge into 使用记录
  12. python 局部变量和全局变量 global
  13. jquery中object对象循环遍历的方法
  14. 12038徐波:PMBOK考试:如何压缩时间赶工和快速跟进考点汇总
  15. 俄罗斯方块菜单c语言,飞机游戏、俄罗斯方块、贪吃蛇C语言代码
  16. 【gp数据库】查询GP中某张表的分布键信息
  17. java 时间格式 外语,java-如何使用ERA设置日语的英语日期格式
  18. mac中手动切换go版本
  19. android obb在哪,.obb是什么文件?obb文件怎么用/放在哪里
  20. EasyNVR流媒体直播之:零基础实现摄像头的全平台直播 (一)内网直播的实现...

热门文章

  1. linux acpi 代码,ACPI简介 Linux
  2. 【网易笔试】被3整除的个数
  3. he系列高端服务器机柜,HE系列九折型材服务器机柜
  4. 明月浩空播放器php源码,【模板分享】明月浩空的Colorful响应式全站Pjax模板
  5. 从SharePoint 2010网站上导出list的方法
  6. STL--set介绍及set的使用
  7. 下层基础决定上层建筑
  8. Oracle 中的Top写法
  9. 打工人必学的法律知识(四)——《中华人民共和国劳动法》
  10. STM32定时器的预装寄存器及影子寄存器PSC—ARR-CCRx