著名的同名编程技术[关闭]

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

【讨论】:

以上是关于著名的同名编程技术[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

一些著名的软件都用啥语言编写?

为啥在c++编程中,用close()关闭socket 的端口号时,提示close找不到标识符,我

开始为 iPhone 编程 [关闭]

[技术]为什么单片机C语言编程时某一变量有时被随意修改

什么样的C++模板编程可以称为“元编程”? [关闭]

C++ 模板元编程的最佳介绍? [关闭]