我正在构建用于测试ansi c应用程序的工具.只需加载代码,查看控制流图,运行测试,标记所有被击中的顶点.我正在尝试通过解析代码来自己构建CFG.不幸的是,如果嵌套代码,它会搞砸.GCC提供从编译代码中获取CFG的能力.我可能会为其输出编写解析器,但我需要行号来设置断点.使用-fdump-tree-cfg或输出控制流图时是否有获取行号的方法-fdump-tree-vcg?
我想在Prolog中学习更多关于Definite Clause Grammar的内容,我正在网上搜索一些书和教程.
我已经在"学习Prolog Now","Prolog的艺术"和Swi-Prolog的教程中看到了一些东西,但是没有一个能够讲述它们.
任何人都可以给我一些关于这个主题的详尽书籍吗?
谢谢 :)
我正在研究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)
?
谢谢!
我正在尝试在 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) 我正在 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. 从文档来看,这似乎不可能。您有什么解决方法可以分享吗?
在我的数据集中,2 个特征C1和C2是高度相关的。我做了以下步骤。您能告诉我它是否正确且有意义吗?你有更好的方法吗?
首先我使用线性模型来找到拟合线: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 C1:C2new=a*C1+b
我的下一个问题是我如何理解这条线是否好?