这是基于一段时间前我听过的编译器的演讲,但不幸的是,我不记得何时何地。
在任何能够自己编译的语言中创建最短的编译器。针对任何合理的ISA (68K、x86、MIPS、ARM、SPARC、IBM等)它没有“编译-程序”指令(这可能排除某些版本的VAX)。从stdin读取源程序并将生成的代码打印到stdout。您可以使用标准C库进行I/O和字符串处理(例如,_printf)。您不需要编译整个语言,只需要编译包含编译器的任何子集(即,只打印汇编语言quine,虽然令人印象深刻,但不算解决方案)。
发布于 2016-03-18 11:23:58
document.write("public class Generated{public static void main(String[]args){"+prompt().replace(RegExp("[r]eplace(,"g"),"replaceAll(").replace(RegExp("[v]ar","g"),"double")+"}static class document{static void write(String s){System.out.print(s);}}static void prompt(){return javax.swing.JOptionPane.showInputDialog(\"\");}static void alert(String a){JOptionPane.showMessageDialog(null,a);}static double Number(String a){return Double.parseDouble(a);}static String RegExp(String a,String b){return a;}}");发布于 2016-11-04 12:59:12
.V在网上试试!
代码在第一行输入,输入在后续行。
发布于 2018-05-30 16:55:31
令人难以置信的是,尽管不是图灵完整的语言,Nil语言的表现力足以为自己实现一个解释器,比许多“适当的”语言更简洁。这里提供的示例是一个简单的实现,但是使用高级压缩技术,Nil开发人员能够在0行代码中生成工作解释器。
https://codegolf.stackexchange.com/questions/471
复制相似问题