你最难写的程序是什么?

20

好奇一下,我想知道你们这些有经验的程序员或像我一样的新手都做过什么。那么,你写过最难、最复杂的程序是什么?


什么问题啊..看下面,有一个美妙的趋势正在兴起。年轻人对经验的挑战 :) - rama-jka toti
试图黑入自适应系统。 - om471987
20个回答

4
可能是平局:使用satisfiability modulo theories解决集合的决策问题求解器以及在UNIX操作系统上运行的C/ASM合作进程调度程序。第一个任务非常难,因为在不同的环境中使用SMT进行高度理论化的论文翻译从未有人做过。第二个任务需要挖掘操作系统数据结构并替换其中的部分内容,以便在程序中跳转并像单独调度线程一样运行函数。请注意,保留HTML标记。

你能否提供相关的论文、资料参考一下吗?这听起来很有趣 :)。 - Grzegorz Wierzowiecki
程序的源代码可能在某个地方可用吗? - Grzegorz Wierzowiecki
1
@Grzegorz - 这并不是非常成功。你可能想要查看Cesare Tinelli的工作(http://www.cs.uiowa.edu/~tinelli/index.html)。他可能已经让研究生来研究如何正确地完成它了。 - tvanfosson
感谢提供的参考资料。我正在寻找涉及SMT、程序分析等主题的研究人员,以及代码示例。 - Grzegorz Wierzowiecki

4

使用ffmpeg api的专有视频流类 - 在处理数据包和在正确时间显示帧以及与音频同步方面。相比其他一些难度不算太大,但我为此奋斗了好几周!


+1 因为我也曾经遇到过同样的问题! - chrism1

3

我在1998年开始编写的矢量图形库(vector graphics library),它广泛使用分层细分来提供许多O(log n)操作和各向异性镶嵌,OpenGL显示列表中的存储也使其在动态场景下保持高帧率。特别是,它可以流畅地缩放到复杂的矢量图形,因为它将它们分解成树,并高效地消除了它们。多年来,它一直是世界上最快的消费级矢量图形渲染器。

原始版本有200kLOC的C++代码,但其设计基础的理论问题花费了我2年时间才解决。


3

有两件事情:

1)一个编译器。这种语言的名称是“3-balls”(向一位做了手术的朋友致敬)。

2)一个Windows汇编程序,没有一个宏,所有东西都被推到栈上,并且地址都是相对的。它可以在所有的Windows系统中工作(没有硬编码的地址)。基本上,它是一个简单的窗口,带有一些按钮和标签。但是好玩的是,从对象和可执行文件中,我提取了操作码并生成了一个shellcode。因此,我可以利用程序中的任何缓冲区,真正地在运行的程序之上创建自己的应用程序!很棒的是,在远程计算机上显示屏幕,远程计算机将执行一个在他的计算机上不存在的程序,你实际上将程序发送到远程计算机上执行。

当然,这对于无意义的头疼来说太过复杂了...但这值得我输入的所有字节!


1
第三个球肯定值得加一分。 - fantaghirocco

3

调试器


2
我已经编写了几个代码,用于多空间维度建模(从3到约7个维度)。当你在处理无法实际绘制或可视化的东西时,问题会变得更加困难。
但是,作为一个大部分时间都在为其他人构建工具包的人,我认为我所做的最复杂的程序实际上是工具箱,一组工具,它们以一致的方式相互配合使用。因为它们都是为了相互配合而制作的,所以可以说数十个实用程序实际上是一个单一的工具。(当然,任何模块化代码在这方面都是类似的。)在这里,我提供的通常是用于解决颜色管理问题的建模工具。

2

几周前我在面试中被问到了这个问题(我还没有听到是否得到了这份工作)。

对我来说,最困难的任务是在我的第一门编程课程中完成的。在基础介绍课程之后,我的大学首次开设了网页设计课程。由于这门课程很新,有几位即将毕业的高年级学生报名参加,占据了班级的一半左右。讲师习惯于教授高年级课程,并且已经认识班上的许多人。基本上他按照他们的水平来教授,而不是为那些经验不足的学生授课。

最困难的任务可能是编写一个纯文本浏览器。我在解析各种标签方面遇到了问题,并寻求帮助。讲师说:“好吧,如果你上过编译器课,你就可以写一个简单的程序了。” 那时,“编译器”是一个黑盒子,在程序运行之前做了许多神奇的事情。我真的不知道它是什么,更不用说能够写一个了。

使它困难的是没有必要完成工作的工具,包括理解我在谷歌上搜索时得到的结果。(如果你已经理解你要寻找什么,手册和API是很好的,但对于教授新手来说并不适用。)在我的合作经历中,我学到的最多的是有一个导师说:“如果你卡住了超过几个小时,请告诉我,这样我就可以让你摆脱困境,继续前进。” 这比那些除了每周一次之外都不想听我说话的人好多了。


1

我正在开发另一个PHP框架,这是一段非常有趣的旅程。


1

我目前正在编写一款iPhone应用程序。这绝对是我写过的最难的程序。不是因为语言难,代码难或其他任何原因,而是因为设备上的所有内容都必须如此流畅。

一切都必须看起来和感觉自然。由于我是一个真正的程序员(对流畅性、平滑性或设计没有任何理解..所以看起来是这样),这使得我非常困难。从代码方面来说,程序可以工作,但从用户界面方面来说,我很难完成任务。

另外线程也很糟糕;-)


0

没有什么特别的,只是一个函数可以用三角形绘制"球体",具有n x n个点,并在两种颜色之间插值三角形(因此输入是半径、细分数、颜色1和颜色2)。这很难,但当它工作时非常有趣:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接