强类型语言/弱类型语言动态语言/静态语言编译型语言/解释型语言(整理)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强类型语言/弱类型语言动态语言/静态语言编译型语言/解释型语言(整理)相关的知识,希望对你有一定的参考价值。
【强类型语言/弱类型语言】
强类型语言偏向于不容忍隐式类型转换。强类型语言有 Java、C#、Python 等。示例如下(Python):
>>> 67 + 8 75 >>> 67 + '8' Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> 67 + '8' TypeError: unsupported operand type(s) for +: 'int' and 'str'
弱类型语言偏向于容忍隐式类型转换。弱类型语言有 C、C++、javascript 等。示例如下(JavaScript):
> 67 + 8 75 > 67 + '8' "678"
无类型语言:汇编
【动态语言/静态语言】
动态语言是运行时检查变量类型的语言。动态语言有 Python、JavaScript 等。示例如下(Python):
>>> a = 7 >>> type(a) <class 'int'> >>> a = 'z' >>> type(a) <class 'str'>
静态语言是编译时检查变量类型的语言。静态语言有 C、C++、Java、C# 等。
【编译型语言/解释型语言】
编译型语言需通过编译器将源代码编译成机器码,之后才能执行。一般需经过编译、链接这两个步骤。编译型语言有 C、C++ 等。
解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。解释型语言有 Python、JavaScript 等。
半编译/半解释型语言,编译时不生成机器码,生成中间码(/字节码)。代码语言有 Java、C# 等。(Java 执行时接近解释型,C# 执行时接近编译型)
【强弱动静象限图】(图片来源:Dynamic Typing is NOT Weak Typing)
本文根据以下两篇文章整理:
1、知乎:弱类型、强类型、动态类型、静态类型语言的区别是什么?
*** walker ***
以上是关于强类型语言/弱类型语言动态语言/静态语言编译型语言/解释型语言(整理)的主要内容,如果未能解决你的问题,请参考以下文章
强类型语言/弱类型语言动态语言/静态语言编译型语言/解释型语言(整理)
编译型与解释型动态语言与静态语言强类型语言与弱类型语言的区别