zoukankan      html  css  js  c++  java
  • 程序语言基础

    1.基础知识

    低级语言:机器语言、汇编语言

    高级语言:

      汇编程序

      编译程序:1.生成目标程序OBJ;2.执行OBJ文件   效率高,占用资源小;兼容性差

      解释程序:每个语句逐一解释执行    可移植性好,开发速度快,与用户通讯方便;效率低

    2.编译系统基本原理(3-5分)

    编译程序:

      6个阶段:

        词法分析(关键字、标识符、常量、运算符、界符……)

        语法分析(表达式、赋值、循环,是否符合语法规则),语句的语法是否逻辑正确(自上而下分析法、自下向上分析法)

        语义分析(类型分析、检查),赋值语句左右端的类型是否匹配,除数是否为0……

        中间代码生成(逆波兰式、四元式、三元式、树),代码方式与具体的机器无关,可移植性,简单且明确的记号系统

        代码优化(变换、改造),更省时间、空间

        目标代码生成(变换成特定机器上的绝对指令代码,可重定位的指令代码、汇编指令代码),与硬件系统的结构、指令的含义有关

      状态转换图:状态转换机

      

      正规表达式:正规式

      确定的有限状态机;DFA

      不确定的有限状态机:NFA

      

    3.程序语言的控制结构

    表达式:前缀表达式(波兰表示法,从右向左扫)、中缀表达式(中缀记法)、后缀表达式(逆波兰法,从左至右)

    操作符优先级:

      (1)指针最优,单目运算优于双目运算(正负号)

      (2)先乘除,后加减

      (3)先算数运算,后移位运算,最后位运算 1<<3+2&7    (1<<(3+2))&7

      (4)逻辑运算最后运算

    过程控制:

      传值调用:数据传送是单向的(实参指向形参,形参无法返回实参)

      引用调用(地址调用):数据传送是双向的

  • 相关阅读:
    Python 爬虫入门(一)
    Dubbo、Zookeeper集群搭建及Rose使用心得(二)
    Dubbo、Zookeeper集群搭建及Rose使用心得(一)
    JAVA 加密算法初探DES&AES
    Android 蓝牙模块基础操作
    IntelliJ IDEA 使用随笔
    Maven+SSM框架实现简单的增删改查
    记录一次bug解决过程:数据迁移
    SSM框架+Plupload实现断点续传(Spring+SpringMVC+MyBatis+Plupload)
    JAVA开发环境
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/5794250.html
Copyright © 2011-2022 走看看