第一部分C语言入门 第一章 程序的基本概念

Linux C编程一站式学习
第一节程序和汇编语言

程序包含五种基本指令:输入,输出,基本运算,测试和分支,循环。
编写程序可以说就是这样一个过程:把复杂的任务分解成子任务,把子任务再分解成更简单的任务,层层分解,直到最后简单得可以用以上指令来完成。

shell script 和程序的区别是:shell script直接执行每一行命令,而不生成可执行文件。

机器语言为第一代语言,汇编语言为第二代语言,c/c++等高级语言为第三代语言。第三代语言告诉计算机一步一步怎么做,第四代以后的语言更多的是描述要做什么而不是怎么做,例如SQL语言。

习题:

1、解释执行的语言相比编译执行的语言有什么优缺点?

本书强调的是基本概念:程序语句指令组成,计算机只能执行低级语言中的指令(汇编语言的指令要先转成机器码才能执行),高级语言要执行就必须先翻译成低级语言,翻译的方法有两种--编译解释,虽然有这样的不便,但高级语言有一个好处是平台无关性。什么是平台?一种平台,就是一种体系结构,就是一种指令集,就是一种机器语言,这些都可看作是一一对应的,而高级语言和它们不是一一对应的,因此高级语言是平台无关的,概念之间像这样的对应关系尤其重要。那么编译和解释的过程有哪些不同?主要的不同在于什么时候翻译和什么时候执行。

==========================================


第二节 自然语言和形式语言

自然语言自然进化而来,形式语言是为特定应用人为设计的。编程语言是专门设计用以表达计算过程的形式语言。

形式语言有严格的语法规则,规则由符号和结构组成。关于符号的规则成为词法规则,关于结构的规则成为语法规则。

自然语言和形式语言的区别就像诗歌和说明文一样。诗歌刻意使用歧义和非字面意思,而程序语言是严格按照字面意思,毫无歧义的,能够完全通过对字符和结构的分析加以理解。

形式语言非常紧凑,结构很重要,细节的错误(如标点符号)会使程序面目全非。

==========================================


第三节 程序的调试

Bug有三类。

编译时的错误:语法错误在编译时就无法通过。

运行时的错误:语法正确的程序却无法正确运行,导致程序崩溃。

逻辑和语义错误:程序顺利编译并运行,但得到错误的结果。

你应该总是从一个能正确运行的小规模程序开始,每做一步小的改动就立刻进行调试。

Linus的早期工程之一是编写一个交替打印AAAA和BBBB的程序,这玩意儿后来进化成了Linux。

==========================================

第四节 第一个程序

Hello World!

编译时打开-Wall选项,消灭每一个警告。


习题:

1、尽管编译器的错误提示不够友好,但仍然是学习过程中一个很有用的工具。你可以像上面那样,从一个正确的程序开始每次改动一小点,然后编译看是什么结 果,如果出错了,就尽量记住编译器给出的错误提示并把改动还原。因为错误是你改出来的,你已经知道错误原因是什么了,所以能很容易地把错误原因和错误提示 信息对应起来记住,这样下次你在毫无防备的情况下撞到这个错误提示时就会很容易想到错误原因是什么了。这样反复练习,有了一定的经验积累之后面对编译器的 错误提示就会从容得多了。




你可能感兴趣的:(C语言学习,c语言,c,计算机)