标签: dsel

Lisp/Scheme DSEL in C++

我在boost邮件列表上发现了以下帖子(强调我的):

大家好,

有没有人知道现有的精神/ lisp实施,是否有兴趣在开源中开发这样的项目?

还没有,AFAIK.

我将为Spirit2编写一个示例,以补充那里的tiny-C虚拟机.同样有趣的是,方案(或至少它的一个子集)可以用纯c ++实现.没有解析,只是C++中的纯DSEL.现在,想象一个针对此DSEL(通过C++)的解析器 - 源代码转换器.从本质上讲,您的方案代码将被编译为高效的C++.

有人真的这样做过吗?我会对这样的DSEL非常感兴趣.

c++ lisp scheme boost dsel

10
推荐指数
2
解决办法
1542
查看次数

C++域特定的嵌入式语言运算符

在面向数字的语言(Matlab,Fortran)中,范围运算符和语义在处理多维数据时非常方便.例如:

A(i:j,k,:n) // represents two-dimensional slice B(i:j,0:n)  of A at index k
Run Code Online (Sandbox Code Playgroud)

遗憾的是,C++没有范围运算符(:).当然它可以使用范围/切片仿函数进行仿真,但语义不如Matlab干净.我在C++中使用矩阵/张量域语言进行原型设计,我想知道是否有任何选项可以重现范围运算符.我仍然只想依赖C++/prprocessor框架.

到目前为止,我已经查看了可能是合适选项的增强波.

还有其他方法可以将新的非本地运营商引入C++ DSL吗?

我知道你不能添加新的operator.am专门寻找解决方法.我提出的一件事(非常丑陋的黑客,我不打算使用):

#define A(r) A[range(((1)?r), ((0)?r))] // assume A overloads []
A(i:j); // abuse ternary operator
Run Code Online (Sandbox Code Playgroud)

c++ dns dsl operators dsel

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

标签 统计

c++ ×2

dsel ×2

boost ×1

dns ×1

dsl ×1

lisp ×1

operators ×1

scheme ×1