`
angeloce
  • 浏览: 71765 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Pyke可以做点什么吃?

    博客分类:
  • Pyke
阅读更多

Pyke was primarily designed to allow you to "cook" your Python code. You write Python code, and then you write Pyke code to cook that Python code -- i.e. to assemble the Python functions that you've written and customize them for a specific situation or use-case.

 

Pyke can also be used for difficult decision making applications where each part of the problem has multiple possible solutions and the selection of a solution to one part of the problem affects whether another part of the problem can be solved or not. Examples of these kind of applications are listed on the home page .

 

Pyke用来“烹调”(“cook“)你的Python代码。写下Python代码后,可以使用Pyke来“烹制”下——就是说编辑你的Python函数并且为了专门的场合和使用情况设置它们。

Pyke也可以用在编写应用时的困难取择:问题的每个部分都有多种解决方法,这些解决方法还有可能影响到问题的其它部分。

您中间倒是断个句啊……

 

Cooking Your Python Code

Cooking your Python code is a form of meta-programming, or writing programs that manipulate other programs. I.e., it's a means of programming in the large .

Thus, Pyke provides a way to directly "program in the large", which dovetails with using Python to "program in the small". Pyke supplements but does not replace Python!

Pyke helps programmers to achieve order of magnitude improvements in:

  • Adaptability/Customization
    • Using Pyke allows your Python code to be combined into thousands of different configurations.
    • Thus, your application or library takes on the characteristics of a Domain Specific Language to achieve an order of magnitude increase in adaptability without a corresponding increase in your program's "surface area" to your users.
  • Performance
    • Thinking of your application or library as a Domain Specific Language (DSL), you're using Pyke to "compile" rather than "interpret" your DSL to achieve an order of magnitude improvement in performance.
  • Code Reuse
    • Making your code an order of magnitude more adaptable and an order of magnitude faster allows it to be (re)used in a correspondingly broader range of situations.

烹制Python代码实质是“元编程”的一种形式,或是写段程序来处理其它程序。例如,去看看什么是programming in the large 和programming in th small……
因此Pyke提供了直接“program in the large"的方法,与用Python来“program in the small"的思想是吻合的。Pyke是对Python的补充,而不是想去替代它。
Pyke帮助程序员完成了以下的改进:
  • 适应性/用户化   
                       使用Pyke可以Python代码合并进大量的不同配置中;
                        因此你的程序或者库应具有一个域特定语言(DSL)的特性来在适应性上得到快速增强,而不是使你的用户看起来它 们 在增强。
  • 性能
                       把你的程序和库想象成DSL,使用Pyke“编译”而不是“解释”你的DSL来取得性能上的大量改进。

  • 代码重用
                       使你的代码更具适应性,更有效率,保证在相当大范围的情况下可以重用。


Examples of Cooking Python Code

Database Access Library

You're writing a library package to make it easier for Python programmers to access relational databases. You write Python code that deals with the mechanics of accessing relational databases, and then you write Pyke code to make a cooked version of this code for each database access with your user's application.

You might also use Pyke to provide help installing and configuring the database and help creating the schema.

By taking this approach, your library will be an order of magnitude faster than competing database access libraries because you've used Pyke to essentially compile custom code for each database access.

The sqlgen example demonstrates this approach.

 

数据库存取库

你写了一个库包使得Python程序可以容易地读取对应的数据库。你用Python写了存取相应数据库方法的代码,然后编写Pyke代码制造了每个数据库存取过程的代码成熟版本。

你可能也用Pyke提供安装和配置数据库和创建模式的帮助。采取这种方式,你编写的库包会比其它库包快很多因为你使用了Pyke对每个数据库存取过程进行了根本的编译。

sqlgen的例子证明了这点。

 

 

HTML Templating Library

Or you're writing an HTML templating package to make it easier for Python programmers to generate HTML. You write Python code that deals with the mechanics of HTML, and then you write Pyke code to make a cooked version of this code for each HTML template.

By taking this approach, your library will be an order of magnitude faster than competing HTML templating libraries because you've used Pyke to essentially compile custom code for each HTML template.

The web_framework example demonstrates this approach. It uses the sqlgen example to make a little web framework. The 2 HTML templates in this example were also done in TurboGears 2 and then a siege benchmark test done on both:

  • TurboGears 2 ran 75.83 transactions/sec
  • The Pyke example ran 791.01 transactions/sec

HTML模板库

你在编写一个html模板包使Python程序员生成html更容易。用Python写下处理html的代码,然后用Pyke为每个heml模板制作一个成熟的代码版本。
采用这种方法,你的库将比别的html模板库更快因为你使用了Pyke对每个html模板都进行编译。
web_framework例子论证了这点。它使用sqlgen做了一个小的web框架。在这个例子中这两个html模板也在TurboGears2完成并进行了siege基准测试:
  • TurboGears2        75.83个事务
  • Pyke例子               791.01事务
差的多了点把……

Linux Configuration Program

Or you're writing a new Linux configuration program. You write the Python code to query and set the various system configuration options, and then you write Pyke code to ask the user what he wants and build a cooked version of your code to make the necessary changes.

In this case, you're not looking for performance. You use Pyke to handle the complicated decision making and use its plan facility to postpone making any configuration changes until your program is sure that it's "dotted all of the i's and crossed all the t's".

 

 

Linux配置程序

你在写一个新的linux配置程序,用Python来查询和设置各种系统配置属性,然后用Pyke询问用户需要什么,建立一个成熟版本。

这种情况下,不用关注性能。使用Pyke

分享到:
评论

相关推荐

    开源规则引擎Pyke研究报告

    ### 开源规则引擎Pyke研究报告知识点详述 #### 一、背景介绍 - **规则引擎起源与发展**:规则引擎的概念源自于基于规则的专家系统(Rule-Based Expert System, RBES)。这种系统是人工智能领域的一个重要分支,其...

    pyke专家系统

    5. **控制流(Control Flow)**:Pyke 提供了对规则执行顺序的控制,可以设置优先级,或者通过规则之间的依赖关系来决定执行顺序。 ### Pyke 的使用方法 1. **安装**:Pyke 可以通过 Python 的包管理器 pip 进行...

    pyke:PyKE-Python知识引擎(http

    Pyke:Python知识引擎 这是原始的镜像,可用作参考以及PyPI包的创建和维护。 一切归功于原始作者( 。 此存储库中的代码仅基于PyKE的Python 3版本,因为2020年不推荐使用Python2。因此,可能会删除与Python 2相关的...

    pyke‑1.1.1‑py2‑none‑any.whl

    离线安装包,测试可用。使用 pip install [完整包名] 进行安装

    Python Knowledge Engine (PyKE)-开源

    在PyKE中,这些规则同样可以用Python编写,并且可以附加Python函数,使得系统能够自动搜索支持或反驳某个结论的证据。这种机制使得PyKE在问题求解和推理过程中具有很强的灵活性。 **自动组装Python程序** PyKE的一...

    python规则引擎对比报告

    对pyke和pyclips引擎在功能特点、语法结构和性能表现上,做粗浅的对比。入门级、自制文档

    规则引擎-规则包导出

    这些规则可以是条件语句、逻辑判断或复杂的业务流程,它们能够自动化执行特定任务或决策。在本文中,我们将深入探讨旗正规则引擎中的“规则包导出”功能,它提供了多种方式来保存和分享规则包,以适应不同团队成员的...

    PyPI 官网下载 | pykechain-3.8.2-py2.py3-none-any.whl

    资源来自pypi官网。 资源全名:pykechain-3.8.2-py2.py3-none-any.whl

    使用 Drools 规则引擎实现业务逻辑

    - **声明式编程**:开发者可以将注意力集中在“做什么”而非“怎么做”,这样可以极大地简化代码结构,提高可读性和可维护性。 - **本地规则表达式语言**:Drools引入了一种非XML的本地语言,使得规则编写变得更加...

    PyClips性能测试

    ### PyClips性能测试知识点详解 #### 一、PyClips简介及特点 PyClips是一种基于CLIPS语言实现的Python推理引擎。它主要用于构建专家系统,并具备良好的扩展性和灵活性。PyClips的一个显著特点是其支持正向推理,即...

    选修6 Module 6 War and Peace语篇提能练习题及答案解10精选.doc

    一英寸厚的强化冰可以承受六个人的重量,四英寸厚的冰层可以抵挡枪炮的射击,甚至无法被斧头一次性砍断。这种木质材料形成了一层保护层,阻止了冰的融化,因此得名Pykrete,以提议者Geoffrey Pyke的名字命名。 当时...

    Backward-Chaining-Inference-Engine:一个推理引擎,它确定是否可以使用反向链接从知识库中给出的信息中推断出查询

    反向链接推理引擎###Description:推理引擎的实现,它将知识库和查询语句作为输入,并确定是否可以使用反向链接从知识库中给出的信息中推断出查询。 ###Input:知识库和名为 input.txt 的文本文件中的查询(要更新以...

    Irvine32.rar

    Pyke两位教授为教育目的编写的,它包含了丰富的函数,使得程序员可以方便地实现如输入输出、数学运算、内存管理等操作。该库特别适合初学者,因为它提供了清晰的接口和详尽的文档,有助于快速掌握汇编语言的基础...

    SecureCRT 5.0 注册码 .txt

    下面将对这些信息进行详细的解析,并介绍与之相关的知识点。 ### SecureCRT 5.0 软件简介 SecureCRT 是一款知名的终端模拟软件,由VanDyke Software公司开发。它支持多种协议,如SSH、Telnet、rlogin等,被广泛...

    Rule-Based-Engine-pyknow:基于Python规则引擎的决策支持系统项目-pyknow

    安装及使用要在shell pip install pyknow安装此python软件包simpy typ, pip install pyknow不是在您的代码类型中使用该软件包回购里面有什么如何设定首先下载要在您的CLI中运行回购协议的文件git clone ...

    tcpsplice:高带宽的高延迟TCP连接

    去做 监控方式 打包 (需要devscripts包) 您可以选择通过在shell提示符下键入以下命令来构建Debian软件包: $ make deb 该tcpsplice二进制将被封装在被安装/usr/sbin目录中,额外的启动脚本,并在默认的配置文件/...

    基于时间窗的分布式多级供应链资源整合建模与仿真.pdf

    通过以上总结的知识点,我们可以看到,供应链整合是一个复杂的系统工程,涉及到众多的领域知识和专业技能。而基于时间窗的分布式多级供应链资源整合建模与仿真技术,正是当前供应链管理中的一个重要课题,也是提高...

    Legendary Guides-crx插件

    (为什么任何站点都需要特定的大小写才能正常运行url,这超出了我的范围。)Update 3.0:重大更新。 -右键单击冠军将其收藏! -现在,您可以自定义点击+键打开的网站。 -点击应用中的帮助以获取帮助。 -添加了Neeko...

    sffmpeg:功能齐全的静态FFmpeg构建助手

    目前,它可以在Linux和其他POSIX系统上工作(有一些调整)。 它已在Linux / x86_64(Ubuntu 18.04)上进行了最严格的测试。 该帮助程序将获取大多数FFmpeg依赖项的最新版本,从而提供一种在同一主机上有效构建,...

    数据挖掘技术支持下网络信息安全对策探讨.pdf

    通过对海量数据的有效挖掘,不仅可以为经济社会发展提供支持,还能在保证数据安全的基础上,帮助识别和分析网络中的潜在威胁,从而制定更为有效的网络安全对策。当前,我们面临的一个重要挑战是如何在快速发展的...

Global site tag (gtag.js) - Google Analytics