第四个实现,可以与金字塔一起传递程序作为URL

fourlth的Python项目详细描述


fourlth表示forth中的url。forth是第三代编程语言 1970年代早期由查尔斯·摩尔在IBM 1130上创建。他认为这更像是第四代 如果不是1130上的文件名只能是 当时长五个字。因此,forth

forth使用堆栈来维护执行状态,这会造成很大的工作量,而且或多或少会显式地使用堆栈。因为它 面向堆栈,rpn(反向波兰符号)自然地用于编写程序。

此模块在pythonpyramid环境中工作,使用遍历将url解码为forth程序。 而实际的forth程序将两个数字相乘,然后将它们平方,可能看起来像这样:

12 27 * dup *

等效的fourlth“程序”看起来就像一个url:http://fourlth.com/12/27/*/dup/*

与棱锥体的交互作用

fourlth解释器类的设计工作方式类似于金字塔遍历resource,因此 有一个__getitem__方法,以及一旦“程序”有了 已解码并准备运行。

默认视图只返回一个json对象,该对象包含与 不管在执行结束时堆栈的顶部是什么。如果堆栈为空,则该值为null。 为了演示和调试的目的,还包括另外两个视图可调用项。

金字塔遍历算法他将扫描这个url的PATH_INFO部分,调用 资源的__getitem__方法查找每个元素。但是,不是返回结果 查找时,元素被合并到被伪编译的“程序”和资源本身中 又回来了。

在定义新词的地方,返回的资源实际上是一个新的fourlth解释器实例 这将嵌入到当前版本中。或多或少相同的方案用于if-else-then和 循环结构。

为什么要麻烦?

我们的想法是想出一种方法来创建高度定制的服务器端功能,安全地,可以 在web应用程序中快速设计和部署。具体来说,我想有一个简单的查询 能够访问基因表达数据(微阵列或RNA序列)和元数据的引擎,这些数据是一个更大的, 基于web的应用程序。例如,我们的想法是能够通过符号来搜索基因,然后找出 如果有的话,数据集有这些基因的表达信息。这样的查询可能如下所示:

http://fourlth.net/Gata5/Myb/genesearch/ANY/datasetsearch/metadata

可能会返回:

{ 'genes': ['Gata5', 'Muyb'], 'datasets': ['hiltonlab' { 'celltypes:' [...] }, ...] }

然后,客户端逻辑可以使用这个json对象动态地填充web。

除了构建查询功能之外,我还构建了几个分析工具。 理论上,还可以通过rpy2模块合并r解释器,但是 这必然会增大应用程序服务器端部分的大小。要小心 做这个的时候。

致谢

这些站点可作为此实现中包含的功能的参考:

作者

Nick Seidenman <seidenman@wehi.edu.au> Molecular Medicine Walter and Eliza Hall Institute Parkville, VIC Australia

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是IO流上的通道包装器吗?   如何向java添加助记符。awt。菜单   使用Apache Commons电子邮件库在Java中发送电子邮件时发生身份验证错误   java在处理更新时合并到文件中   java格式化双精度且不舍入   java Freemarker有没有办法将整数格式化为浮点数?   在Grails Spring数据应用程序中混合java和groovy代码时出错   Java NIO将文件移动到共享位置   在Java中,main方法返回值64而不是100。为什么会这样?   javac java错误:无法找到或加载主类ass1。插入   如何在从客户机(Java、Socket)接收特定消息时自动返回响应   在安卓上创建两次java活动   java Comed+selenium。客户端通信不稳定   java想将值发送到cmd,不知道命令或如何发送   java如何将SQL查询转换为JSON数组   用Java绘制多段线的图形   私有Java setter不会更改整数的值   java CWWMQ0062E:从IBM队列连接工厂启用SSL时接收错误   在运行时更改java swing中的语言   java Android Eclipse在执行时“未找到源”