问题标签 [kframework]
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.
kframework - 当模式和配置看起来匹配时,不应用替换
我有一个形式的规则
wherestack
是我的配置中的列表类型单元格,它是k
单元格的兄弟,并且foo
是一个函数。
当我的程序卡住时,k
单元格输出<k> try { baz } catch(p) { buz } </k>
和stack
单元格<stack> .List </stack>
. 在我看来,这两者确实匹配,并且应该应用规则中定义的替换,但是krun
卡在这里。输出的配置、语法和类型似乎匹配,所以我想知道是否还有其他原因导致不应用替换。
对于上下文,这是simple-typed-static
对教程中语言的修改;为了清楚起见,我删除了部分规则和输出,尽管它们也都匹配。我正在使用 java 后端编译它。
编辑:我在下面添加了语法声明
除了标准k
单元和其他一些(我认为)不相关的单元之外,配置还有,
和foo
具有以下形式的函数
kframework - 编译器:没有为排序 Optional[KVar] 定义新生成器
我正在使用 LLVM 后端进行编译。它可以使用 Java 后端进行编译,但是 LLVM 后端会抛出以下错误:
Compiler: No fresh generator defined for sort Optional[KVar]
该错误突出!M
显示<abs> ... .Map => (!M |-> (T1 -> T2)) ... </abs>
kframework - `[错误]内部:UnsupportedOperationException类型的未捕获异常(UnsupportedOperationException:null)`
我试图用以前用 Java 后端编译的 LLVM 后端编译一个文件,并得到这个警告:
然后在运行时出现以下错误:
这些是什么意思?
kframework - 如何在 kframework 的一个规则中“要求”两件事?
我想在一条规则中“要求”两件事。我写了类似的东西
但它不起作用。K 中有没有办法在一个规则上设置多个约束?
kframework - 如何检查键值对是否不在 kframework 的映射中?
我写了类似的东西
但这似乎不是正确的语法。检查映射中是否不存在键值对的正确方法是什么?
kframework - 无法计算最少种类的术语(其中术语是列表)
我有以下作品:
这个错误是什么意思?
kframework - K中的结构操作语义?
是否有规则的语法,例如:
或者我是否需要使用评估上下文重新定义语义?
Kframework 网站上有一本关于 2010 年的 Big-Step SOS 的书,使用的是旧语法:
它似乎可以满足我的要求,但我不确定是否存在新的语法。
kframework - 为什么 K 的 LLVM 后端的值列表不酷?
在尝试为类似 Scheme 的语言定义语法时,我发现使用 java 后端的 kompiled 文件的运行结果
llvm 后端的行为不同
这是我的 scheme.k 代码:
这是我要运行的测试文件:
奇怪的是,使用java的kompiled版本可以正常运行这个测试用例,而使用llvm的kompiled版本卡在
可能的原因是什么?kompile 的版本信息是
kframework - K 框架:宏不递归扩展
我正在看一个教程练习(LOGIK 扩展练习),由于某种原因,其中一个宏规则只扩展了一次。logik.k
除了将以下行添加到模块中之外,我没有进行任何更改,LOGIK
因此 K 将实际运行文件:
然后我跑了:
我得到了(我添加了一些换行符以提高可读性):
但我希望查询是
需要明确的是,以下规则似乎是问题所在,因为我希望这些规则会继续使用,直到它们不能再使用为止,而且我不明白为什么它们现在会停止。
kframework - 什么是级联术语,它们在什么情况下是出乎意料的?
我的主要问题是什么是“意外的连接项”。我对下面的错误有一些背景,尽管似乎还有许多其他问题可能会混淆这个错误。
我有一个foo
排序术语Map
和一个bar
排序术语Map
。foo
接受一个表达式列表,目标是将它们全部放入Map
. 为此,我调用bar
它并连接每个表达式。从语法上Map
我相信应该足够然后说bar(exp) foo(exps)
得到整个Map
.
这编译得很好,但是当我尝试在我重写后立即运行它时,bar(exp) foo(exps)
我得到了一个
[Error] Critical: unexpected concatenated termfoo(...) while evaluating function _Map_
. 为简洁起见,我删除了表达式本身。
我认为问题可能在于Map
联合的优先级高于我的foo
,bar
因此我尝试将其分配bar
为一个函数,因为bar
它的参数很严格,这导致了排序错误KItem
并且Exp
不兼容。