问题标签 [program-slicing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
148 浏览

ocaml - 用 Frama-c 切片

我在我的 MacO 上安装了带有 opam 的 frama-c。我需要手动切片 Hello World。我的意思是不是和桂。我在互联网上搜索,但我不明白怎么做。我的英语不够好。那么有人可以帮我切片 HelloWorld.c 吗?

0 投票
1 回答
370 浏览

clang - 使用 Frama-c 切片 C 代码

我想对用 frama-c 显示的未使用的变量进行切片。但我不知道我应该写哪个命令行来用一个命令行分割所有未使用的变量

0 投票
0 回答
410 浏览

python - python中的程序切片

我正在寻找一些功能来进行程序切片。例如,假设我有以下代码

当我想要所需的程序切片时,prod切片器应该输出我

当我想输出依赖于变量 x 的程序部分时,我应该得到输出

我正在查看该工具https://github.com/romanofski/programslice但它并没有太大帮助。

提前致谢

0 投票
1 回答
288 浏览

java - 以编程方式将 FlowDroid 与 Soot 框架一起使用?

我正在开发一个 Java 项目,该项目旨在使用Soot 框架执行前向切片技术

我项目的全局图是将一些字节码文件转换为Jipmle形式,然后进行相应的前向切片技术,但是我是Soot框架的新手,所以我做了一些研究,发现Soot框架不支持任何一种切片技术。

我想知道我是否可以使用FlowDroid或任何其他以编程方式在我的项目中执行前向切片技术?

谁能指出我正确的方向来开始这个?

提前致谢。

安特尔。

0 投票
1 回答
316 浏览

java - 如何使用 WALA 进行正向切片

我一直在研究程序切片。由于反向切片适用于控制流图 (CFG),并且有很多工具可以生成 CFG,因此我很容易用 Java 实现了反向切片算法。

但是,在阅读一些文章时,我已经看到前向切片适用于系统依赖图 (SDG),并且我发现WALA生成 SDG,但也实现了前向切片。

WALA 是一个非常大的项目,我有点迷失在它的代码和文档中。有没有关于如何使用WALA 的Java 正向切片的示例?或者至少我如何以格式生成给定程序的 SDG,以便我也可以使用 Graphviz 将其可视化。

0 投票
1 回答
168 浏览

java - 程序切片插件 Indus 和 kaveri 在 eclipse 中是如何工作的?

了解到Indus是一个程序切片的框架,kaveri是它在eclipse上的插件。Indus的下载链接是http://forge.cis.ksu.edu/frs/?Group_id=12,但是我可以'打开它。

但是我在 github ( https://github.com/rvprasad/Indus_archive )中找到了一个 CVS repo 。我将 Indus 和 kaveri 插件 jar 放入 eclipse 的 dropins 中,但它不起作用。我切换到插件目录,它仍然不起作用。

0 投票
3 回答
283 浏览

prolog - 在 Prolog 中解决关于时间限制的难题

卡在 Prolog 问题上。我知道答案(因为我先在纸上做了),但我不知道如何让 Prolog 想出答案。

问题:

比尔每晚都吃点零食,每晚吃不同的水果和不同的坚果。从下面的陈述中,找出比尔上周每个工作日晚上吃了什么零食。

a) 苹果比芒果吃得晚。

b) 香蕉比杏仁和花生吃得晚,但比梨吃得早。

c) 腰果比香蕉和杏早吃,但比花生晚。

d) 杏仁后晚上没有吃山核桃。

e) 比尔吃了一晚核桃。

请注意,问题是关于 5 个工作日晚上(周一至周五),并提到了 5 种水果和 5 种坚果。您的程序应该解决问题并打印出解决方案,这将是一组 5 个三元组,例如(星期一,苹果,山核桃),...(星期五,芒果,核桃)。

显然,这些不是正确的答案,而只是向您展示解决方案的价值。

到目前为止的代码:

0 投票
1 回答
49 浏览

c - frama-c 切片插件似乎丢弃了使用的堆栈值

问题描述

我正在开发一个 frama-c 插件,它使用切片插件作为库来删除自动生成的代码中未使用的位。不幸的是,切片插件丢弃了一堆实际使用的堆栈值。只要它们的地址包含在传递给抽象外部功能的结构中,就可以使用它们。

简单的例子

这是一个更简单的示例,它模拟了我拥有的相同的一般结构。

frama-c-gui -slice-calls some_function experiment_slicing.c当使用(我还没有弄清楚在没有 gui 的情况下调用命令行时如何查看切片输出)对这个示例进行切片时,它会删除除声明int *a[];和对some_function.

尝试修复

我尝试通过添加 ACSL 注释来修复它。但是,我认为合理的规范(见下文)不起作用

然后我尝试了一个具有所需行为的分配(见下文)。然而,这不是一个正确的规范,因为该函数实际上从未写入指针,而是需要读取它以获得正确的功能。我担心如果我继续使用这种不正确的规范,它会导致奇怪的问题。

0 投票
3 回答
42 浏览

python - Python:给定一个整数列表 x,编写一个表达式,如果所有奇数索引值都是其先前值的两倍,则返回 True

给定一个整数列表,例如,x = [5, 10, 6, 12, 10, 20, 11, 22] 编写一个表达式,如果所有奇数索引值都是其先前值的两倍,则返回 True。 我们需要使用skip slicing、zip、all和list comprehension

我是 Python 编程的新手(虽然在 Java 方面有丰富的经验)。这只是关于 python 语法的一个基本问题,但我做不到。我尝试了以下方法:

list(zip(x[::2], x[1::2]))

这个表达式返回给我一个类似下面的列表 [(5, 10), (6, 12), (10, 20), (11, 22)]

在此之后,我失去了如何检查对的条件。寻找类似的东西

print(all([False for pair in list(zip(x[::2],x[1::2]))]) "write something in proper format that checks pair values for double condition")

0 投票
2 回答
312 浏览

numpy - SIice 基于间隔的 numpy 数组?

是否可以在 numpy 中按间隔 n 系统地对长度为 m 的一维数组进行切片?假设我有一个包含 1000 个值的列表,我可以轻松地将其分成 10 个包含 100 个值的列表吗?