小编cor*_*rny的帖子

混淆的C代码竞赛2006.请解释sykes2.c

这个C程序如何工作?

main(_){_^448&&main(-~_);putchar(--_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1:10);}
Run Code Online (Sandbox Code Playgroud)

它按原样进行编译(测试gcc 4.6.3).它打印编译时的时间.在我的系统上:

    !!  !!!!!!              !!  !!!!!!              !!  !!!!!! 
    !!  !!  !!              !!      !!              !!  !!  !! 
    !!  !!  !!              !!      !!              !!  !!  !! 
    !!  !!!!!!    !!        !!      !!    !!        !!  !!!!!! 
    !!      !!              !!      !!              !!  !!  !! 
    !!      !!              !!      !!              !!  !!  !! 
    !!  !!!!!!              !!      !!              !!  !!!!!!
Run Code Online (Sandbox Code Playgroud)

资料来源:sykes2 - 一行中的一个时钟,sykes2作者提示

一些提示:默认情况下没有编译警告.编译时-Wall,会发出以下警告:

sykes2.c:1:1: warning: return type defaults to ‘int’ [-Wreturn-type]
sykes2.c: In function ‘main’:
sykes2.c:1:14: warning: value …
Run Code Online (Sandbox Code Playgroud)

c obfuscation deobfuscation

963
推荐指数
4
解决办法
8万
查看次数

什么规则"适用(规则)"或"证明"使用?

当我apply (rule)在apply-script中使用时,通常会选择适当的规则.这同样适用于proof结构化证明.我在哪里可以学习/查找所用规则的名称?

isabelle

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

在应用样式中将目标放在目标中

让我们假设我想要显示以下引理

lemma "? A; B; C ? ? D"
Run Code Online (Sandbox Code Playgroud)

我得到了目标

1. A ? B ? C ? D
Run Code Online (Sandbox Code Playgroud)

但是,我不需要B.我怎样才能将目标转移到类似的东西上

1. A ? C ? D
Run Code Online (Sandbox Code Playgroud)

我不想改变原始lemma陈述,只是改变申请风格的当前目标.

isabelle

6
推荐指数
2
解决办法
254
查看次数

如何隐藏已定义的常量

当我导入带有定义常量(用于递归函数或定义)f的理论文件时,如何在当前理论文件中隐藏这样的常量?换句话说,我想确保它f是一个自由变量.我不想更改导入的文件.

isabelle

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

如何隐藏乘法定义的常量

这个问题扩展了如何隐藏定义的常量的问题。

我进口的理论AB以及C,也许在将来也DE......所有的理论定义一个函数f。我想f在不改变导入的理论的情况下隐藏我当前理论中的定义。当我写term f我得到A.f。当我添加hide_const (open) f到我当前的理论时,A.f是隐藏的,但现在我得到B.ff. 我怎样才能完全隐藏f?我需要类似的东西(hide_const (open) f)+

isabelle

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

AFP Dijkstra 的最短路径算法

对于AFP条目Dijkstra's Shortest Path Algorithm,证明大纲和证明文件都不存在 *。不幸的是,我没有找到在IsaMakefile本地构建这些文档的工具。获取这些文件的最佳方式是什么?

另一个问题,由于Dijkstra.thy依赖于许多其他理论,有没有办法更快地加载所有内容?

*)现在已修复。

isabelle

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

列表上"不同"的代码更快

这个问题涉及使用Isabelle/HOL定理证明器生成代码.

当我导出distinct列表上的函数的代码时

export_code distinct in Scala file -
Run Code Online (Sandbox Code Playgroud)

我得到以下代码

def member[A : HOL.equal](x0: List[A], y: A): Boolean = (x0, y) match {
  case (Nil, y) => false
  case (x :: xs, y) => HOL.eq[A](x, y) || member[A](xs, y)
}

def distinct[A : HOL.equal](x0: List[A]): Boolean = x0 match {
  case Nil => true
  case x :: xs => ! (member[A](xs, x)) && distinct[A](xs)
}
Run Code Online (Sandbox Code Playgroud)

此代码具有二次运行时.有更快的版本吗?我想到了"~~/src/HOL/Library/Code_Char"在我的理论开头导入字符串并建立列表的高效代码生成之类的东西.更好的实现distinct方法是在O(n log n)中对列表进行排序,并迭代列表一次.但我猜一个人可以做得更好吗?

无论如何,是否有更快的实现distinct和可能的其他功能Main

optimization code-generation scala isabelle

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