一:因工作需要一直在做不同平台间的代码移植,从最开始的对照旧系统代码手动翻译成新系统代码,到借助简单工具构建的编码框架,再到手动编写代码转换工具。手动编写代码转换工具经历了从截取文件字符串,在到借助语法分析工具转换代码。转换始终是按照就语言的语法规则一行对一行的方式翻译。

迁移的规则:新系统的功能和旧系统功能相同,使新系统和旧系统无缝迁移。

行对行的翻译导致了因编程语言的差异,为了和旧语言的功能,将新系统语言封装成和旧系统编程语言功能相同的编码,因此产生了如下的问题:

1:新系统封装导致了新系统的编码风格和特征和旧系统很像。从而形成新语言封装成了旧系统的语言风格。

2:新系统封装了大量处理,封装的内部执行占用的大量的运行时间,导致了新系统运行效率降低。

3:新系统封装实现了旧系统特有的操功能,该功能和旧语言的功能相同,在使用新语言编程时,必须了解旧语言的功能才能正确理解代码功能,大大提高了学习和维护成本。

因上述种种原因,行对行翻译并不是客户最佳需求,客户更想转换后的代码编码按照新语言的编码规范进行转换。

为了实现将旧系统语言转换成新系统的新开发语言,并符合新语言的编码规范,在转换过程中转换过程在摸索前进,没有转换后的目标和转换的规则和转换的制定规则指导思想。

转换的思想是:分析旧语言编码规范和功能,将其成新语言。其中使用到了:分析,分类,归类,转换,生成的功能,该功能符合数学上的拓扑学的思想。可以将拓扑学做为转换的数学指导思想。

作为指导思想的可行性分析:

1:先看一个示例:

 

 

 

左右两个图片是否为同一个图形,从在通常状态下的是两个完全不同的图形,但是在拓扑学结构中他们两个是同一个图形,这里使用到拓扑学中的同胚的概念。具体的转换过程参照拓扑学相关资料,本处只说明简要步骤:

1:抽象,2:变形,3:回复。

同理:使用工具进行代码转换也是这个过程,解析代码,转换代码,生成新代码。该过程和上述拓扑学中变化过程完全切合,所有可以使用拓扑学做工具转换的数学理论基础。

二:为什么要用数学的方式进行分析,因数学还有自身的严谨性,抽象性。

* 笔者文笔有限,必备强求文字逻辑,做说明问题即可。