著名的同名编程技术[关闭]
Posted
技术标签:
【中文标题】著名的同名编程技术[关闭]【英文标题】:Famous eponymous programming techniques [closed] 【发布时间】:2011-01-22 23:09:10 【问题描述】:在某些运动中,某些技术或元素以发明或首次执行它们的运动员的名字命名,例如,Biellmann spin。
他们是否广泛使用这些名称来表示编程技术和习语?这些是什么?需要明确的是,我明确不是在询问算法,这些算法通常以其创造者的名字命名。
例如,一个是Schwartzian transform,但我想不起来了。
【问题讨论】:
必须...压制...敦促...编造关于一个叫做Septimus Q Object的人的奇特故事... 您要查找的词是“同名”。 投票重新开放...人们在这里遇到了严重的问题。这是一个非常明确的问题,我认为有很多技术不是可能符合条件的算法。老实说,一旦你赋予人们一点点权力,他们就会滥用它。投票重新开放。 WizardOfOdds,Alicia:投票重新开放,但它可能应该成为维基,因为没有具体的正确答案。 记住:德国巧克力蛋糕是以一个名叫 German 的人命名的。 B-) 【参考方案1】:在 C++ 中,Barton-Nackman trick。
【讨论】:
【参考方案2】:怎么样:Ada 以第一位计算机程序员 Ada Lovelace 的名字命名??
【讨论】:
真的不算技术,抱歉。 另外,不是 Lovelace 发明的..【参考方案3】:我认为timsort 符合条件。在python中使用并打开jdk 7
【讨论】:
但那是一种算法,不是吗? Shell 排序:en.wikipedia.org/wiki/Shell_sort 别忘了 QuickSort 是以一个叫 Quick 和 BubbleSort 的家伙命名的,它是以迈克尔杰克逊的猩猩命名的:-)【参考方案4】:Edsger Dijkstra 的A Discipline of Programming 一书中阐述的通过计算最弱前提来构造程序的方法通常被称为Dijkstra 方法。它更像是一种编程方法而不是一种技术,但它可能是合格的。
【讨论】:
【参考方案5】:在标准 ML 和其他使用元组和记录文字的函数式编程语言中,我有时会看到这样写的文字:
( first
, second
, third
)
或
name = "Atwood"
, age = 37
, position = "founder"
, reports_to = NONE
这种高度惯用的布局,与逗号或分号出现在行的 end 的布局相反,我一直听说它被称为 MacQueen 样式,以 Dave MacQueen(前身为贝尔实验室,现就职于芝加哥大学)命名。
【讨论】:
我喜欢在我的非功能性程序中使用相同的样式 - 对我来说,逗号行提供了像缩进条一样的视觉提示;多余或缺少的逗号会立即变得明显。 @Norman - 这是一种在所有语言中使用非常广泛的样式(不仅适用于逗号),而且我认识的大多数优秀开发人员都使用它,因为它可以更容易地维护代码。然而,我从来没有意识到它有一个名字 - 谢谢!【参考方案6】: 函数式编程技术currying以其(重新)发明者Haskell Curry命名。 布尔逻辑以George Boole命名 Duff's device 非常有名,在我看来可以称得上是技术/成语。我曾经做过一个“Carmack”,它指的是“fast inverse square root”,但根据***的条目,该技术可能是在 1990 年左右由 SGI 的聪明人发现的。
即使它不符合你的描述,它仍然是一个非常惊人的阅读:)
Kleene closure:是正则表达式中的*
运算符。它的意思是“前面的 0 个或多个”。
在某个时间点,Karnaugh Map 可能被认为是一种促进编程的技术(尽管水平较低)。
Markov Chains 以 Andrey Markov 命名,用于编程生成:
Google PageRank 生成垃圾邮件文本 用于替换 ID/哈希值的助记码字图形世界充满了同名技术:
Bresenham's line algorithm Bézier curve Gouraud shading Phong shading Fisher-Yates shuffle, 在数组上实现就地随机随机播放的标准方法。如果发现请编辑添加更多...
【讨论】:
嗯...我不确定它是否适合作为一种技术,但我几乎可以肯定它确实...+1【参考方案7】:几个hard to fix or unusual software bugs已被归类为著名科学家。 Heisenbug 可能是最著名的例子。
【讨论】:
我知道海森堡那个,但是还有什么其他例子呢?谢谢! en.wikipedia.org/wiki/Unusual_software_bug 有一个以科学家命名的列表【参考方案8】:Carmack's Reverse:
深度失败
大约在 2000 年,一些人发现通过反转深度可以使海德曼的方法适用于所有相机位置。与其计算物体表面前面的阴影表面,不如计算它后面的表面,结果相同。这解决了眼睛在阴影中的问题,因为眼睛和物体之间的阴影体积不计算在内,但引入了阴影体积后端必须加盖的条件,否则阴影最终会丢失体积指向的地方倒退到无穷大。
禁用对深度和颜色缓冲区的写入。 使用正面剔除。 将模板操作设置为在深度失败时递增(仅计算对象后面的阴影)。 渲染阴影体积。 使用背面剔除。 将模板操作设置为在深度失败时递减。 渲染阴影体积。
对于模板缓冲区的精度,深度失败方法与深度传递方法具有相同的考虑。此外,与深度传递类似,它有时也称为 z-fail 方法。
William Bilodeau 和 Michael Songy 于 1998 年 10 月发现了这项技术,并于 19991 在 Creative Labs 开发人员会议 Creativity 上介绍了该技术。 Sim Dietrich 在 1999 年的 Creative Labs 开发者论坛上介绍了这种技术 [2]。几个月后,William Bilodeau 和 Michael Songy 于同年提交了该技术的美国专利申请,美国专利 6384822,题为“Method for rendering shadows using a shadow volume and a stencil buffer”,于 2002 年发布。 id Software 的 John Carmack 2000 年在 Doom 3 [3] 的开发过程中独立发现了该算法。由于他向广大公众宣传了这项技术,因此它通常被称为 Carmack's Reverse。
【讨论】:
除了 Bilodeau 和 Songy 击败他两年。我想不出卡马克实际上发明了(而不是实现) @Michael Stum:+1 因为你得到了 Carmack 的 Reverse 正确...我的回答得到了 +12 的赞成票,我的名字是对的,但我的记忆对我起了作用,因为我描述了其他东西:) 【参考方案9】:ADL - Argument Dependent Lookup 也称为 Koenig 查找(在 Andrew Koenig 之后,尽管我认为他并不欣赏它,因为它并没有按照他最初的计划进行)
异常保证通常称为亚伯拉罕保证 (Dave Abrahams),请参阅 (http://en.wikipedia.org/wiki/Abrahams_guarantees)
Liskov 替换原则http://en.wikipedia.org/wiki/Liskov_substitution_principle - Barabara Liskov
【讨论】:
【参考方案10】:也许Hungarian notation 可能符合条件?它是由Charles Simonyi(匈牙利人)发明的。
【讨论】:
不,只有当它是由一个叫匈牙利人的人发明时才重要,比如德国巧克力蛋糕 B-)【参考方案11】:与贝叶斯相关的东西怎么样:贝叶斯过滤、贝叶斯推理、贝叶斯分类。虽然植根于统计数据,但这些技术已在大量与编程相关的应用程序中找到了自己的方式。
【讨论】:
【参考方案12】:K&R(Kernighan 和 Ritchie)和 Allman 缩进样式。
【讨论】:
【参考方案13】:在 C++ 中,Schwartz counter(又名 Nifty Counter)习语用于防止共享资源的多个静态初始化。它以 AT&T 的 C++ iostream 的原始创建者 Jerry Schwartz 的名字命名。
【讨论】:
【参考方案14】:Boyer-Moore字符串搜索算法:它可以通过少于N次操作在长度为N的字符串中找到一个字符串。
【讨论】:
【参考方案15】:BWT (Burroughs Wheeler Transform) 在数据压缩中非常重要。
【讨论】:
【参考方案16】:看到还没有人提及HindleyMilnerType Inference,我感到非常震惊。
【讨论】:
【参考方案17】:我很震惊没有人提到Backus–Naur Form (BNF),以John Backus和Peter Naur命名。
【讨论】:
【参考方案18】:Jensen's Device
【讨论】:
以上是关于著名的同名编程技术[关闭]的主要内容,如果未能解决你的问题,请参考以下文章