C++程序设计从零开始,第1张

C++程序设计从零开始,第2张

什么是程序?

一个程序,也就是过程的顺序,应该是若干个过程按顺序排列,这就是方法的描述。比如吃菜的时候,先用筷子夹起来,再用筷子夹到嘴里,最后嚼碎咽下去。其中的夹、送、嚼、咽称为命令,而蔬菜是资源,它们的状态(如形状、位置等。)是随着命令的执行而不断变化的。以上是对吃菜方法的描述,也就是吃菜的程序。

任何方法的存在都是为了改变某些资源的状态,所以任何方法的描述,也就是程序,也必须有命令和它作用的资源。命令是由程序的执行者实现的,比如上面提到的吃菜,其中的剪辑和交付都是由吃菜的人实现的,而资源必须是执行者可以改变的东西,命令只是告诉执行者如何改变。

计算机和上面一样,是对方法的描述,而这些方法是人们期望计算机做的事情(注意不是计算机应该做的事情,这经常会让很多人一直很困惑)。当人们需要做这些事情时,人们会提供一些资源,希望计算机能够对它们进行正确的修改。比如计算圆周率的程序,只是方法的描述,本身不可能有什么效用。直到执行时,它被人为赋予一块内存(内存请参考C++从零(3)开始),在告诉它计算结果的精度和计算结果的存储位置后,它会改变被人为赋予的那块内存的状态来显示计算结果。

所以对于一个计算机程序来说,命令就是CPU的指令,执行人必须是CPU因为它是CPU的指令,最后的资源就是CPU可以改变状态的内存(当然不止这些,比如端口等。,但一般应用程序使用大量内存)。因此,计算机程序是对计算机如何改变给定资源(通常是内存,但也包括其他硬件资源)的描述。注意是描述,除非执行,否则没有任何意义。

什么是编程?

编程就是写程序,就是制定方法。为什么会有办法?该方法用于说明。解释的原因很多,但计算机编程的根本原因是语言不一样,不仅不一样,概念也不一样。

人类的语言多种多样,但都是可以正确翻译的,因为人类生活在同一个四维物理空中,有着相同或相似的感知。但是在执行计算机程序时,CPU所能感受到的空和物理上的空有着严重的差异,所以无法将计算机程序翻译成人类语言的描述。这点很重要,导致大部分程序员写的代码很差。因为人所想的和计算机所想的没有共同点,所以漫无目的地随机编写程序,导致代码很差但可执行。

计算机的语言就是CPU的指令,因为CPU只有一种感知方式(准确的说是内存位置、中断响应等感知方式),不像人类还可以有肢体语言,所以计算机编程就是一个翻译过程,就是把人类语言的书写方式翻译成相应的计算机语言。这和一般的翻译完全不同。因为前面的红字,所以无法翻译。

既然翻译是不可能的,那计算机编程是为了什么?考虑一个木匠。我是客人。我告诉木匠我想要一把摇椅,一把躺上去很舒服的摇椅。然后木匠就开始刨木头,把摇椅下面的弯曲木头按照特殊的曲线做出来,保证我摇摆的时候重心不变,让我感觉舒服。我在这里编了一个简单的程序,只有一个指令——做一个摇起来很舒服的摇椅。木匠把我的程序翻译成一系列我看不懂的程序,比如刨木头,设计特定的曲木。之所以会这样,是因为我住的空房和木工(木工,不是木工)没有共同之处。在这里,木匠相当于计算机程序员和CPU(因为摇椅最终是木匠做出来的),木匠手艺就是CPU的指令定义,而木匠把我的程序翻译成一些木工规则,木匠通过他的手艺实现这些规则,也就是执行程序。

由于我住的上面空房间和木工(指木工,不是工人)毫无共同之处,所以无法翻译。但是,上面的翻译是成功的,但实际上并没有翻译。在木匠眼里,那个摇椅只是直木和曲木的组合,因为木工房里根本没有摇椅的概念空,但是我想用那堆木头做摇椅。如果我用那堆木头做凶器,那就是凶器,不是摇椅。

“废话和荒谬*!”也许你会这样喊,但计算机编程就是这么一回事。CPU只能感知指令,改变内存的状态(不考虑其他硬件资源和响应)。如果我们写一个计算圆周率的程序,给一块内存,执行它,完成后就会看到电脑屏幕显示正确的结果。但必须注意的是,这里的计算机实际上只是对一些内存值进行复制、加减乘除。计算机不知道是圆周率,如果执行程序的人不说是圆周率,那么结果就不是圆周率。可能是随机数,也可能是别的,但是和运气极好的圆周率惊人的相似。

我把以上的东西叫做语义学,也就是语言的意义。它不仅可以应用于计算机编程,而且实际上可以应用于许多技术,如力学、电子学、数学等。,有自己的语言,那些设计师负责把客户的简单程序翻译成相应语言描述的程序。作为一个程序员,知道语义的重要性是极其必要的(我在我的另一篇文章《语义的需要》中阐述了代码级语义)。有兴趣可以参考一下)。在后续文章中,我还会提到语义及其对编程的影响。如果你还没有理解编程是什么意思,随着后续文章的阅读,你应该能越来越清晰。

计算机编程的基础知识-编译器和连接器

我从来没见过(但应该有)什么C++教材讲什么是编译器和连接器(但我在很老的C教材里见过)。现在很多东西都被一个编程环境链接器VC隐藏封装了。在这里,了解它们是非常重要的。本系列后面会大量用到这两个词,这决定了它们能否被理解,比如声明、定义、外部变量、头文件等等。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++程序设计从零开始

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情