程序语言的模式和分析

116 阅读1分钟

共同模式

从前几年开始,招聘启事上对语言的要求已经从一种扩展成两种了。那么学习一门新语言是不是从零开始?

其实不然,语言的目标,语言的功能,语言最终要在硬件上运行,这些共性让语言都有一些共同点。

程序语言都需要有

  1. 数据
    1. 常量、变量(是否可变)。JS之前声明变量只有var,不能从类型上对常量进行约束,后来加了const。
    2. 全局、局部(作用域)。有一类bug是由全局污染引起的,多个地方对同一个全局变量修改。所以作用域的控制有助于减少这类bug。
    3. 数据类型(类型)。
  2. 计算(算术、关系、逻辑,优先级)
  3. 控制(顺序,选择,循环)
  4. 传输

这个也挺好理解,程序都是信息转换器。那么信息,也就是数据,一定是必须的。

现在的计算机都是冯诺伊曼结构,其中控制器和计算器是这个结构的核心,那么语言也要完成这两个功能。

机器是人的辅助,所以传输通道少不来了。

总结

学习一门语言,先掌握这几个点。然后再慢慢拓展。


分析

阶段:产出:主要工作

  1. 词法:识别出单词种别和单词本身的值
  2. 语法:语法树
  3. 语义:符号表:静态语义错误和类型分析
  4. 中间代码:记号系统
  5. 代码优化
  6. 目标代码生成:特定的机器码