Linux C编程一站式学习 1.程序的基本概念

1程序的基本概念:

程序和编程语言:

程序由一系列指令(Instruction)组成,指令是指示计算机做某种运算的命令,通常包括以下几类:
输入(Input)
从键盘、文件或者其它设备获取数据。
输出(Output)
把数据显示到屏幕,或者存入一个文件,或者发送到其它设备。
基本运算
执行最基本的数学运算(加减乘除)和数据存取,其实输入和输出也属于数据存取。
测试和分支(Branch)
测试某个条件,然后根据不同的测试结果执行不同的后续指令。
循环(Loop)
重复执行一系列操作。

在不同的编程语言(Programming Language)中,以上几种指令具有不同的形式。通常“指令”这个词专指机器语言(Machine Language)或者汇编语言(Assembly Language)等低级语言(Low-level Language)中的指令,而在C语言、C++、Java、Python等高级语言(High-level Language)中通常称为语句(Statement)或表达式(Expression)[1]。举个例子,同样一个语句用C语言、汇编语言和机器语言表示如下:

汇编语言和机器语言的指令是一一对应的,汇编语言有三条指令机器语言也有三条指令,汇编器就是做一个简单的替换工作。


C语言的语句和低级语言的指令之间不是简单的一一对应关系,一条a=b+1语句要翻译成三条汇编或机器指令,这个过程称为编译(Compile),由编译器(Compiler)来完成,显然编译器的功能比汇编器要复杂得多。

编译执行的过程,首先你用文本编辑器写一个C程序,然后保存成一个文件,例如program.c(通常C程序的文件名后缀是.c),这称为源代码(Source Code),然后运行编译器对它进行编译,编译的过程并不执行程序,而是把源代码全部翻译成机器指令,再加上一些描述信息,生成一个新的文件,例如a.out,这称为目标代码(Object Code)或可执行代码(Executable)[2],这个可执行代码才是计算机可以执行的程序。如下图所示:
图 1.1. 编译执行过程
 

高级语言以解释(Interpret)的方式执行,解释执行的过程和C语言的编译执行过程很不一样,例如写一个Python源代码,保存成program.py(通常Python程序的文件名后缀是.py),然后,并不需要生成目标代码,而是直接运行解释器(Interpreter)执行该源代码,解释器是一行一行地翻译源代码,边翻译边执行的。如下图所示:
图 1.2. 解释执行过程

 

编程语言仍在发展演化。以上介绍的机器语言称为第一代语言(1GL,1st Generation Programming Language),汇编语言称为第二代语言(2GL,2nd Generation Programming Language),C、C++、Java、Python等可以称为第三代语言(3GL,3rd Generation Programming Language)。目前已经有了4GL(4th Generation Programming Language)和5GL(5th Generation Programming Language)的概念,主要区别在于,4GL以后的语言主要不是通过输入、输出、基本运算、测试分支和循环这些基本指令来编程的,4GL以后的语言更多是在描述要做什么(Declarative)而不是描述具体一步一步怎么做(Imperative),具体一步一步怎么做完全交由编译器或解释器决定,例如SQL语言(SQL,Structured Query Language,结构化查询语言)就是这样的例子。

语句和表达式之间的划分在不同的编程语言中有不同的规定,例如赋值在C语言中是表达式,而在Python中就是语句。

程序:Program
指令:Instruction
输入:Input
输出:Output
分支:Branch
循环:Loop编程语言:programming Language机器语言:Machine Language
汇编语言:Assembly Language
低级语言:Low-level Language
高级语言:  High-level Language
语句:Statement
表达式:Expression
助记符:Menmonic
汇编器:Assembler
编译:Compile
编译器:Compiler
可移植:Portable
平台无关:Platform Independent
体系结构:Architecture
操作系统:Operating System
指令集:Instruction Set
本地:Native
源代码:Source code
目标代码:Object Code
可执行代码:Executable
解释:Interpret
解释器:Interpreter
声明式:Declarative
命令式:Imperative
SQL语言(SQL,Structured Query Language,结构化查询语言)

第一代语言(1GL,1st Generation Programming Language)

第二代语言(2GL,2nd Generation Programming Language)
第三代语言(3GL,3rd Generation Programming Language)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值