我正在寻找一种有趣的定制语言,主要是为了了解它是如何工作的,但在深入代码之前,我在概念上遇到了一些麻烦。
我看过万花筒示例代码和许多其他在线资源,但我对如何做以下几件事感到困惑:
我的目标将我的代码转换成C++代码或直接转换成具有C++样式的AST的机器代码
理性主要是为了学习,但如果我做得足够好,我可以进一步发展它,那就太好了。
我的语言是什么?我的语言将专门用于和数据库创建,重点是版本控制和缓存策略。
我不知道如何将我的“语言”中的一些信息翻译成与等价的C++。
示例:
//An Integer type which is nullable and the default value of
我想将给定的用户文本从乌尔都语转换为英语。当我给出源语言为英语,目标语言为乌尔都语时,它似乎工作得很好。但每当我选择源语言为乌尔都语,目标语言为英语时,它似乎不起作用。在过去的两周里,我一直在寻找解决这个问题的方法,但我一直没有成功,因为没有任何资源可以帮助我进行语言转换。任何帮助都将不胜感激。提前谢谢你。附言:我已经包括了谷歌翻译API到我的网站。
<script type="text/javascript" src="https://www.google.com/jsapi">
// Load the Google Translitera
在https://wasmer.io上,它说
Use the tools you know and the languages you love. Compile everything to WebAssembly. Run it on any OS or embed it into other languages.
embed it into other languages是什么意思?我搜索过,但找不到任何相关的答案。
比方说,我有一个编译成WebAssembly的python程序,我有一个可以使用它的Java程序。
我可以在Java程序中嵌入python程序吗?
这是“将它嵌入到其
我用llvm::parseBitcodeFile解析了一个bitcode文件,我得到了llvm::Module,我可以迭代模块的功能:
std::unique_ptr<llvm::Module>& M = *parsed;
for(auto& func : M->functions())
{
// how to identify the entry point?
}
我想确定模块的入口点(以及应用程序的入口点--如果有多个模块,其中一个应该有一个入口点.),但是我在func中找不到任何东西来做这件事,那么识别入口点的正确方法是什么呢?(在大多数情况下,
我想检查一下当前的输入日期,是否与我在数据库中的时间戳相同。我是通过看一次约会的周数来做到这一点的。
我试图使用:
Calendar.GetWeekOfYear(DateTime, ...)
方法,这通常是有效的。
然而,当我使用LINQ时,我得到了
An exception of type 'System.NotSupportedException' occurred in System.Data.Entity.dll but was not handled in user code
Additional information: LINQ to Entities [...
为了将Lambda演算转换成组合逻辑,我需要实现以下算法。
规则来自
T[x] => x
T[(E₁ E₂)] => (T[E₁] T[E₂])
T[λx.E] => (K T[E]) (if x does not occur free in E)
T[λx.x] => I
T[λx.λy.E] => T[λx.T[λy.E]] (if x occurs free in E)
T[λx.(E₁ E₂)] => (S T[λx.E₁] T[λx.E₂]) (if x occurs free in E₁ or E₂)
到目前为止,这就是我所拥有的:
d