Questions tagged «compile-time»

对于涉及在编译时而不是运行时执行操作的挑战。这意味着只有编译后的语言才能竞争。

17
建立一个编译炸弹
介绍 您可能熟悉zip炸弹,XML炸弹等。简单来说,它们是(相对)小文件,当用纯软件解释时,它们会产生巨大的输出。这里的挑战是以同样的方式滥用编译器。 挑战 编写一些占用512个字节或更少字节的源代码,并将其编译成一个占用最大可能空间的文件。最大的输出文件胜出! 规则 好的,因此有一些重要的说明,定义和限制。 编译的输出必须是ELF文件,Windows Portable可执行文件(.exe)或JVM或.Net的CLR的虚拟字节码(如果需要,其他类型的虚拟字节码也可能没问题)。更新:Python的.pyc / .pyo输出也算在内。 如果不能将您的选择语言直接编译为这些格式之一,则也可以先进行编译再进行编译(更新:只要您从未使用同一语言多次,就可以多次进行编译)。 您的源代码可以包含多个文件,甚至可以包含资源文件,但是所有这些文件的总大小不能超过512个字节。 除了源文件和选择语言的标准库之外,您不能使用任何其他输入。如果支持静态链接标准库,则可以。具体来说,没有第三方库或OS库。 必须可以使用一个或多个命令来调用您的编译。如果在编译时需要特定的标志,则这些标志将计入您的字节数限制(例如,如果您的编译行是gcc bomb.c -o bomb -O3 -lm,则将计算-O3 -lm部分(7字节))(请注意,不计入初始前导空间)。 仅当预处理器是您语言的标准编译选项时,才允许使用预处理器。 环境取决于您,但是为了使此可验证性感兴趣,请坚持使用最新的(即可用的)编译器版本和操作系统(并明确指定要使用的版本)。 它必须编译时没有错误(警告是可以的),并且崩溃会使编译器不起作用。 您的程序实际执行的操作无关紧要,尽管它不可​​能是恶意的。它甚至不必启动。 例子1 C程序 main(){return 1;} Apple LLVM version 7.0.2 (clang-700.1.81)在OS X 10.11(64位)上编译: clang bomb.c -o bomb -pg 产生一个9228字节的文件。源的总大小为17 + 3(对于-pg)= 20字节,这很容易在大小限制内。 例子2 Brainfuck程序: ++++++[->++++++++++++<]>.----[--<+++>]<-.+++++++..+++.[--->+<]>-----.-- -[-<+++>]<.---[--->++++<]>-.+++.------.--------.-[---<+>]<.[--->+<]>-. 用awib转换为c: ./awib ...

25
最短的代码合法地懈怠
我是一名开发人员,我不想做自己的工作。我从XKCD知道,最好的借口是代码的编译。因此,我认为我需要一些可以永久编译的代码!而且由于我很懒并且不想键入太多内容,因此必须使用尽可能短的代码来完成。 因此,您的任务是编写一个在语法上有效但会导致编译器进入无限循环的程序。 技术指标 显然,您必须使用具有编译器的语言。 指定每个解决方案中使用的实现。 这是代码高尔夫球,因此最短的有效解决方案(以字节为单位)获胜。 编译器可以终止以耗尽内存或堆栈空间。

8
1个字符的拼写错误,从C ++编译生成大多数错误消息
似乎简单地更改C ++文件(尤其是使用模板)会产生错误页面。这场比赛的目的是要了解最大的“价格便宜”,即输出错误最少,对源代码的更改最少(添加1个字符)。 因为其他语言更加理智,所以这将限于C ++和gcc版本4.x。 规则 原始源文件必须使用gcc 4.9.2编译为目标代码,且没有错误。 将一个ASCII字符添加到源代码中以创建拼写错误,从而将文件大小增加1个字节。 编译器使用默认选项运行。必需的选项(如-c和-std=c++11允许),不允许的选项(如)-Wall。 指标是 number of bytes of generated error messages ----------------------------------------------------------------------- (bytes of source code with typo) (length of filename passed to compiler) 答案将通过http://ideone.com/ C ++ 4.9.2 进行验证。 例: 文件名是a.cpp,长度为5个字节。 int foo(); 工作编译 gcc -c a.cpp 损坏的源代码: in t foo(); 编译失败 $ gcc ...

26
崩溃您最喜欢的编译器
用您选择的体面语言编写完全合法的代码,其编译将使编译器崩溃或将其发送到无限循环(无限编译时间)中。 限制条件: 使用现实世界中使用的标准语言。 使用标准的,开发良好的编译器(没有答案,例如“我编写的C编译器崩溃了”)。 该代码必须使用该语言是合法的(因此,很可能您必须利用编译器或语言错误)。 提供您使用的编译器版本和选项,以便其他人可以复制它。 如果可能,说明编译器崩溃的原因。 玩得开心 :)

5
在编译时解决八皇后问题[关闭]
您可以在编译时解决八个皇后难题吗? 选择任何合适的输出格式。 我对C ++模板元编程解决方案特别感兴趣,但是您可以使用具有类似构造的语言,例如Haskell的类型系统。 理想情况下,您的元程序将输出所有解决方案。没有硬编码。

