二、程序语言基础知识

1.语言概述

基本概念

  机器指令程序,最基本的计算机语言,二进制的机器指令序列;

  汇编语言,书写格式取决于特定计算机的机器指令。

  以上皆是低级语言,面向机器的语言。

  高级语言:不依赖于机器硬件的程序语言。如:java、c、c++、php、python……

  语言处理程序:将高级语言或汇编语言翻译为机器语言。

    方式分为:汇编、解释、翻译

      源程序

    解释程序:即解释器,将源程序翻译为中间代码

    编译程序:即编译器,将源程序翻译成目标语言程序

    区别:解释器,不生成独立的目标程序,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序控制权在解释程序;编译器,将源程序翻译成独立保存的目标程序在机器上运行,源程序和编译程序都不在参与到目标程序的执行过程中。

  程序语言的定义:语法、语义、语用、语境

  通用程序设计语言:程序语言能够用于范围广泛的问题求解过程。如c、java、

  程序语言的分类:

    命令式程序设计语言:基于动作的语言,面向过程。如c、结构化程序设计语言

    面向对象程序设计语言:c++、java、

    函数式程序设计语言:

    逻辑型程序设计语言:

  语言基本成分:数据、运算、控制、传输、

    数据:名称、类型、存储类别、作用域、生存期

      值是否改变分类:常量、变量

      作用域范围分类:全局量、局部量

      数据组织形式分类:

      

    运算:算数运算、关系运算、逻辑运算、位运算

    控制:顺序结构、选择结构、循环结构

    函数

2.语言处理程序

  将高级语言或汇编语言翻译为机器语言。

  分为:汇编程序、编译程序、解释程序

  汇编语言程序:

    三类语句:指令语句、伪指令语句、宏指令语句

  汇编程序:将汇编语言编写的程序翻译成机器指令程序。

  编译程序:将源程序翻译成目标语言程序(汇编语言或机器语言)

  

   文法:

    字母表、字符、字符串、空串、连接、

    字符串集合运算:或、积、幂、正则闭包、闭包

    文法分类

    状态转换图、状态转换矩阵

    

     

    

     

    

    

    

      

     

    

    

  中间代码分类:后缀式(逆波兰式)、三元式、四元式、树形表示

  语法单位:算数表达式、布尔表达式、赋值语句、控制语句…… 

  

  

  

  

  

   分配存储空间:基本数据类型、结构化数据类型(数组、记录……)、连接数据(返回地址、参数……)

   分配依据:作用域、生存期定义的规则

  分类:静态存储分配(编译时确定)、动态存储分配(允许递归过程、可变数据结构;栈分配、堆分配)

  

  

  

  优化:转换为等价、有效的目标代码;可在编译的各个阶段进行,最主要的优化是在目标代码生成以前对中间代码进行的

    1.中间代码形式:树与后缀表示形式(解释器)、四元式形式(编译器,与机器指令格式接近)

    2.目标代码:汇编语言形式、机器指令形式(绝对机器指令代码、可再定位机器代码)

    3.寄存器的分配

    4.计算次序的选择

 解释程序基本原理

  

  结构:分析部分(词法、语法、语义)、解释部分

  

  解释方式与编译方式的比较:

  1.编译可能取得更高的效率

  2.解释灵活性更高

  3.解释可移植性更高

DFA与NFA:

  应用

  

  

    

原文地址:https://www.cnblogs.com/panpanwelcome/p/5644909.html