自动算法转换 Pseudo

码农软件 · 软件分类 · 其他开发相关 · 2019-10-18 16:43:23

软件介绍

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

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

应用实例:

  • generate code for the same task/algorithm in different languages (parser generators etc)

  • port a library/codebase

  • develop core logic in one language and use it in other language codebases

  • write a compiler/dsl

  • bootstrap a codebase in another language / generate equivalent test suites in different languages

  • translate/support some algorithms in different languages

  • translate/support some text/data processing/command tool in different languages

安装

pip install pseudo #only python 3 supported
# probably you'd like to try the python-to-pseudo-to-js/go/etc compiler
pip install pseudo-python

用法

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

pseudo-python a.py # generates a.pseudo.yaml

然后翻译这个抽象语法树

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

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

pseudo-python a.py b.rb # or c.cs
pseudo.generate(pseudo_ast, language)

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

from pseudo import * # ok for a replprint(generate_main([
  assignment(
    local('a', 'Int'),
    call(local('g'), [to_node(0), to_node('')], 'Int'))], 'rb'))

a = g(0, '')

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

本文地址:https://www.codercto.com/soft/d/17039.html

修改代码的艺术

修改代码的艺术

Michael Feathers / 刘未鹏 / 人民邮电出版社 / 2007-09-25 / 59.00元

我们都知道,即使是最训练有素的开发团队,也不能保证始终编写出清晰高效的代码。如果不积极地修改、挽救,随着时间流逝,所有软件都会不可避免地渐渐变得复杂、难以理解,最终腐化、变质。因此,理解并修改已经编写好的代码,是每一位程序员每天都要面对的工作,也是开发程序新特性的基础。然而,与开发新代码相比,修改代码更加令人生畏,而且长期以来缺乏文献和资料可供参考。 本书是继《重构》和《重构与模式》之后探讨......一起来看看 《修改代码的艺术》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具