语言按照语法分类
产生式(BNF)
用形式化的语言精确描述程序设计语言的系统,上下文无关
四则运算产生式
// 加法运算
<MultiplicativeExpression>:=<Factor>|
<MultiplicativeExpression> "*" <Factor>|
<MultiplicativeExpression> "/" <Factor>
// 乘法运算
<AddtiveExpression>:=<MultiplicativeExpression>|
<AddtiveExpression> "+" <MultiplicativeExpression>|
<AddtiveExpression> "-" <MultiplicativeExpression>
// 带括号的四则运算
<Factor>:=<Number>|
"(" <AddtiveExpression> ")"
类型系统
静态类型与动态类型
Java是静态类型,类型在编译阶段确定
JavaScript是动态类型,类型在运行时确定
强类型与弱类型
复合类型
函数签名:如(T1, T2) => T3
。java可以函数重载,javascript不可以函数重载
结构体:c有结构体,javascript对象字面量没有固定结构
子类型
协变:凡是能用Array
逆变:凡是能用Array