美文网首页
程序是如何运行的

程序是如何运行的

作者: Super曲江龙Kimi | 来源:发表于2020-02-11 18:28 被阅读0次

程序编译和程序解释

计算机是理解不了人类的语言、同样也理解不了高级编程语言的,CPU能直接解析并运行的不是源代码而是本地机器代码


image.png

本地代码:


image.png

所以要保证高级编程语言能够正常运行,则需要进行程序的编译或者解释。

编译: 在运行之前将源代码转换成机器代码:C 、 C++。完成此过程的叫做编译器
解释: 在运行时进行源代码转换成机器代码: JS、PHP

JAVA既有编译过程也有解释过程
先编译成JVM字节码在JVM虚拟机下解释成机器代码

这样的好处就是一套源代码可以在不同CPU、不同操作系统下都编译成可以执行的机器代码。


image.png

链接

程序编译后并不一定可以直接使用,需要经过链接。因为编译后程序中使用的一些公共函数都在库文件(.lib文件其中存放着真正的函数文件DLL的路径)中,需要链接进来,将多个文件整合成一个exe文件的过程就是链接。


image.png

程序加载至内存

经过链接后生成的exe文件中的代码被加载到内存中执行,在内存中会开辟存储空间。包含运行时生成的栈和堆。函数中的临时变量在栈中,全局变量等都在堆中。


image.png

栈中的数据在函数执行完后会自动释放,而堆中的数据需要程序编写释放。否则会发送内存泄漏


image.png

汇编语言

汇编语言是更接近底层的语言,和本地机器语言是一一对应的。通过用助记符来表示一些操作。用汇编语言写的源代码也需要转换成机器代码执行,这一过程叫做汇编,而将机器语言转换回汇编语言叫做反汇编

image.png

C语言等高级语言可以通过编译器直接转换成机器语言,也可以通过特殊的编译器先转换成汇编语言。

相关文章

  • 程序是如何运行的

    程序编译和程序解释 计算机是理解不了人类的语言、同样也理解不了高级编程语言的,CPU能直接解析并运行的不是源代码而...

  • 程序是如何运行的?

    在我们学习编程时,往往关注的是某种语言以及对应的使用环境,在此基础上完成我们的业务开发并部署运行。抛开这个最常见的...

  • 程序是如何运行的

    做任何事情,对整体有个宏观的把握是非常有必要的,把握住了整体,就有了宏观概念,相当于有个骨架,以后所有的东西无非是...

  • 程序运行原理:程序是如何运行又是如何崩溃的?

    注: 本文是极客时间后端技术基础详解的读书笔记. 01 程序是如何运行起来的 程序: 分为可执行的程序和静态的文本...

  • (3) 程序是如何运行的?

    “生物仪器说”的理论道明了:人体及各种生物都是一部非常高级,非常完整,完全自动化的生物仪器。它有发射、接收、分析、...

  • JVM 虚拟机栈

    虚拟机栈 栈是运行时单位,堆是存储的单位; 栈解决程序运行问题,如何运行,如何处理数据; 堆解决数据如何存放,存放...

  • Java注解笔记

    什么是注解? 注解不是注释,注释是给程序员看的,而注解是给程序看的。 注解用来描述程序如何运行及在什么阶段来运行。...

  • 程序是怎么跑起来的——虚拟内存与动态链接

    Linux程序是怎么执行的——动态链接 0、前言 计算机的核心任务就是运行程序,而程序是如何运行的?这个问题一直困...

  • 一.基础原理

    1.1-程序是如何运行的 图——由程序到结果的演变 程序设计语言 | 高...

  • JVM调优:相关概念

    堆与栈 栈是运行时的单位,而堆是存储的单位。 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是...

网友评论

      本文标题:程序是如何运行的

      本文链接:https://www.haomeiwen.com/subject/nyoxfhtx.html