- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
Java/C# 语言律师喜欢说他们的语言通过值传递引用。这意味着“引用”是在调用函数时复制的对象指针。
同时,在 C++ 中(以及在 Perl 和 PHP 中更动态的形式),引用是某个其他名称(或动态情况下的运行时值)的别名。
我对这里的词源感兴趣。 “引用”一词的早期用途是什么?让我们看看 pre-Java,但如果你知道 pre-C++ 的用途,那我也会感兴趣。
(我知道词汇会发生变化等,但我只是对历史感兴趣)。
最佳答案
在论文 "Semantic Models of Parameter Passing" 中有一个术语“引用调用”的早期用法。 Richard E Fairley,1973 年 3 月。
在早期,术语不一致。例如,Fortran 66 specification使用短语“按名称关联”和“按值关联”。我们现在将这些称为“引用调用”和“值调用”。相比之下,Algol 60 specification (1962) 使用了“名称调用”和“值调用”这两个术语……而这两者都不是我们目前所说的引用调用。
编辑:对于那些希望将指定 Fortran 66 的先驱者标记为对使用“名称关联”这一短语感到困惑的人,请考虑以下几点:
Fortran 66 是第一次尝试通过引用(我们现在称之为)调用来指定一种语言。
这只是第二次尝试使用支持参数传递的子例程指定语言。
Fortran 66 的“名称关联”可以被视为 Algol 60 的“名称调用”的受限(退化)形式。限制是在 Fortran 中,名称必须是简单的变量或数组名称,而在 Algol 60 中,它可以是任何表达式。
当时(1966 年)并不清楚 Algol 60 的“点名呼唤”注定要作为一个坏主意而被放弃。事实上,当我在 1977 年作为一名本科生学习 Algol 60 时,我不记得讲师提出“点名调用”是一个坏主意。 (它被呈现为难以理解......但这是另一回事。)
关于c# - 术语 "reference"的起源与 "pass-by-reference",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1856680/
我正在编写一个 Point 类(在 3d 空间中)并且一直想知道创建原点的最佳方法是什么。这是基本类(取自 Andy 的示例,以防万一有人想知道基本实现是什么): struct Point {
所以我遇到了 MY: WARNING cannot transform class XYZ java.lang.RuntimeException: Method code too large!
我有一个在 Glassfish 下运行的 Java EE 应用程序。 经过最近的一些更改,我们开始在日志中看到大量语句: [#|2011-12-16T11:20:27.007-0800|INFO|su
使用UncaughtErrorEvent.UNCAUGHT_ERROR时是否可以获得错误和错误事件的目标/起源? 我正在使用复杂的Flash应用程序记录用户的运行时错误,并想知道哪里出现了问题。 Un
既然除了窗口大小之外什么都没有变化,我的程序需要一个完整的核心来在最大化的窗口上渲染场景是否正常? 我在 Windows 上使用 C++ 语言的 Qt 4.7 绘制 150 张尺寸为 1754*124
我正在尝试让我的 Chrome 扩展程序将文件上传到 Google 云端硬盘,但我在授权时遇到了困难。我一直在研究 here 中的代码和说明,但我不知道在开发者控制台中为“Authorized Jav
我在通过 webhook 与 GitHub 连接的服务器上运行 Jenkins。不幸的是,我的构建偶尔会失败,我不知道为什么。有时重新启动 Jenkins ( sudo service jenkins
我在使用 Atmosphere 框架 (https://github.com/Atmosphere/atmosphere) 构建的网络应用程序中启用 CORS 时遇到问题 我的请求类似于: /**
我正在使用 AngularJS 开发一个 Web 应用程序。它包含一个管理界面,该界面依赖于另一个域上的 json-rpc API。 在我的本地环境中,如果我向 API 服务器发出请求(使用 Angu
我正在开发一个同时使用 REST 端点和 SockJS websocket 的服务器应用程序。这曾经在 Spring 5.2 及更低版本下工作正常。 然而,从 5.3 版本开始 ,以下方法存在于org
我刚刚开始使用 angularjs,并且使用 Rails 作为后端 api。我已经成功设置了 Angular rails 资源( https://github.com/FineLinePrototyp
我是 React js 的新手,我正在尝试根据用户输入简单地动态更改 map 但是对于特定位置的搜索请求,此错误会增加 XMLHttpRequest cannot load https://maps.
我对一个我想到的项目做了一些测试,其中涉及使用附近的地方。所以我和大佬一起开始摆弄 Google 的 Places Api。我在我的 map 上使用带有 openstreet 瓷砖的传单。现在一切都很
我是一名优秀的程序员,十分优秀!