22
递归字符串替换
任务 编写一个程序或函数,给出给定的三个字符串A, B, C会生成一个输出字符串,其中Bin的每个实例A都已用递归替换C。递归替换表示重复替换,其中在每一步中Bin的所有不重叠实例A(从左到右贪婪地选择)都替换为,C直到B不再包含在中A。 输入输出 您可以对I / O使用任何默认方法。 字符串将仅包含可打印的ASCII字符(并且可以包含任何一个)。 B永远不会是一个空字符串,而A并且C可能是。 字符串应被视为纯文本,例如,您不能将其B视为Regex模式。 输入的某些组合永远不会终止。在这种情况下,您的程序可以执行任何操作。 测试用例 这些格式为: A/B/C\nOutput Hello, world!/world!/PPCG Hello, PPCG Uppercase is up/up/down Uppercase is down ababababa/aba/ccc cccbcccba delete/e/{empty string} dlt {empty string}/no/effect {empty string} llllrrrr/lr/rl rrrrllll +-+-+-+/+-+/+ + ababababa/aba/bada badabbadbada abaaba/aba/ab abb ((())())())/()/{empty string} ) 不会终止的示例: grow/ow/oow loop/lo/lo
25 code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

6
Bloatware竞赛:产生100多个MiB可执行文件[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 用您喜欢的编译语言创建简短的源代码,然后将其编译成较大的(不少于104857600字节)可执行文件。该程序必须是可运行的(假设有1GB的可用内存),并且可以执行任何操作(最好是简单的操作,例如hello world)。 鼓励使用非显而易见的技巧。 C中的无聊示例: int a[1024*1024*25] = { 1 }; int main(){} 如果可以“解释”为什么无法减小可执行文件的大小(例如,实际上以某种方式使用了所有膨胀),则加分了。

8
反向插入排序
目的 根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0到N-1(包括)的所有数字,其中N输入的大小。 输入项 一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表 中(0索引)位置的值i将介于0和之间i。 您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。 输出量 混乱的名单 逐步生成动作 Scrambled List | Moves to sort [4,0,2,1,3,5] | [0, , , , , ] #4 stay in place [4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left [0,4,2,1,3,5] | [0,1,1, , , ] #2 ...
19 code-golf  array-manipulation  code-golf  code-golf  animation  code-golf  restricted-source  code-golf  java  code-golf  decision-problem  graph-theory  code-golf  conversion  electrical-engineering  code-golf  ascii-art  code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

4
一周中压缩的天数
输入星期几列表,则输出列表中最短的排序表示形式。 输入的格式是由一个或多个双字符子串的字符串Su(星期日), Mo(星期一), Tu(等), ,We,Th, Fr和Sa。输入不一定必须以排序的顺序给出。 要将输入转换为输出格式, 从星期天开始按星期几对输入进行排序(例如ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 如果不引起歧义,请将缩写词减少到一个字母。例如,之所以SuMoTuWe成为,SMTW是因为第一个S不可能在星期六,因为这样会使输出未排序(与T相同)。但是,ThFrSa应该成为ThFS,因为星期二和星期四都在星期五之前,并将其减小以TFS产生歧义。 如果输出为now MTWTF,则D改为输出(代表“ 工作日 s”)。同样,SS应该成为E一周结束。最后, SMTWTFS应该成为A对所有天。 输入和输出都必须是单个字符串。 由于这是code-golf,因此以字节为单位的最短代码为准。 测试用例: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu ...

25
一个简单的模式
输入: 您选择的输入格式中的两位数字(我们称它们为m和n)和两个字符(我们称其为a和b)。 输出: 对于演练,请假装m=2, n=5, a='a', b='b'。 您的输出将是根据四个输入构建的字符串。让我们result用value 调用字符串""。首先,连击a到result m时间,所以串连a到result 2倍。result现在等于aa。其次,连击b到result m时间,所以串连b到result 2倍。result现在等于aabb。最后,如果结果已经比更长n,请截断result它,使其具有length n。否则,继续交替使用m的长度运行a,并b直到result有长度n。最终result是aabba,它有长度5。 测试用例: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: m = 3, n = 8, a = A, b = B Output: AAABBBAA Input: m = 4, n ...
17 code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

10
升序矩阵
“升序矩阵”是整数(包括0)的无限矩阵,其中任何元素是最小的可用元素,之前尚未在相应的行和列上使用: | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 2 5 4 ... 3 | 2 3 0 1 6 7 ... 4 | 3 2 1 0 7 6 ... 5 | 4 5 ...
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

8
在编译时计算CRC32表[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 5年前关闭。 CRC32的参考实现在运行时计算查找表: /* Table of CRCs of all 8-bit messages. */ unsigned long crc_table[256]; /* Flag: has the table been computed? Initially false. */ int crc_table_computed = 0; /* Make the table for a fast CRC. */ void make_crc_table(void) { unsigned long c; ...

6
找出有理生成函数的系数
如果我们写一个数字序列作为幂级数的系数,则该幂级数称为该序列的(普通)生成函数(或Gf)。也就是说,如果对于某些函数F(x)和整数系列,a(n)我们有: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 然后F(x)是的生成函数a。例如,几何级数告诉我们: 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) 因此,的生成函数1, 1, 1, ...为1/(1-x)。如果我们对上面方程的两边求和并乘以x得到以下等式: x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 因此,的生成函数1, 2, 3, ...为x/(1-x)^2。生成函数是一个非常强大的工具,您可以使用它们来做很多有用的事情。在这里可以找到简短的介绍,但是要获得真正彻底的解释,请参见惊人的图书生成功能学。 在此挑战中,您将有理函数(两个具有整数系数的多项式的商)作为两个整数系数数组的输入作为输入,首先是分子,然后是分母。例如,功能f(x) = x ...
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.