根据语言特性分类
update time 2019-1-3,Author:要你命三千又三千 type:学习笔记
几种语言方式的对比
根据语言的执行方式可以分为
解释型语言
指每次运行解释型程序时都要由解释器程序实时地将源代码转换成二进制形式运行。
关键字:实现 ,源代码转化成二进制,运行
编译性语言
编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。
关键字:编译成二进制,直接运行二进制
根据语言的结构是否可变
动态语言
程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的。
概念区分
动态类型语言
就是类型的检查是在运行时做的,比如如下代码是不是合法的要到运行时才判断
静态类型语言
静态类型语言的类型判断是在运行前判断(如编译阶段)。
优缺点对比
静态类型语言
优点在于其结构非常规范,便于调试,方便类型安全;
缺点是为此需要写更多的类型相关代码,导致不便于阅读、不清晰明了
动态类型语言
优点在于方便阅读,不需要写非常多的类型相关的代码;
缺点:自然就是不方便调试,命名不规范时会造成读不懂,不利于理解等。(由于类型容易混淆,不容易调试任何类型可以互相赋值的造成的结果)
静态语言:这个概念是相比较动态语言的特性产生的概念。
问题背景前提:
几点解释:
动态语言
由于结构可变,结构一般是函数(函数在语言中是有类型的),所以动态语言的函数没有类型,函数可以赋值给函数变量。由此带来了变量也是没有类型的(这就是动态类型:类型是不是合法的要到运行时才判断的)也即导致运行时最好采用解释性运行方式
静态语言
结构固定,所以运行要求快,所以人们一般采用编译式运行,直接运行二进制代码,采用静态类型。
注:动态类型是语言的特性,动态类型语言指的是类型特性。
脚本语言:即扩建语言,是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。
定义解释
根据语言创建的要求,缩短时间所以采用 解释性运行方式(不需要编译了),采用动态语言可以方便编程(动态语言的动态类型可以简化编程)。由于是解释性语言,一句一句运行,所以确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支形成了脚本(脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。)
由于这几个名词都是特性名词一般默认的含义是这样的、
动态语言----->会采用动态类型----->采用解释性运行;(有种语言具有以上三中优缺点)
诞生动态语言是解释性语言,动态语言是动态类型语言。
静态语言----->采用静态类型----->采用编译式运行方式(一种语言具有 以上的三种的优缺点)
牛逼的脚本语言
脚本语言是为了缩短传统的方式诞生的,所以一般默认采用解释性运行,动态语言,动态类型语言,组合是语言命令(采用解释性一句一执行),有了(动态,解释,动态类型)所有特性的优点和缺点。
问题:人们常说脚本语言是动态语言
是因为脚本语言创建时的,一般采用动态结构(从结构方面讲)。