小编Tim*_*Tim的帖子

如何制作一个干净的铿锵前端?

我正在研究一个C++源代码分析器项目,看起来clang很适合解析工作.问题是clang在很大程度上取决于基础设施"llvm"项目,如何配置它以获得干净的前端而没有任何具体的机器导向后端?就像LCC一样,它们为专注于解析器部分的人提供了"空"后端.任何建议表示赞赏.

c++ frontend backend llvm clang

22
推荐指数
1
解决办法
2463
查看次数

如何在clojure中定义安全的sqrt函数?

我正在使用fungp(遗传编程工具)来模拟复杂的函数并且遇到sqrt问题.

基本上,我必须将函数及其arity的向量传递给fungp,以便它可以组合它们的表达式.然后将评估表达式并返回最佳表达式.这个函数向量看起来像:

(def functions
  '[[+ 2]
  [- 2]
  [* 2]
  [fungp.util/abs 1]
  [fungp.util/sdiv 2]
  [fungp.util/sin 1]
  [fungp.util/sqrt 1]
  [inc 1]
  [dec 1]])
Run Code Online (Sandbox Code Playgroud)

这个设置给了我一百行错误,如:

#<ClassCastException java.lang.ClassCastException: java.lang.Double cannot be cast to clojure.lang.IFn>
Run Code Online (Sandbox Code Playgroud)

我认为这是由于fungp.util/sqrt的定义:

(defn sqrt [x] (if (x > 0) (Math/sqrt x) 0))
Run Code Online (Sandbox Code Playgroud)

我认为0导致评估失败,但我不确定.我已经尝试定义我自己的安全平方根版本,但无法正确获取语法.

所以,这就是我被困住的地方.我需要一个安全的平方根版本(负输入返回0)并在fungp表达式中正确评估.

编辑:为了完整性,这是我尝试编写自己的平方根包装器的(很多)变体之一:

(defn sqrt-fn [x] `(if (~x > 0) (Math/sqrt ~x) 0))
Run Code Online (Sandbox Code Playgroud)

输出(中间位是从函数生成的表达式):

#<ClassCastException java.lang.ClassCastException: clojure.lang.Cons cannot be cast to java.lang.Number>

(let [] (- (dec (- (- (fungp.util/sin (tutorial.tut1/sqrt-fn 8.0)) (fungp.util/sdiv (* x 2.0) (dec 9.0))) (fungp.util/sdiv …
Run Code Online (Sandbox Code Playgroud)

clojure genetic-programming

3
推荐指数
1
解决办法
3970
查看次数

如何修复 Eclipse 中的“启动 VisualVM 时出错”?

我尝试了以下步骤:在 Eclipse 下Window > Preferences > Run/Debug > Launching > VisualVM Configuration

在 VisualVM 可执行文件旁边,我选择“浏览”。并jvisualvm.exe从中选择C:\Program Files\Java\jdk1.6.0_32\bin

现在,当我按“运行”时,我会得到一个Error Starting VisualVM - You are running VisualVM using Java Runtime Environment (JRE).

尝试编辑“C:\Program Files\Java\jdk1.6.0_32\lib\visualvm\etc\visualvm.conf”,将 #jdkhome="/path/to/jdk" 替换为 #jdkhome=C:/Program Files/Java /jdk1.6.0_32 我仍然遇到同样的错误。

我该如何修复这个错误?

java eclipse installation jvisualvm

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