问题标签 [generative-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
6675 浏览

php - 是否有用于 Javascript 或 PHP 的解析表达式语法 (PEG) 库?

我发现自己被用于描述域特定语言的解析表达式语法形式主义所吸引,但到目前为止,我发现的实现代码是用 Java 和 Haskell 等语言编写的,这些语言在我的组织的共享托管环境中对 Web 服务器不友好不得不忍受。

有谁知道任何用于 Javascript 或 PHP 的 PEG 库或 PackRat 解析器生成器?当然,可以生成 Javascript 或 PHP 源代码的任何语言的代码生成器都可以解决问题。

0 投票
2 回答
394 浏览

perl - 将 Perl 中的匿名 sub 写入文件以供以后使用

我有一个 Perl 程序,它从输入文件生成解析规则作为 subs。潜艇被匿名定义并放入散列中。现在,我想导出该哈希,以及所有子程序,然后稍后再次加载它们以用于不同的程序。

我该怎么做呢?有没有办法提取每个子的代码,或者我可以复制散列存在的内存块,然后当我稍后再次加载它时将其转换为散列?

提前致谢。

0 投票
1 回答
8103 浏览

c# - Visual Studio T4 与 CodeSmith

在过去的 2 年里,我一直在使用 CodeSmith,并且喜欢它为我所做的一切。但是,我也知道 Visual Studio 中内置的 T4,它也可以做一些很酷的事情。VS2010 T4 基于与朋友的对话 T4 会更好。

所以问题是:我是继续乘坐 CodeSmith 巴士,还是该开始将我所有的模板转换为 T4 了?

更新 也许我问这个问题的方式不清楚。显然,在新模板正常工作之前,我不会删除我的 cs 模板并停止使用它们。但是,在这一点上是否值得付出努力?在这一点上,T4 是否比 CodeSmith 提供了一个完整的优势?是否有一些功能或一组功能可以通过为 T4 编写模板来代替我的效率提高 100 倍?

0 投票
2 回答
917 浏览

regex - 生成正则表达式

通常在我们的工作中,我们在捕获匹配操作中使用正则表达式。

但是,可以使用正则表达式(至少手动)来生成与正则表达式匹配的合法句子。当然,有些正则表达式可以匹配无限长的句子,例如表达式.+

我有一个问题可以通过使用正则表达式句子生成算法来解决。

在伪代码中,它会像这样运行:

什么算法会为我执行此操作?

0 投票
1 回答
266 浏览

python - 为子类自动生成方法

我有几十节课。这是其中的两个:

这是ABC:

我遇到的问题是子类中的所有to_*方法都遵循相同的模式,实现它们变得乏味。如果可能的话,我想自动生成它们ClassABC,但到目前为止我失败了。我还尝试为子类创建一个类装饰器,但这也不起作用。然而,我已经设法使用 exec() 自动生成每个子类中的方法,但我宁愿让 ABC 生成它们或使用类装饰器。有没有办法做到这一点?

注意:所有类都在它们自己的单独模块中

0 投票
1 回答
185 浏览

machine-learning - 何时在机器学习中使用生成算法?

假设我有一个由 (x, y) 样本组成的训练集。

要应用生成算法,比如说高斯判别式,我必须假设

p(x|y) ~ Normal(mu, sigma)对于每一个可能的 sigma

或者我只需要知道是否x ~ Normal(mu, sigma)给了 y?

我如何评估 p(x|y) 是否足够好(达到阈值)遵循多元正态分布以使用生成算法?

0 投票
3 回答
3027 浏览

c++ - 实现可变类型特征

介绍

我正在寻找一种将 C++ 类型特征转换为其可变参数的模式。解决问题的方法将受到赞赏,并且自动执行任务的生成编程模式将是理想的。

例子

采取以下措施:

我想写一个像这样工作的特征:


目前的方法

实现起来非常简单are_same寻求一个通用的解决方案,我们可以为实现通用量化的任何可变特性提供一个工具:

这样例如are_same可以写成

这可能适用于创建诸如are_classes等的are_scalars特征

概括

细微的调整可以从先前的片段中给出存在量化&&(替换为||),以便我们exist_same以以下方式创建特征:

问题

上一篇关于类型特征的概括

  • 主要类型类别
  • 复合类型类别
  • 类型属性
  • 支持的操作

我将如何概括如下类型特征:

上面的exist_same例子过于简单了。任何正确实施的想法?

有 type_traits可以“返回”修改后的类型。有什么建议可以将它们扩展到任意数量类型的实现吗?

是否有 type_traits不能扩展到任意数量的类型参数

0 投票
2 回答
4025 浏览

java - 如何使用 Apache Velocity 1.7 保持模板空白(制表符)格式?

我正在使用 Velocity 在我的项目中生成不同的工件,包括 Java Hibernate Entities。

这是我的模板示例:

问题是生成的代码如下所示:

我尝试了建议的解决方案,在每行后添加##,但没有帮助。有没有办法强制 Velocity 保持模板中定义的空格?

0 投票
0 回答
191 浏览

p5.js - 如何在 p5.js 中开始生成肖像

我需要有关我正在为项目工作的代码的帮助。

我需要它做的是一张一张地向用户展示图片并记住每张图片所花费的时间。最后,它应该打开网络摄像头并开始使用与图片颜色对应的粒子绘制用户肖像。我在代码的最后一部分遇到了一些问题:我无法打开网络摄像头,也不知道如何启动肖像。

这是到目前为止的代码

感谢任何可以提供帮助的人!

0 投票
2 回答
72 浏览

julia - Gen:如何将多个生成函数轨迹组合成一个高阶生成函数?

我正在阅读https://github.com/probcomp/gen-quickstart上的“Gen 建模简介”笔记本

第 5 节(调用其他生成函数)要求“构建一个数据集,其中线或正弦波模型是最好的是模棱两可的”

我很难理解如何使用组件函数的跟踪(和返回)来创建我可以使用的有意义的高阶跟踪。

对我来说,最直接的“模棱两可”模型是line(xs).+sine(xs). 所以我Gen.simulate编辑linesine获取痕迹并将它们添加在一起,如下所示:

这显然是错误的,我知道我在 Gen.

我希望能够从组合中内省 sine/line_model 的迹线,并对迹线进行元素添加以获得新的迹线。并且不必随机选择接近:intercept、:phase 等的数字,因此我可以稍后将其包含在我的跟踪中。

顺便说一句,当我这样做时:

我明白了 功能尝试失败

请帮忙谢谢!