Questions tagged «history»

有关编程和计算历史的问题。

3
“是否更改4的值?”-Hayes-Thomas测验是如何进行的?
1989年,李·费利克斯(Felix Lee),约翰·海斯(John Hayes)和安吉拉·托马斯(Angela Thomas)进行了一次黑客测验,形式是带有许多内部笑话的测验,如:“ 你吃粘泥吗?” 我正在考虑以下系列: 0015 Ever change the value of 4? 0016 ... Unintentionally? 0017 ... In a language other than Fortran? 在系列中是否存在使数字“ 4”特别的轶事? 是否有某些Fortran实现允许修改常量的值?当时可以用其他常用语言来实现吗?
24 history  fortran 

7
过程编程时代的设计模式是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 相似:20年前编程是如何完成的? OOP如今非常流行,其起源于1960年代的Simula 67,后来被Smalltalk和C ++所流行。我们有DRY,SOLID,以及许多有关面向对象世界中的设计模式的书籍。 但是在广泛采用OOP范式之前,编程的主要原则是什么?主要的设计模式是什么?



1
为什么.Net中的数组具有Length,而其他集合类型具有Count?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 例如,在C#中,数组具有Length属性。但是其他收集类型(如列表等)具有Count属性。这两个有何不同的原因吗?如果是这样,我想知道。

5
为什么几种流行的编程语言会受到C的影响?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 根据TIOBE索引,排名前10位的编程语言似乎受C的影响很大: 1. Java 该语言的大部分语法源自C和C ++,但具有更简单的对象模型和更少的低级功能。- wikipedia.org 2. C C是有史以来使用最广泛的编程语言之一,很少有计算机体系结构不存在C编译器。- wikipedia.org 3. C# 在.NET Framework的开发过程中,类库最初是使用称为简单托管C(SMC)的托管代码编译器系统编写的。1999年1月,安德斯·海斯伯格(Anders Hejlsberg)组建了一个团队,以建立当时称为Cool的新语言,该语言代表“类似C的面向对象语言”。- wikipedia.org 4. C ++ 它由Bjarne Stroustrup于1979年在贝尔实验室开始开发,是对C语言的增强。- wikipedia.org 5. Objective-C Objective-C是一种反射式的,面向对象的编程语言,它将Smalltalk样式的消息传递添加到C编程语言中。- wikipedia.org 6. PHP 他将这些脚本重写为C编程语言通用网关接口(CGI)二进制文件,对其进行了扩展以增加使用Web表单以及与数据库进行通信的能力,并将其称为“个人主页/表单解释器”或PHP / FI。- wikipedia.org 8. Python Python是在1980年代后期构思的,它的实现是1989年12月由荷兰CWI的Guido van Rossum开始的,它是ABC编程语言(其本身受SETL启发)的继承者,该语言能够进行异常处理并与Amoeba操作系统进行接口。- wikipedia.org ABC(编程语言)它的设计师声称ABC程序通常大约是等效Pascal或C程序的四分之一,并且更具可读性。- wikipedia.org 9. Perl Perl借鉴了其他编程语言的功能,包括C,shell脚本(sh),AWK和sed。- wikipedia.org 10. JavaScript JavaScript使用受C语言影响的语法-wikipedia.org 看来大多数人都从C借用了他们的语法和/或至少在开始时就受到了其他几种方式的严重影响。为什么?

5
为什么构建工具使用的脚本语言不同于基础编程语言?
当我意识到大多数语言的主要构建工具/系统使用的语言与基础编程语言本身所使用的语言不同时,我最近一直在为Nodejs项目使用一些构建工具。 例如,make不使用C或C ++编写脚本,而ant(也不是Maven)不使用Java作为脚本语言。 诸如Ruby之类的较新语言的确将相同的语言用于诸如rake之类的构建工具,这对我来说很有意义。但是,为什么情况并非总是如此?拥有使用与基础语言不同的语言的构建工具的优势是什么?

3
为什么复制指令通常命名为MOV?
在许多汇编器中,值复制指令通常称为“ MOV”,其说明中通常也包含“ move”(但是,可以使用其他词,如“ load”,“ store”,“ extract”等。 )找到不遵循此约定的ISA并不常见。 另一方面,在其他情况下,“ move”与“ copy”在破坏源的意义上有所不同(例如,Unix中的“ mv”与“ cp”,Norton Commander中的 Move [F6] 和克隆等)。 )汇编程序的“移动”确实具有语义上的“复制”,从而保持了源值的完整性。 我发现这至少是从IBM 1401(1959)开始的,但是IBM 360仅将此词用于存储内复制,而不用于寄存器和存储(使用“ load”和“ store”)之间的操作。 。但是,为什么它仍然被广泛使用,而不是被“复制”或“存储”取代?
23 history  assembly 

