语言的分类

动态语言和静态语言

  指动态类型语言和静态类型语言

  1.1 动态类型语言  

    动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

  1.2 静态类型语言

    静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

强类型定义语言和弱类型定义语言

  2.1 强类型定义语言

    强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

  2.1 弱类型定义语言

    数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

  2.3 注意:

    强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
    例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

3 Python 和 Java 到底是什么语言

  二者都是被广泛的成为解释性语言,但是为了弥补一点运行速度,Java和Python可以看做是编译型语言和解释型语言的结合体

  3.2 Java

    .java文件(Java源文件) -->> .class文件(编译结果文件)  -->> 虚拟机执行的是.class文件

    Java语言虽然比较接近解释型语言的特征,但在执行之前已经预先进行一次预编译,生成的代码是介于机器码和Java源代码之间的中介代码,运行的时候则由JVM(Java的虚拟机平台,可视为解释器)解释执行。它既保留了源代码的高抽象、可移植的特点,又已经完成了对源代码的大部分预编译工作,所以执行起来比“纯解释型”程序要快许多。

  3.2 Python  

    .py文件(Python源文件) -->> .pyc文件(编译结果文件) -->> 虚拟机执行.pyc文件

    其实Python和Java/C#一样,也是一门基于虚拟机的语言;当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。因此,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。

    当python程序运行时会先进行一次编译,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

所以我们应该这样来定位PyCodeObject和pyc文件  -->>  我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

时间: 2024-10-08 02:45:42

语言的分类的相关文章

SQL语言的分类和常见数据类型

SQL语言的分类和常见数据类型 SQL语言的分类 数据定义语言DDL DDL主要是对数据库对象进行创建.修改.删除的操作(create, alter, drop),数据库对象包括数据库.表.视图.索引: -- 创建表 create table table_name( 列名 数据类型 [键约束], ......, [约束] ); -- 修改表 alter table table_name add|modify|drop column_name; -- add|modify|drop 即向表中添加列

MySQL(2):SQL语言的分类

SQL:Structured Query Language (结构化查询语言) 分类: 1.数据操作(管理)语言:直接对数据进行操作:(DML:Data Management Language)    查询数据,获得数据.(DQL)    管理数据,增加,删除,修改数据.(DML) 2.数据定义语言(对保存数据的格式进行定义):对数据结构进行操作,比如对数据库01操作,比如对数据库02的表01进行操作(DDL:Data Defibition Language) 3.数据库控制语言(针对数据库软件

脚本语言的分类

分类(脚本语言分类的标准是脚本语言的语法风格) 基于命令的 --> 类似于汇编语言, 一行代码有操作码和参数组成, 所以不支持循环 基于规则 面向过程 面向对象: smalltalk是世界上第一个纯正的面向对象语言 原文地址:https://www.cnblogs.com/megachen/p/9775795.html

sql语言的分类

学习oracle,sql脚本语言是精髓.sql语言可分为四类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL. 下面系转载,原文链接:http://blog.csdn.net/tomatofly/article/details/5949070 1.DDL(Data Definition Language). 用来创建数据库的各种对象(表,视图,索引,同义词,聚簇等)CREATE TABLE/VIEW/INDEX/SYN/CLUSTER| | | | |表 视图 索

R语言与分类算法的绩效评估(转)

关于分类算法我们之前也讨论过了KNN.决策树.naivebayes.SVM.ANN.logistic回归.关于这么多的分类算法,我们自然需要考虑谁的表现更加的优秀. 既然要对分类算法进行评价,那么我们自然得有评价依据.到目前为止,我们讨论分类的有效性都是基于分类成功率来说的,但是这个指标科学吗?我们不妨考虑这么一个事实:一个样本集合里有95个正例,5个反例,分类器C1利用似然的思想将所有的实例均分成正例,分类成功率为95%:分类器C2成功分出了80个正例,3个反例,分类成功率仅83%.我们可以说

C语言关键字分类整理

C语言总览: 强类型,面向过程 简洁.灵活:32个关键字(C99标准新增5个,C11新增7个),9种控制语句,34种运算符 数据类型丰富,运算符丰富 结构化(控制语句).模块化(函数) 灵魂.特色:指针 数据类型(type)13个: void signed unsigned short long int float double char enum struct union typedef (_Bool _Imaginary _Complex) 类型限定.修饰(type specifier/qu

编译原理语言的分类

从推导式的左边到右边成为推导,从右边到左边成为规约 LL的分析是一个不断向右扩展的过程,类似一个循环,适合EBNF描述.因此LL是对语法树的一个前序遍历,它是从上到下的,从根节点的起始非终结符一直到叶子节点的终结符 LR的shift-reduce过程则是一个递推-回归的过程,SR总是从终结符开始,将终结符规约为推导式左边的非终结符.这是一个对语法树的后序遍历,它是从低到顶的,即从终结符的叶子节点到起始非终结符的根节点.因此用递归的BNF描述更加合适.由于左规约等同于右推导,因此称为LR Regu

Py徐少攻关之初探 编码 语言分类 (2)

操作系统 1.管理软硬件资源 2.管理调度计算机内部任务 3.提供给用户和其他计算机服务接口 编码 ASSIC 每一个字符统一需要8bit来存储 MBCS 为了扩充ASCII编码,以用于显示本国的语言,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准.这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码,又称为"MBCS(Muilti-Bytes Charecter Set,多字节字符集)".在简体中文系统下,

标记语言

标记语言(也称置标语言.标记语言.标志语言.标识语言)是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的计算机文字编码.与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记(markup)进行标识.当今广泛使用的标记语言是超文本标记语言(HyperText Markup Language,HTML)和可扩展标记语言(eXtensible Markup Language,XML).标记语言广泛应用于网页和网络应用程序.标