Rumah  >  Artikel  >  把高级程序设计语言编写的程序转换成等价的可执行程序需要经过什么

把高级程序设计语言编写的程序转换成等价的可执行程序需要经过什么

王林
王林asal
2021-01-12 14:41:2631351semak imbas

把高级程序设计语言编写的程序转换成等价的可执行程序需要经过编译和连接。高级程序设计语言可摆脱计算机指令系统和机器语言随机器不同的约束,把源程序转换为CPU能识别的目标代码。

把高级程序设计语言编写的程序转换成等价的可执行程序需要经过什么

本文操作环境:windows10系统、thinkpad t480电脑。

把高级程序设计语言编写的程序转换成等价的可执行程序需要经过编译和连接。

用户编写的源程序通过编译成为目标程序,但此程序还不能运行。因为,程序中所使用的标准函数子程序和输入/出子程序尚未连接入内。所以,还必须经过连接装配,才能成为一个独立的可运行的程序。

高级程序设计语言介绍

高级程序设计语言,亦称“算法语言”,简称“高级语言”。用易写和易懂的形式语言来编写程序的程序设计语言。可摆脱计算机指令系统和机器语言随机器不同的约束,并设计相应的编译程序(或称“编译器”),把适用于各种机器的高级语言编写的源程序转换为中央处理器能识别的目标代码。

按其描述计算过程的基本规范,分过程式语言(如FORTRAN语言、PASCAL语言、Ada语言等)、函数式语言(如LISP语言)、逻辑式语言(如PROLOG语言)和面向对象语言(在前几类语言上增添一些支持面向对象的描述机制而构成)。

解释程序是高级语言翻译程序的一种,它将源语言书写的源程序作为输入,解释成机器认识的二进制代码,解释一句后就提交计算机执行一句,并不形成目标程序。

编辑是对源程序进行编写。编译是指把高级语言源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序。

源程序转可执行程序

程序要运行起来,必须要经过四个步骤:预处理、编译、汇编和链接。

1、预处理:将存储在不同文件的源程序(.c文件)聚合在一起,将语言中的宏进行替换,比如预处理指令#include,让编译器打开包含的文件,将其程序与其他程序呆在一起.生成.i文件。

2、编译:预处理源程序(.i文件)变为汇编程序(.s文件)

3、汇编(assember):将汇编程序转换为可重定位(relocatable: 就是说文件里面的代码段和数据的地址还没有最终确定)的机器代码,这一步产生目标文件(.obj或.o文件)。

4、链接(linker)/加载(loader):链接就是把目标文件和其他分别进行编译生成的程序模块(如果有的话)及系统提供的标准库函数连接在一起,生成可运行的可执行文件的过程,加载时将各代码与数据定位到内存合适的位置,这一步产生最终的可执行文件。

1.png

扩展知识:

  • 源程序:

    源程序指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。

    源程序不能直接在计算机上执行,需要用“编译程序”将源程序编译为二进制形式的代码。

  • 目标程序:

    源程序经过“编译程序”编译所得到的二进制代码称为目标程序

    目标程序指源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名

  • 可执行程序

    可执行程序:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体,生成一个可供计算机执行的目标程序,成为可执行程序。

    简单来说,可执行程序是目标程序与库函数连接,形成的完整的可在操作系统下独立执行的程序

    可执行程序的扩展名为“.exe”(在dos/windows环境下)。

(学习视频分享:编程视频

Atas ialah kandungan terperinci 把高级程序设计语言编写的程序转换成等价的可执行程序需要经过什么. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn