私信  •  关注

David Thornley

David Thornley 最近创建的主题
David Thornley 最近回复了
13 年前
回复了 David Thornley 创建的主题 » 为什么不可能创建一个实用的Perl-to-python源代码转换器?

从根本上讲,这是两种不同的语言。从一个转换到另一个,并且结果大部分是可读的,这意味着软件必须能够识别和生成代码习语,并且能够进行一些静态分析。

一个程序的意义可以由语言定义精确地定义,但是程序员不一定需要所有的细节。C程序员测试值A printf() 返回的is负数是检查错误条件,通常不关心确切的值。 if (printf("%s","...") < 0) exit(); 可以翻译成Perl print "..." or die(); . 这些语句的含义可能并不完全相同,但它们通常是程序员的意思,为了从惯用Perl或C代码创建惯用C或Perl代码,转换器必须考虑到这一点。

由于不同的计算机语言对于相似的事物有着不同的语义,所以通常不可能将一种语言翻译成另一种语言,并以可读的形式给出完全相同的含义。为了创建可读的代码,翻译器需要理解程序员打算做什么,这是非常困难的。

此外,从python转换为perl比从perl转换为python更容易。python是一种直截了当的语言,有明确的标准方法来做事情,而perl是一种过于复杂的语言,它的座右铭是“有不止一种方法可以做到这一点”。将python表达式转换为无数个对应的perl表达式之一比弄清perl程序员的意思和表达在蟒蛇中。