小编s.d*_*lma的帖子

从ANSI C代码获取控制流图

我正在构建用于测试ansi c应用程序的工具.只需加载代码,查看控制流图,运行测试,标记所有被击中的顶点.我正在尝试通过解析代码来自己构建CFG.不幸的是,如果嵌套代码,它会搞砸.GCC提供从编译代码中获取CFG的能力.我可能会为其输出编写解析器,但我需要行号来设置断点.使用-fdump-tree-cfg或输出控制流图时是否有获取行号的方法-fdump-tree-vcg

c gcc graph ansi

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

我可以在Prolog找到一本关于"确定条款文法"的详尽书籍吗?

我想在Prolog中学习更多关于Definite Clause Grammar的内容,我正在网上搜索一些书和教程.

我已经在"学习Prolog Now","Prolog的艺术"和Swi-Prolog的教程中看到了一些东西,但是没有一个能够讲述它们.

任何人都可以给我一些关于这个主题的详尽书籍吗?

谢谢 :)

prolog dcg

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

Prolog如何将DCG规则转换为明确的条款?

我正在研究Definite Clause Grammar,但我有一些问题需要理解Prolog如何将DCG规则转换为明确的条款.例如,这里是一个用DCG编写的小语法:

s --> np, vp.

np --> det, n.

vp --> v, np.
vp --> v.

det --> [the].
det --> [a].

n --> [woman].
n --> [man].

v --> [kisses].
Run Code Online (Sandbox Code Playgroud)

如果我提出查询:

?-listing(s).
Run Code Online (Sandbox Code Playgroud)

它回答我:

s(A,C) :- 
     np(A,B),
     vp(B,C).
Run Code Online (Sandbox Code Playgroud)

这是什么意思?为什么有两个论点?

此外,'C'在这里意味着什么:

det(A,B) :-
    'C'(A,the,B).
Run Code Online (Sandbox Code Playgroud)

谢谢!

prolog dcg

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

无法将 CBMC 集成到构建系统中

我正在尝试在 GitHub 的开源 C 项目上使用 CBMC(C 边界模型检查:https://www.cprover.org/cbmc/ )。为了这个问题的目的,让我们考虑以下项目:https://github.com/reubenhwk/radvd

当我用 gcc 编译项目时出现问题。我能够获得调用 cbmc 的可执行文件,例如

cbmc radvd
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误消息:

CBMC version 5.8 64-bit x86_64 linux
failed to open input file radvd`
Run Code Online (Sandbox Code Playgroud)

原因应该是我使用了 gcc 而不是 goto-cc (如下所述: http: //www.cprover.org/cprover-manual/goto-cc.html),所以可能无法识别该文件。我还尝试使用 goto-cc,如上一个链接和http://www.cprover.org/goto-cc/examples/nanosat.html等示例中所述。然而,由于它们是指导性示例,因此使 cbmc 工作似乎很容易。make CC=goto-cc当我对其他项目(例如链接的项目(radvd))执行相同的过程并使用 goto-cc 而不是 gcc 时,我在运行命令 时收到以下消息:

make  all-am
make[1]: Entering directory '/home/stefano/Documents/github/radvd'
  YACC     gram.c
updating gram.h
  CC       libradvd_parser_a-gram.o
/usr/include/stdlib.h:133:1: error: syntax error before 'strtof128'
PARSING ERROR
Makefile:941: recipe for target 'libradvd_parser_a-gram.o' failed
make[1]: *** …
Run Code Online (Sandbox Code Playgroud)

c gcc cbmc

5
推荐指数
0
解决办法
381
查看次数

Docker-py:有没有办法将回调函数传递给以“分离”模式运行的容器?

我正在 Python 中使用docker-py运行一个容器。与文档类似:

import docker
client = docker.from_env()
container = client.containers.run('bfirsh/reticulate-splines', detach=True)
Run Code Online (Sandbox Code Playgroud)

容器执行一些任务并将.json文件保存到共享卷。一切工作正常,除了我不知道如何在后台运行时捕获容器退出。更具体地说,我的问题如下:

“docker-py 有没有办法将回调函数传递给以分离模式运行的容器?”

我想访问.json 退出时保存的内容,并避免使用丑陋的语句,例如time.sleep()或 在status is running. 从文档来看,这似乎不可能。您有什么解决方法可以分享吗?

python dockerpy

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

对于高度相关的特征我们应该做什么?

在我的数据集中,2 个特征C1C2是高度相关的。我做了以下步骤。您能告诉我它是否正确且有意义吗?你有更好的方法吗?

首先我使用线性模型来找到拟合线:C1=a*C2+b

from sklearn import linear_model

reg=linear_model.LinearRegression()
y_reg = data1['C1']
x_reg = data1['C2']
reg.fit(x_reg2,y_reg2)
a=reg.coef_
b=reg.intercept_

print(a,b)
Run Code Online (Sandbox Code Playgroud)

找到 a 和 b 后,我从数据集中删除了 和 并添加了一个新的 Vriable C1C2new=a*C1+b

我的下一个问题是我如何理解这条线是否好?

linear-regression correlation feature-selection

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