标签: generative-programming

实现可变参数类型特征

介绍

我正在寻找一种模式将C++类型特征转换为它们的可变参数.一个方法来解决这个问题,将不胜感激,并生成编程模式,以自动执行任务将是理想的.

请考虑以下事项:

std::is_same<T, U>::value; 
Run Code Online (Sandbox Code Playgroud)

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

std::are_same<T1, T2, T3, T4>::value; 
Run Code Online (Sandbox Code Playgroud)

目前的做法

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

template<template<class,class> class F, typename...Ts>
struct Univ;

template<template<class, class> class F, typename T, typename U, typename...Ts>
struct Univ<F, T, U, Ts...>
{
    static const int value = F<T, U>::value && Univ<F, U, Ts...>::value;
};

template<template<class, class> class F, typename T>
struct Univ<F, T>
{
    static const int value = 1;
};
Run Code Online (Sandbox Code Playgroud)

所以,例如are_same …

c++ templates generative-programming template-meta-programming c++11

18
推荐指数
1
解决办法
2195
查看次数

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

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

有没有人知道任何PEG库或PackRat解析器生成器的Javascript或PHP?当然,任何语言的代码生成器都可以生成Javascript或PHP源代码.

javascript php parsing generative-programming

18
推荐指数
2
解决办法
6403
查看次数

Visual Studio T4与CodeSmith

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

所以问题是:我是否继续使用CodeSmith总线或是时候开始将我的所有模板转换为T4了?

更新 也许我对问题的解释方式并不清楚.显然,我不会删除我的cs模板并停止使用它们,直到我有新的模板工作.但是,在这一点上是否值得努力?T4在这一点上是否提供了优于CodeSmith的优势?是否有一些功能或一组功能,通过为T4编写我的模板,我会看到我的效率提高了100倍?

c# t4 generative-programming codesmith visual-studio

17
推荐指数
1
解决办法
7871
查看次数

将Perl中的匿名子写入文件以供以后使用

我有一个Perl程序,它从输入文件生成解析规则作为subs.sub是匿名定义的一个放入哈希.现在,我想导出该哈希值,包含所有子目录,然后再次加载它们以与其他程序一起使用.

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

提前致谢.

perl hash functional-programming generative-programming

7
推荐指数
1
解决办法
379
查看次数

生成正则表达式

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

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

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

在伪代码中,它将运行如下:

re = generate("foo(bar|baz)?", max_match = 100);  #Don't give me more than 100 results
assert re == ("foobar", "foobaz", "foo");
Run Code Online (Sandbox Code Playgroud)

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

regex generative-programming regular-language

7
推荐指数
1
解决办法
815
查看次数

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

假设我有(x,y)样本制作的训练集.

为了应用生成算法,让我们说高斯判别,我必须假设

p(x|y) ~ Normal(mu, sigma) 为每一个可能的西格玛

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

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

normal-distribution generative-programming machine-learning logistic-regression

0
推荐指数
1
解决办法
162
查看次数