软件工程师(一)

目录

计算机系统知识总结

一、计算机系统基础知识

(一)中央处理单元(CPU)

(二)数据表示

(三)海明码

程序设计语言基础知识总结

一、程序设计语言概述

(一)基本概念

(二)基本成分

二、语言处理程序基础

(一)编译过程

(二)确定的有限自动机和不确定的有限自动机

(三)语法分析方法


计算机系统知识总结

计算机系统知识是计算机科学的基础,涵盖了从硬件到软件的各个方面。本文将对计算机系统知识的第一章内容进行总结,包括计算机系统基础知识计算机体系结构安全性可靠性系统性能评测基础知识等方面。

一、计算机系统基础知识

(一)中央处理单元(CPU)

  1. 功能

    • CPU 具有程序控制操作控制时间控制数据处理功能。
  2. 组成
    • 主要由运算器、控制器、寄存器组和内部总线等部件组成。
    • 运算器:由算术逻辑单元 ALU、累加寄存器 AC、数据缓冲寄存器 DR 和状态条件寄存器 PSW 组成,执行算术和逻辑运算。
    • 控制器:由指令寄存器 IR、程序计数器 PC、地址寄存器 AR 和指令译码器 ID 组成,控制 CPU 工作。
  3. 指令和数据区分
    • CPU 依据指令周期的不同阶段来区分二进制的指令和数据。

(二)数据表示

  1. 数的表示
    • 机器数分类:有无符号数和带符号数之分。带符号数最高位为符号位,有原码、反码、补码、移码等编码方式。
    • 编码特点
      • 原码:最高位表示符号,数值 0 有两种形式。
      • 反码:正数反码即原码,负数反码是在原码基础上除符号位外各位按位取反,数值 0 也有两种形式。
      • 补码:正数补码即原码,负数补码是在原码基础上除符号位外各位按位取反后末位 + 1,数值 0 只有一种形式。
      • 移码:用作浮点运算的阶码,是原码补码的首位(符号位)取反得到。
    • 取值范围:机器字长为 n 时,各种码制表示的带符号数取值范围不同,原码和反码在 0 的表示上有差异,补码可多表示一个数。
  2. 浮点数
    • 表示方法不唯一,数值范围由阶码确定,数值精度由尾数确定。
    • 运算包括对阶、尾数计算和结果规格化。

(三)海明码

  1. 构成方法
    • 在数据位之间的确定位置上插入 k 个校验位,通过扩大码距实现检错和纠错,需满足 2^k - 1>=n + kn 为数据位,k 为校验位)。
  2. 校验位关系
    • 校验位处于 2 的 n(n = 0,1,2……)次方位置,其余位填充数据位。
  3. 计算校验码
    • 将信息位编号拆分成二进制表示,被校验的海明位下标等于参与校验该位的校验位下标之和。
  4. 检错和纠错原理
    • 接收方收到海明码后,校验位与其校验的位数分别异或,根据校验方式(偶校验或奇校验)判断是否正确。

程序设计语言基础知识总结

程序设计语言是计算机科学领域中至关重要的一部分,它是人类与计算机进行交流的工具。本文将对计算机系统知识第二章内容进行总结,涵盖程序设计语言概述以及语言处理程序基础等方面。

一、程序设计语言概述

(一)基本概念

  1. 解释和编译
    • 编译程序:生成独立的可执行文件,直接运行,运行时无法控制源程序,效率高。
    • 解释程序:不生成可执行文件,逐条解释执行,用于调试模式,可控制源程序,但执行速度慢,效率低。
  2. 程序设计语言定义三要素:语法、语义、语用。
  3. 程序设计语言的分类
    • 命令式和结构化程序设计语言:如 Fortran、PASCAL 和 C 语言。
    • 面向对象程序设计语言:如 C++、JAVA 和 Smalltalk 语言。
    • 函数式程序设计语言:如 LISP、Haskell、Scala、Scheme、APL 等。
    • 逻辑型程序设计语言:如 PROLOG。

(二)基本成分

  1. 数据成分
    • 包括数据数据类型,数据分为常量、变量、全局量和局部量,数据类型有整型、字符型等多种。
  2. 运算成分
    • 指明允许使用的运算符号及运算规则,包括算术运算逻辑运算等。
  3. 控制成分
    • 指明语言允许表述的控制结构,包括顺序结构选择结构循环结构
  4. 传输成分
    • 指明语言允许的数据传输方式,如赋值处理数据的输入输出等。
  5. 函数
    • C 程序由一个或多个函数组成,函数有定义声明调用三个概念。
    • 函数定义:包括函数首部和函数体,描述函数功能。
    • 函数声明:一般形式为返回值类型函数名(参数类型表);先声明后引用
    • 函数调用:有值调用和引用调用两种方式。值调用是将实参的值传递给形参,引用调用是形参为引用类型,形参是实参的别名。

二、语言处理程序基础

(一)编译过程

  1. 词法分析
    • 是编译过程的第一个阶段,从左到右逐个字符读入源程序,根据构词规则识别单词。
  2. 语法分析
    • 是编译过程的一个逻辑阶段,在词法分析基础上,将单词序列组合成各类语法短语,判断源程序结构是否正确
  3. 语义分析
    • 是编译过程的一个逻辑阶段,对结构正确的源程序进行上下文有关性质的审查,包括静态语义错误和动态语义错误审查,进行类型审查。
  4. 中间代码和目标代码
    • 中间代码根据语义分析产生,需经过优化链接生成可执行的目标代码,常用形式有后缀式三元式等。要考虑生成较短目标代码、充分利用寄存器和指令系统特点等问题。

(二)确定的有限自动机和不确定的有限自动机

  • 输入一个字符,若能得出唯一后继则是确定的有限自动机,否则是不确定的有限自动机。

(三)语法分析方法

  1. 自上而下语法分析
    • 最左推导,从左至右,如递归下降思想,利用函数递归调用模拟语法树自上而下构造过程。
  2. 自下而上语法分析
    • 最右推导,从右至左,如移进 - 规约思想,设置栈,将输入符号移进栈中,栈顶形成某产生式右部时用左部代替。

你可能感兴趣的:(笔记,经验分享)