1
“ exit(-1)”来自哪里?
我看到在建议使用在互联网上有很多传统的软件和坏的教程exit(-1),return -1或类似的表示“异常终止”。问题是,至少在POSIX中,该问题-1从未存在过,并且不是有效的状态码。man 3 exit说明了exit()将的值返回status & 0377给父对象,即-1变为255。在非POSIX系统上,EXIT_FAILURE建议可移植。但是我从没看到“ -1表示异常终止”和“ EXIT_FAILURE可能不是1”,这表明他们清楚地相信“ -1”即使在非POSIX系统上也是常规的。 这是一个StackOverflow问题的例子,这个问题可以永久存在。软件“ unrealircd”也是exit(-1)用于终止程序的程序示例。实际上,这使与的交互变得困难systemd。 这种反模式是从哪里来的?在某些情况下有效吗?


6
C#的Pascal套管方法名称背后的原理/原因是什么?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 我刚刚开始学习C#。来自Java,C ++和Objective-C的背景知识,我发现C#的Pascal框其方法名称相当独特,并且一开始很难适应。这背后的原因和哲学是什么? 我猜这是因为C#属性。与Objective-C中的方法名可以与实例变量完全相同的情况不同,C#并非如此。我猜想属性(与支持它的大多数语言一样)的目标之一是使属性与变量和方法真正区分开。因此,在C#中可以有一个“ int x”,并且相应的属性变为X。为了确保属性和方法是不可区分的,因此,我猜测的所有方法名称也应以大写字母开头。(这只是基于目前为止我对C#的了解而得出的假设,我仍在学习中)。我很好奇这个好奇的指南是如何产生的(鉴于它是 (编辑:通过Pascal-casing,我的意思是PascalCase(基本上是camelCase,但以大写字母开头)。在大多数语言中,方法名称通常以小写字母开头)

2
谁设计了例外?
异常和异常处理来自何处? 我喜欢.NET使用它的方式,喜欢C ++支持它的方式(但是不幸的是,库使用返回代码或用C编写)。我知道它在所有新语言中的标准都是多少,但是谁首先设计了它,或者它是从哪里来的呢? C ++是使用它的第一语言吗?我不知道其他年龄更大的人。

2
为什么C使用星号作为指针?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我现在正在学习C。 我感到奇怪的是,创建者选择星号(*)作为指针的符号,而不是实际上看起来像指针(->)的符号。 考虑到取消引用和函数指针可能会造成混淆,使用星号是否有历史或什至实际的原因?
21 c  history  syntax 

11
1960年代从事人工智能研究的科学家和工程师最初有过自信的原因吗?
我刚刚开始了AI和数据挖掘课程,并开始了这本书。AI应用程序编程从对AI历史的概述开始。第一章介绍了1940年代至今的AI历史。我有一个特别的说法: [在60年代]人工智能工程师承诺过高而交付不足... 过度自信的原因是什么?是因为数学预测模型显示了突破即将来临,还是由于不断增强的硬件利用能力?

4
程序员如何利用网络在60年代和70年代共享昂贵的计算机资源?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 我还很年轻,在60年代和70年代还没有活着,无法像以前那样体验网络和编程。我一直在观看Van Jacobson关于内容中心网络的一些演讲,他在这些演讲中提供了历史观点,指出在60年代和70年代,网络旨在解决资源共享问题,例如访问稀缺的读卡器。或高速磁带机。然后,他继续说,这个时代的数据很少,而且数据“不存在于计算机上”,这是您随身携带的东西,例如在磁带或打印输出上。 我对此有两个问题: 1)人们如何“远程”使用读卡器之类的东西?当然,必须在某些时候将物理卡传送到计算机所在的任何位置。如果您在100英里外,这是否意味着他们提前将卡发布了,然后仅使用网络来执行运行这些卡座所需的命令? 2)人们通常如何获得其计划的结果?它是通过导线发送回去的,还是在程序运行回远程研究人员之后张贴了打印输出/胶带等? 如我所说,如果我把自己的时代弄混了,我深表歉意,当时我还活着。 谢谢。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.