软考知识汇总--程序语言

未完待续

程序语言

编译原理

  • 词法分析:输入->源程序、输出->记号流
    依据语言的词法规则,对源程序进行逐个字符地扫描,从中识别出一个个“单词”符号,主要是针对词汇的检查。
  • 语法(义)分析:输入->记号流、输出->分析树
    语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式、语句和程序”等。语法规则就是各类语法单位的构成规则,主要是针对结构的检查。
    语义分析阶段分析各语法结构的含义,检查源程序是否包含语义错误,主要针对句子含义的检查。
  • 中间代码生成 :一种简单且含义明确的记号系统,与具体的机器无关,可以有若干种形式。可以将不同的高级程序语言翻译成同一种中间代码。由于与具体机器无关,使用中间代码有利于进行与机器无关的优化处理,以及提高编译程序的可移植性。
  • 代码优化
  • 目标代码生成

编译过程

  • 编译过程中为变量分配存储单元所用的地址是逻辑地址,程序运行时再映射为物理地址
  • 中间代码是源程序的一种内部结构表示,或称中间语言。不依赖于具体的机器,中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,使用中间代码可提高编译程序的可移植性,常见的有逆波兰记号、四元式、三元式和树、三地址码、后缀树。
  • 语义分析阶段主要检查源程序是否包含语义错误,不能发现程序中所有的语义错误
  • 编译程序对高级语言源程序进行编译的过程中,要不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入符号表

程序设计语言基本概念

  • 程序运行时的用户内存空间一般划分为代码区、静态数据区、栈区和堆区,其中栈区和堆区也称为动态数据区。
    全局变量的存储空间在静态数据区
  • 编译器:将代码编译为机器码,再加以运行
  • 解释器:将代码一句一句运行,参与运行控制,程序执行的速度慢运行时结合是动态绑定,编译时结合是静态绑定

静态语言和动态语言

  • 静态语言:
  • 动态语言:程序在运行时可以改变其结构,例如脚本语言

你可能感兴趣的:(软考复习,软件工程,笔记)