人们什么时候开始思考'C是便携式汇编程序'?

Jac*_*tte 23 c

它似乎是流行的编程语言文化中的"被接受的概念","C是便携式汇编程序".我至少15年前第一次听到这个消息.但什么时候它真的成为流行文化的一部分?

注意:如果您不同意'C是便携式汇编程序',请跳过此问题.这个问题是关于"流行的编程文化".我会在这个问题上添加评论,你可以对那些不同意该陈述的人进行投票.

Jer*_*fin 38

C编程语言第一版的介绍:

C是一种相对"低级"的语言.这种表征不是贬义; 它只是意味着C处理大多数计算机所做的相同类型的对象,即字符,数字和地址.

[...]

同样,因为语言反映了当前计算机的功能,所以C程序往往足够高效,以至于没有强制编写汇编语言.

[...]

虽然C与许多计算机的功能相匹配,但它独立于任何特定的机器架构,因此只需稍加注意就可以轻松编写"便携式"程序......

至少将可移植性与汇编语言的一般功能相结合的一般想法似乎从一开始就存在.

  • 考虑到它与Unix的创建密切相关,如果情况并非如此,那将是令人惊讶的. (2认同)

S.L*_*ott 11

这就是C开发的原因.从一开始,C就是为便携性而设计的.

  • 当然 - 但它在设计时是否被认为是一种“非常低级”的语言? (2认同)
  • 在那个年代,它比“B”级更高。http://en.wikipedia.org/wiki/B_(programming_language) 和 BCPL。http://en.wikipedia.org/wiki/BCPL (2认同)
  • LISP 具有称为“CAR”和“CDR”的函数。寄存器编号的地址部分的内容和寄存器编号的递减部分的内容。当它专门识别硬件寄存器时,“高级”如何? (2认同)

AnT*_*AnT 6

C 是“便携式汇编程序”的概念源于一个简单的事实,即大多数“流行文化级别”C 程序员都懒得以“艰苦”的学术方式学习该语言,而更喜欢从实践中“学习”。大部分是通过将语言命令与隐含的底层机器代码相关联来实现的。大多数这些关联都基于对该语言的相当荒谬的误解,这些误解在这里(以及其他论坛上)表现为“我在 C 编程方面有 20 年的经验,但我不明白为什么我的类型-双关语黑客不再有效”。尽管如此,考虑到其他人没有足够的能力看到 C 代码背后的汇编,大多数“便携式汇编程序”类型实际上都对他们的方法感到自豪:)

换句话说,唯一将 C 视为可移植汇编程序的人是那些从未费心学习该语言的人。这确实只是一种流行文化。C 不是一个可移植的汇编程序,这并不是“同意”或“不同意”它的问题,而是了解是一个铁的事实的问题。您似乎提到的“流行编程文化”与专业的 C 编程世界几乎没有联系。

  • “换句话来说,唯一将 C 视为可移植汇编程序的人是那些从未费心学习该语言的人。” 诡异的。根据我的经验,“唯一*不*将 C 视为可移植汇编程序的人是那些从未费心去学好**另一种**语言的人。” 令人惊讶的是,每个人的看法都有所不同,不是吗? (5认同)
  • @JUSTMY CorrectOPINION 为了提供一个反例,我专业做C#,我以前专业做汇编,我做C和C++是为了好玩。如果你也想加入的话,我也做了 Matlab。我不认为 C 是可移植汇编,老实说,我不知道“C 是可移植汇编”这个说法是如何流行起来的。汇编是汇编,C 是 C,C 的功能比任何汇编语言都要高得多(即使在 MASM 等中存在宏增强功能)。此外,只有当您努力编写可移植代码时,C 才是可移植的。 (2认同)