Pseudo

自动算法转换
授权协议 MIT
开发语言 C/C++ Python Ruby Google Go JavaScript
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 不详
投 递 者 白星海
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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抽象语法树,然后将其转译为目标语言。

  • 总结在前: 0. 参考资料 1. 伪类和伪元素是不同的两种东西。 2. 伪类和伪元素都属于CSS选择器。 3. CSS引入伪类和伪元素是为了实现基于文档树之外的信息,i.e. 段落的第一行,的格式化。 4. 伪类和伪元素都不出现在源文件和文档树中。   伪类:一开始单单只是用来表示一些元素的动态状态,典型的是<a>的 LVHA四个状态,CSS2标准扩展了概念范围, 使其成为了所有逻辑上存在,但在文

  • 转载:  原文地址: http://blog.itpub.net/20542911/viewspace-615742/ eygle的blog中解释如下: 1.1.1.2 V$PROCESS视图 通过数据库中的v$process视图,可以找到对应于操作系统的每个进程信息: SQL> select addr,pid,spid,username,program from v$process; ADDR

 相关资料
  • 这是Web开发人员的完整参考指南,其中列出了与万维网联盟推荐的层叠样式表规范2级中定义的伪类和元素相关的所有CSS属性。 单击任何属性以查看其描述的示例 - Sr.No. 财产和描述 1 :active 使用此类可以为激活的元素添加特殊效果。 2 :focus 使用此类可在元素具有焦点时为元素添加特殊效果。 3 :hover 将鼠标悬停在元素上时,使用此类可以为元素添加特殊效果。 4 :link

  • CSS伪元素用于向某些选择器添加特殊效果。 您不需要使用JavaScript或任何其他脚本来使用这些效果。 伪元素的简单语法如下 - selector:pseudo-element {property: value} CSS类也可以与伪元素一起使用 - selector.class:pseudo-element {property: value} 最常用的伪元素如下 - Sr.No. 价值和描

  • 本文向大家介绍pseudo-class与pseudo-element有什么区别?相关面试题,主要包含被问及pseudo-class与pseudo-element有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 伪类表示已存在的某个元素处于某种状态,但是通过dom树又无法表示这种状态,就可以通过伪类来为其添加样式。例如a元素的:hover, :active等 伪元素主要是用来创建一些不存在原有

  • CSS伪类用于向某些选择器添加特殊效果。 您不需要使用JavaScript或任何其他脚本来使用这些效果。 伪类的简单语法如下 - selector:pseudo-class {property: value} CSS类也可以与伪类一起使用 - selector.class:pseudo-class {property: value} 最常用的伪类如下 - Sr.No. 价值和描述 1 :lin

  • 使地球自动旋转,并控制旋转速率。地球的自动旋转功能在默认情况下是关闭的,如果启动旋转功能,默认的旋转速率是1。 // 启用自动旋转功能,将转速设置为1(同时1也是默认的转速) controller.setAutoRotation( true, 1 ); // 如果之前开启了自动旋转功能,可以用这种方式将其关闭 controller.setAutoRotation( false );

  • gcc编译 智能指针底层 动态链接和静态链接 ros通信讲解一下,底层机制 手写单例模式代码 代码编译的过程 什么是虚拟内存 互斥锁 加锁的作用 读写锁 项目:怎么检测碰撞 面试官人很好 还给了我学习建议