编译与运行

源程序到可执行程序

仿宋字体内容引用自博客:什么是编译型语言和解释型语言

  计算机是不能理解高级语言的,更不能直接执行高级语言,所以任何使用高级语言编写的程序若想被计算机执行,都需要将其转换为计算机语言,也就是机器码(二进制)。而这种转换的方式有两种:
  1.编译
  2.解释
  因此高级语言可以分为编译型语言和解释型语言。

 

编译型语言


  使用编译型语言编写的源程序在执行之前,需要有一个专门的编译器,针对特定平台,将高级语言的源代码一次性的编译成可被执行的机器码,并被包装成该平台所能识别的可执行性程序的格式(如exe文件、dll文件),运行时,直接运行exe文件。在没有更改源程序的情况下,exe文件可以多次执行。因此常说编译型语言可以一次编译多次执行。
特点:
  1.编译器编译,系统执行。
  2.一次编译,多次执行。运行时脱离开发环境,运行效率高。
  3.编译型语言在不同平台上需要不同的编译器。
  4.常见的编译型语言:C、C++、Pascal。
   

解释型语言


  相对于编译型语言,解释型语言编写的源程序并不被直接翻译成机器语言,而是先被翻译成中间代码,再由解释器对中间代码解释成机器码并运行。因此使用解释型语言编写的源程序每次运行都需要由解释器解释成机器码,不能像编译型语言程序做到一次编译,多次运行。
特点:
  1.不需要编译,解释器直接解释成机器码执行。
  2.每次执行均需要解释器解释成机器码,运行效率低。
  3.不需要编译器,平台只需提供解释器就可以运行源程序。
  4.常见的解释型语言:python、R、JavaScript。

   

Java属于哪一类型的语言?

参考博客:浅析java程序的执行过程

使用Java语言编写的源程序(.java文件),需要经过Java编译器生成字节码(.class文件),再经过JVM将字节码解释成机器码并运行。Java代码必须经过编译,但是编译后并不能直接运行,还需要JVM解释运行,因此Java既可以说是编译型语言又可以说是解释型语言。
   

编译错误和运行错误

参考博客:编译时错误和运行时错误之间的区别
编译错误:源程序到可执行程序的过程发生了违反语言规则语法的编写错误,所有这些错误都由编译器检测。
运行错误:可执行程序在程序执行期间发生的错误。由于发生在编译完成后,所以编译器不能检测到运行错误,只能依靠程序员自行检错。
图片来自参考博客
图片来自参考博客

posted @ 2021-07-02 23:20  张宵  阅读(351)  评论(0编辑  收藏  举报