我从事的一个项目,主要工作在AutoCAD,以设计和制造预制建筑组件,如屋顶桁架。我们的目标之一是重新设计一个用LISP语言编写的程序,用于设计屋顶桁架。我们将在C#中重写LISP代码,并将其逐步实现到它们所设置的当前库中。
我的问题是,我的任务是构建一个基本的LISP到C#转换器。经过一些研究(正如Google的结果很快表明,这样的事情并不存在),我开始思考如何转换这些遗留代码将更有效。用C#来分析和重写LISP代码更好,还是应该继续为AutoLISP代码开发一个基本的转换器?
发布于 2014-05-16 17:05:49
希望您刚才描述的问题域相对较小。也就是说,您正在转换的代码被限制为少数几个特定的AutoLISP函数,您不必在C#中表示整个AutoLISP语义。
如果是这样的话,我要做的第一件事就是找到一些AutoLISP代码,这些代码相当代表您想要转换的代码,然后手工转换它。理想情况下,您将发现一种允许您执行简单音译的模式;即,在AutoLISP中直接映射到用C#编写的某些函数的代码。
至少执行一次手动转换是个好主意。它将使您更好地了解翻译过程是如何工作的。您所尝试的与VB.NET到C#转换器完全不同,因为这种转换器将非常相似的语义映射为相当于语法变化的语义。
换句话说,在非常不同的两种语言之间的转换通常是手工完成的。当它以自动化的方式完成时,通常是用目标语言编写一些函数,这些函数模仿源语言中的函数,然后将这些函数拼接在一起。
https://softwareengineering.stackexchange.com/questions/240277
复制相似问题