首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将代码从Python转换为Smalltalk

将代码从Python转换为Smalltalk
EN

Stack Overflow用户
提问于 2012-04-23 00:40:30
回答 3查看 724关注 0票数 6

首先,我要说的是,我并不是在寻找自动的解决方案。我想把代码从Python翻译成Smalltalk,因为我注意到一些非常简单的句子可以自动翻译,例如:

将变量分配给值

Python

代码语言:javascript
运行
复制
i = 1

小谈话

代码语言:javascript
运行
复制
i := 1.

创建类的新实例

Python

代码语言:javascript
运行
复制
instance = module.ClassName()

小谈话

代码语言:javascript
运行
复制
instance := ClassName new.

A用于循环

Python

代码语言:javascript
运行
复制
for a in [0,1,2]:
  print (str(a)+str(a))

小谈话

代码语言:javascript
运行
复制
#(0 1 2) do: [: a | Transcript show: a + a; cr ]

等等(循环、条件等)。我的想法是有一个工具来翻译所有这些极端“简单”的案例,然后我可以手工完成或教授一个规则系统。

你知道有什么程序设计、翻译工具或库可以帮助我吗?

如果您还没有听说过任何工具,您将使用什么技术/模式来实现这种转换?你能提供一个链接到一个例子吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-23 06:34:50

我不知道任何这样的工具,一般情况下,它可能是复杂和/或低效的。因此,您的路径将取决于您更精确的需求:移植现有的python库,只使用smalltalk,或者编写与python相同的干净的smalltalk代码。

我会考虑的路线:

  • 保持python库的原样,并通过c接口从smalltalk调用它。
  • 在pettit解析器中实现python解析器然后:
    • 通过用户界面实现人工辅助的smalltalk生成器
    • smalltalk中的python解释器

请注意,生成器变体在一般情况下可能面临一些困难问题,例如,smalltalk有固定数量的实例变量,而在python中,您可以在运行时附加这些变量。您可以解决这个问题,但是由此产生的smalltalk代码可能不是很好。

至于在smalltalk中实现python --请看Lukas的helvetia演示文稿,它的主题是在smalltalk中包含其他语言。

票数 1
EN

Stack Overflow用户

发布于 2012-04-23 00:50:15

您需要解析Python代码,遍历解析器生成的抽象语法树并输出Smalltalk。有一篇关于班德斯基的Python的好文章,还有一篇稍早一些的这里文章。由于Python标准库公开了很多解释器的内部工具,而且文档相当全面,所以Python就比较直截了当。

票数 3
EN

Stack Overflow用户

发布于 2012-04-23 00:53:17

看看铺层,它是一个implementation实现。我主要使用它来构建Python,将其他语言转换为Python字节代码,但也有可能出现相反的情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10273513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档