zoukankan      html  css  js  c++  java
  • 二、程序语言基础知识

    1.语言概述

    基本概念

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

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

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

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

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

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

          源程序

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

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

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

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

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

      程序语言的分类:

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

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

        函数式程序设计语言:

        逻辑型程序设计语言:

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

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

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

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

          数据组织形式分类:

          

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

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

        函数

    2.语言处理程序

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

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

      汇编语言程序:

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

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

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

      

       文法:

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

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

        文法分类

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

        

         

        

         

        

        

        

          

         

        

        

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

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

      

      

      

      

      

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

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

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

      

      

      

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

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

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

        3.寄存器的分配

        4.计算次序的选择

     解释程序基本原理

      

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

      

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

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

      2.解释灵活性更高

      3.解释可移植性更高

    DFA与NFA:

      应用

      

      

        

  • 相关阅读:
    20200722T1 【NOIP2015模拟10.29A组】三色树
    【NOIP2015模拟10.29B组】抓知了
    20200721T2 【NOIP2015模拟10.22】最大子矩阵
    20200721T1 【NOIP2015模拟10.22】矩形
    20200720T4 五子棋
    [JZOJ3809] 设备塔
    注册了!
    Python之元组和集合
    Python中列表详解
    python 字符串
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/5644909.html
Copyright © 2011-2022 走看看