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 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来取得性能上的大量改进。
使你的代码更具适应性,更有效率,保证在相当大范围的情况下可以重用。
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的例子证明了这点。
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事务
差的多了点把……
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研究报告知识点详述 #### 一、背景介绍 - **规则引擎起源与发展**:规则引擎的概念源自于基于规则的专家系统(Rule-Based Expert System, RBES)。这种系统是人工智能领域的一个重要分支,其...
5. **控制流(Control Flow)**:Pyke 提供了对规则执行顺序的控制,可以设置优先级,或者通过规则之间的依赖关系来决定执行顺序。 ### Pyke 的使用方法 1. **安装**:Pyke 可以通过 Python 的包管理器 pip 进行...
Pyke:Python知识引擎 这是原始的镜像,可用作参考以及PyPI包的创建和维护。 一切归功于原始作者( 。 此存储库中的代码仅基于PyKE的Python 3版本,因为2020年不推荐使用Python2。因此,可能会删除与Python 2相关的...
离线安装包,测试可用。使用 pip install [完整包名] 进行安装
在PyKE中,这些规则同样可以用Python编写,并且可以附加Python函数,使得系统能够自动搜索支持或反驳某个结论的证据。这种机制使得PyKE在问题求解和推理过程中具有很强的灵活性。 **自动组装Python程序** PyKE的一...
对pyke和pyclips引擎在功能特点、语法结构和性能表现上,做粗浅的对比。入门级、自制文档
这些规则可以是条件语句、逻辑判断或复杂的业务流程,它们能够自动化执行特定任务或决策。在本文中,我们将深入探讨旗正规则引擎中的“规则包导出”功能,它提供了多种方式来保存和分享规则包,以适应不同团队成员的...
资源来自pypi官网。 资源全名:pykechain-3.8.2-py2.py3-none-any.whl
- **声明式编程**:开发者可以将注意力集中在“做什么”而非“怎么做”,这样可以极大地简化代码结构,提高可读性和可维护性。 - **本地规则表达式语言**:Drools引入了一种非XML的本地语言,使得规则编写变得更加...
### PyClips性能测试知识点详解 #### 一、PyClips简介及特点 PyClips是一种基于CLIPS语言实现的Python推理引擎。它主要用于构建专家系统,并具备良好的扩展性和灵活性。PyClips的一个显著特点是其支持正向推理,即...
一英寸厚的强化冰可以承受六个人的重量,四英寸厚的冰层可以抵挡枪炮的射击,甚至无法被斧头一次性砍断。这种木质材料形成了一层保护层,阻止了冰的融化,因此得名Pykrete,以提议者Geoffrey Pyke的名字命名。 当时...
反向链接推理引擎###Description:推理引擎的实现,它将知识库和查询语句作为输入,并确定是否可以使用反向链接从知识库中给出的信息中推断出查询。 ###Input:知识库和名为 input.txt 的文本文件中的查询(要更新以...
Pyke两位教授为教育目的编写的,它包含了丰富的函数,使得程序员可以方便地实现如输入输出、数学运算、内存管理等操作。该库特别适合初学者,因为它提供了清晰的接口和详尽的文档,有助于快速掌握汇编语言的基础...
下面将对这些信息进行详细的解析,并介绍与之相关的知识点。 ### SecureCRT 5.0 软件简介 SecureCRT 是一款知名的终端模拟软件,由VanDyke Software公司开发。它支持多种协议,如SSH、Telnet、rlogin等,被广泛...
安装及使用要在shell pip install pyknow安装此python软件包simpy typ, pip install pyknow不是在您的代码类型中使用该软件包回购里面有什么如何设定首先下载要在您的CLI中运行回购协议的文件git clone ...
去做 监控方式 打包 (需要devscripts包) 您可以选择通过在shell提示符下键入以下命令来构建Debian软件包: $ make deb 该tcpsplice二进制将被封装在被安装/usr/sbin目录中,额外的启动脚本,并在默认的配置文件/...
通过以上总结的知识点,我们可以看到,供应链整合是一个复杂的系统工程,涉及到众多的领域知识和专业技能。而基于时间窗的分布式多级供应链资源整合建模与仿真技术,正是当前供应链管理中的一个重要课题,也是提高...
(为什么任何站点都需要特定的大小写才能正常运行url,这超出了我的范围。)Update 3.0:重大更新。 -右键单击冠军将其收藏! -现在,您可以自定义点击+键打开的网站。 -点击应用中的帮助以获取帮助。 -添加了Neeko...
目前,它可以在Linux和其他POSIX系统上工作(有一些调整)。 它已在Linux / x86_64(Ubuntu 18.04)上进行了最严格的测试。 该帮助程序将获取大多数FFmpeg依赖项的最新版本,从而提供一种在同一主机上有效构建,...
通过对海量数据的有效挖掘,不仅可以为经济社会发展提供支持,还能在保证数据安全的基础上,帮助识别和分析网络中的潜在威胁,从而制定更为有效的网络安全对策。当前,我们面临的一个重要挑战是如何在快速发展的...