halo~我是bay_Tong桐小白
本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点
计算机语言处理相关知识要点区分汇总
【更新日志】
最近更新:
- 更新内容——修改计算机语言处理部分中的个别内容(2021.6.14)
- 持续更新中……
计算机语言处理
概述:
打一个简单的比方
显然这是一个略悲伤的故事
因此人们需要想办法完成类似这样的任务
计算机程序语言:
计算机中有很多种程序语言
越偏高级语言,越贴近应用层;越偏机器语言越贴近底层
针对计算机学科知识体系
- 程序语言设计——更专注于高级语言的应用、开发
- 微机原理与接口技术、操作系统——更专注于汇编语言的研究
- 计算机组成原理、计算机体系结构——更专注于机器语言的研究
语言处理:
翻译程序:将计算机编程语言编写的程序翻译成另外一种计算机语言的一般来说等价的程序。除了要完成语言间的转换外,还要进行语法、语义等方面的检查。编译程序、解释程序、汇编程序均被认为是翻译程序
编译程序:源程序语言是高级语言,目标程序语言是汇编语言或机器语言之类的低级语言,这样的翻译程序称为编译程序
解释程序:在词法、语法、语义分析方面与编译程序的工作原理基本相同,但在执行过程中不产生目标程序,而是直接解释执行源程序或源程序的内部形式(中间代码),即边解释边执行
汇编程序:源程序语言是汇编语言,输出目标程序语言是机器语言,这样的翻译程序称为汇编程序
编程语言概念区分
编译型语言与解释型语言
编译性语言: 程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,可直接使用编译的结果。如C、C++、swift等
- 优点:程序执行效率高
- 缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件,跨平台性相对稍差
解释型语言: 程序不需要编译,程序在运行时才进行翻译,它直接执行输入的源程序或源程序的内部形式(中间代码),每执行一次都要翻译一次。如JavaScript、Python、PHP等
- 优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护
- 缺点:每次运行的时候都要解释一遍,性能上不如编译型语言
混合型语言: 两种各类型的整合。如Java、C#等
动态语言与静态语言
动态语言: 运行时可以改变其结构的语言,即运行时代码可以根据某些条件改变自身结构
静态语言: 运行时结构不可变的语言
动态类型语言与静态类型语言
动态类型语言: 指在运行期间才去做数据类型检查的语言,强调数据类型的检查在编译之后。如python、JavaScript、PHP、swift
静态类型语言: 数据类型是在编译其间确定的或者说运行之前确定的。如C、C++、C#、Java
强类型语言与弱类型语言
强类型语言: 要求变量的使用要严格符合定义,所有变量都必须先定义后使用,一旦一个变量被指定了某个数据类型,如果不经过强制类型转换,那么它就永远是这个数据类型
弱类型语言: 数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值
部分内容参考博客园博主挽弓挽长文章《编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别》
持续更新中……
我是桐小白,一个摸爬滚打的计算机小白