一个典型程序的转换处理过程
举个例子
#include<stdio.h>
int main()
{
printf("hello,world\n");
}
得到的源程序hello.c 是用ASII文本表示的,体现的是十进制
来看一下hello.c这样的一个**(十进制)文本源程序如何在GCC+Linux平台变为可执行目标程序(二进制)**
当成功弄出了hello这样的可执行目标程序,就会把它放在存储单元中
你只需要在Linux shell平台输入 $./hello
就会看到运行结果 : hello.world
开发和运行程序需什么支撑
- 最早的程序开发很简单:直接输入指令和数据,启动后把第一条指令地址送PC开始执行
- 用高级语言开发程序需要复杂的支撑环境(怎样的环境?)
- 需要编辑器编写源程序
- 需要一套翻译转换软件处理各类源程序
- 编译方式:预处理程序、编译器、汇编器、链接器
- 解释方式:解释程序
- 需要一个可以执行程序的界面(环境)
- GUI方式:图形用户界面
- CUI方式:命令行用户界面
支撑程序开发和运行的环境由系统软件提供
最重要的系统软件是操作系统和语言处理系统
语言处理系统运行在操作系统之上,操作系统利用指令管理硬件
早起计算机系统的层次
- 最早的计算机用机器语言编程(机器语言称为第一代程序设计语言)
- 应用程序
- 指令集体系结构
- 计算机硬件
- 后来用汇编语言编程(汇编语言称为第二代程序设计语言)
- 应用程序
- 汇编程序
- 操作系统
- 指令集体系结构
- 计算机硬件
- 现代计算机用高级语言编程
- 应用程序
- 语言处理系统:各种语言处理程序(如编译、汇编、链接),运行时系统(如库函数、调试、优化等功能)
- 操作系统:包括人机交互界面、提供服务功能的内核例程
- 指令集体系结构
- 计算机硬件