让我们设计一门编程语言吧(1)

来源:互联网 发布:freebsd安装软件 编辑:程序博客网 时间:2024/05/17 18:03


0 .题记:
     
学了这么多年计算机语言,写过许多行代码,总是在别人制定的规则内溜达;何不自己设计一门编程语言,来为这个多姿多彩的世界添点东西呢?
    
那好,开始我们的旅程吧!
    
编程语言有很多种,汇编、FortanPascalBasicCC++JavaC#PythonRubyPHP JavaScript...我们很容易就能列出一个长长的清单,每一种语言都有自己的优点和不足,每一种语言有经历着快速或缓慢的变迁,那我们该从何入手 呢?
    
如果说最简单的语言莫过于数学符号(计算机一开始就是为了计算为目的的),那么最简的语言莫过于数学运算的表达式了,例如:
      15 * 12 + 20 + sin(1.0)     (1)
      13 / 4 + 5 * cos(2)             (2)
    
也许这个太简单了吧,很多看过《编译原理》的人就会拿出第一章的范例告诉我们该怎么实现,是阿,这个的确没什么门槛,看来我们需要找个方向了...

1. 题目很快就来了

由于历史的原因, 计算机领域有各种各样格式的数据文件(如Word/Excel/Txt...),由不同操作系统上的应用程序产生,其类型数不胜数。为了一些行业应用,我们不得不开发相应的应用程序,用来解析这样千几百怪的文件,我们该如何去做呢?

2. 解药

假若某一个机构开发了一个模块,用来解析有限的几种文件格式,那们会采用什么方式呢?下面的图是其中一种模式:

SDT

   




1 文件格式的解析

       如图所示,Data Process Platform定义了解析各类文件的动态库公共的接口,对于每一类文件格式的解析,我们只需要遵循相应的接口规范,就能开发出相应的模块,从而达到多类数据文件解析的目的。

       似乎问题几经解决了,这个世界又风平浪静了。但是问题出现了

a)       所有的这些动态库和平台归根结底要在具体的一种操作系统上运行,那么如果考虑到跨平台,那么该如何解决?

b)      文件的格式千奇百怪,又如何定义一种通用的接口来抽象这种复杂性呢?

c)       当文件种类很多的时候,能否有一种办法降低开发门槛和开发周期,能快速有效的达到目的呢?

 

也许答案很简单:

a)       使用跨平台的计算机语言如Java,降低与操作系统的依赖性

b)      我们用数据库的表格来抽象和存储文件的信息,减少接口的复杂度<即文件系统中文件的内容完全可以用数据库表格中的字段进行描述>

c)       需要培养专门的程序员对该类跨平台的编程语言进行学习

好像问题又解决了,我们是可以通过这些方式解决这样的问题。

不错,让我们想想还有更好的办法吗?