例如,我最近研究的一种语言-- Terra。你可以在任何语言中解决这个问题,我对Lua最满意,所以我从这里开始。
Terra语言可以用Lua进行元编程,并且与C向后兼容。C代码可以在其中使用,它的代码可以在C中使用。我将从主页中给出一些代码示例。
terra hello(argc : int, argv : &rawstring)
-- Here we call a C function from Terra
C.printf("Hello, Terra!\n")
return 0
end
-- You can call Terra funct
我有一个算法,它需要对非常大的字符串进行字符级的操作。事实证明,bash子字符串机制c=${string:$curchar:1}非常昂贵,其开销似乎随着字符串的长度而增加。测试表明,将非常大的字符串复制到字符数组并对其进行操作是值得的。考虑下面的代码,它在嵌套循环中使用每个方法访问一个大字符串,以显示缓慢访问对算法的影响。
#!/bin/bash
array()
{
curchar=0
while read -n 1 c ; do
chars[$curchar]="$c"
curchar=$((curchar+1
我正计划为我正在创建的语言创建一个虚拟机,我不明白如何将我的程序集转换为我自己的指令集可以加快执行速度。如果我让VM理解我的程序集,这与让我的VM理解我的字节代码不完全一样吗?很明显,字节码的字符将少于程序集,这真的会造成很大的不同吗?例如,如果我创建了自己的字节码,那么我必须向虚拟机展示如何理解它,如果虚拟机直接读取程序集,那么我仍然必须向它展示如何理解程序集,那么一个程序集怎么能比另一个更快呢?
-编辑--
所以,如果我让虚拟机直接解释下面的代码,它应该和下面的代码一样快吗?
add r1, r2, r3 ; Add the values of reg2 and reg3, store t
我正在制作一种用于教育目的的神经网络游戏遗传算法。
,我希望能够在我的gpu (启用cuda)上运行我的python代码,以节省一些时间并加速这个过程。
我的代码的原理很简单,我的遗传算法是一个全局循环,在每一次迭代中,我需要评估我的种群中的每一个神经网络。
while(some_condition):
# ...
game = Game()
for i in range(len(self.networks)):
self.networks[i].score = game.start(network=self.networks[i])
# ...
正如您所看到的,我