Pseudo 自动算法转换开源项目

我要开发同款
诺克萨斯2016年03月15日
65阅读

技术信息

开源地址
https://github.com/alehander42/pseudo
授权协议
MIT

作品详情

Pseudo利用一个算法/一个简单程序,然后在Pytho,JavaScript,C#,Go和Ruby中生成为惯用代码。

Pseudo实现两层翻译:它采取目标语言的语法,可以使用Y语言的本地标准库表达出X语言的标准库的方法/API。

应用实例:

geeratecodeforthesametask/algorithmidifferetlaguages(parsergeeratorsetc)

portalibrary/codebase

developcorelogicioelaguageaduseitiotherlaguagecodebases

writeacompiler/dsl

bootstrapacodebaseiaotherlaguage/geerateequivalettestsuitesidifferetlaguages

traslate/supportsomealgorithmsidifferetlaguages

traslate/supportsometext/dataprocessig/commadtoolidifferetlaguages

安装

pip istall pseudo #oly pytho 3 supported# probably you'd like to try the pytho-to-pseudo-to-js/go/etc compilerpip istall pseudo-pytho

用法

你可以在Pytho中直接使用Pseudo-Pytho生成Pseudo抽象语法树。

pseudo-pytho a.py # geerates a.pseudo.yaml

然后翻译这个抽象语法树

pseudo a.pseudo.yaml go # or ruby / js / csharp / py / cpp

或者你也可以直接从pytho翻译成另一种语言

pseudo-pytho a.py b.rb # or c.cspseudo.geerate(pseudo_ast, laguage)

为了快速实验,使用geerate_mai更容易生成

from pseudo import * # ok for a replprit(geerate_mai([  assigmet(    local('a', 'It'),    call(local('g'), [to_ode(0), to_ode('')], 'It'))], 'rb'))a = g(0, '')

未来的Pseudo可以添加一个Lisp的DSL用于快速手动创建抽象语法树的节点,但目前它的主要目标更加有用:消耗自动生成的pseudo抽象语法树,然后将其转译为目标语言。

功能介绍

Pseudo利用一个算法/一个简单程序,然后在Python, JavaScript, C#, Go 和 Ruby 中生成为惯用代码。 Pseudo实现两层翻译:它采取目标语言的语法,可以使用Y语...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论