什么是静态强类型、编译型、并发型语言


1、编译型语言


需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。


2、解释型语言


解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。


编译型的语言包括:C、C++、Delphi、Pascal、Fortran 、Go


解释型的语言包括:Java、Basic、javascript、python、PHP


1、动态语言


在运行时可以改变其代码结构:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。


2、静态语言


运行时代码结构不可改变。


动态语言:Object-C、C#、JavaScript、PHP、Python、Erlang。


静态语言:Java、C、C++。


1、动态类型语言


动态类型语言是指在运行期间才去做数据类型检查的语言。


2、静态类型语言


在编译期间确定的或者说运行之前确定的结构,编写代码的时候要明确确定变量的数据类型。


动态类型语言:Python、Ruby、Erlang、JavaScript、swift、PHP、Perl。


静态类型语言:C、C++、C#、Java、Go、Object-C。


1、强类型语言:


强类型语言,一旦一个变量被指定了某个数据类型,如果不经过强制类型转换,那么它就永远是这个数据类型。


2、弱类型语言:


数据类型可以被忽略,一个变量可以赋不同数据类型的值。


强类型语言:Java、C#、Python、Object-C、Ruby、Go。


弱类型语言:JavaScript、PHP、C、C++(C和C++有争议,但是确实可以给一个字符变量赋整形值,可能初衷是强类型,形态上接近弱类型)。


动静态语言是指运行时代码结构是否可以改动;动静态类型是检查数据类型的时机是在运行时还是运行前、;强弱类型是指数据类型是否可以改变。