软件设计师必考精华 - 程序设计语言

目录

程序设计语言

1、常见程序设计语

2、常见高级语言

3、文法和语言表示

3、程序执行和参数传递


程序设计语言

1、常见程序设计语

  • 低级语言:0和1组成的指令序列,面向机器的语言,机器执行效率高

    • 机器语言:能直接被机器执行,每条指令0、1组成

    • 编译语言:符号化的机器语言

  • 高级语言:程序人员编程效率高,机器执行效率低,可移植性强

汇编语言

类型特点
指令语句机器指令语句,汇编后产生能被CPU识别并执行的机器代码,如ADD、SUB 算术运算指令、逻辑运算指令、转移指令、传送指令
伪指令对汇编过程进行控制的指令,但不是可执行指令,汇编后不产生机器代码 包括定义语句、开始语句、结束语句
宏指令多次重复使用的程序段

2、常见高级语言

高级程序设计语言一般不依赖于机器硬件

语言特点
FORTRAN第一个科学计算的高级语言
HTML静态网页,文本标记语言
PHP动态网页
Java半解释型语言
LISP函数式程序设计语言,大量递归,人工智能领域
Prolog常用于数据库
C编译型语言
C++开发操作系统的底层 预处理-编译-链接
Python解释型语言,脚本语言 不需要进行变量/对象类型声明的弱类型语言

脚本语言:为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言

  • 脚本语言主要采用解释方式实现

  • 函数和编程语言很像, 也涉及变量

  • 常用来描述格式化和链接

  • 效率没有编译型语言高

语言的翻译方式:

  • 编译:分析源程序,翻译成等价的目标程序,源程序和编译程序都不参与目标程序在机器上运行,以后运行只需要执行保存的机器码,翻译同时做语法和语义检查,运行效率高

  • 解释:源程序一条条读入,一边翻译一边运行,过程中不产生目标程序,源程序和解释程序参与运行,程序控制权在解释程序,运行效率低

image-20210519205857653

3、文法和语言表示

分类自动机特点
0型图灵机短语文法,无限制文法。递归可枚举
1型限行界限自动机上下文有关文法 非终结符的替换需要考虑上下文
2型非确定自动机上下文无关文法 大多数通用程序设计语言
3型有限自动机正规文法

image-20210519210854460

  • 词法分析:对高级语言程序编译时,有限自动机,把字符流转换成记号流

  • 语法分析:判断分析语句的结构和形式,生成符号表,把记号流(短语、句子)构造一颗语法树,检查如:括号不配对

  • 静态语义分析:方法是语法制导翻译,语义分析,分析如:除数不能为0

  • 中间代码生成:有利于进行与机器无关的优化,常用后缀式、三地址码、树、图来表示

  • 目标代码生成:

    • 一是如何生成较短的目标代码;

    • 二是如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;

    • 三是如何充分利用计算机指令系统的特点,以提高目标代码的质量。

  • 递归下降分析方法是一种自上而下的语法分析

  • 归约分析是自底向上方法中的典型。先分析词,即词法分析。再分析词的组合,即语法分析

  • 在编译过程中:词法分析;语法分析;语义分析;目标代码生成是必须的,而代码优化和中间代码生成是可以不需要的。

  • 逆波兰式(中序遍历),元素在中操作

3、程序执行和参数传递

image-20210512140710074

传参引用:修改形参实际上改变了实参的值

程序执行错误

  • 动态错误动态语义错误,发生在程序运行,执行代码段的过程

    • 如死循环

  • 静态错误

    • 语法错误

    • 静态语义错误:可以被编译器发现

面向对象过程中,名词短语来识别对象,动词短语来实现操作


例题

P:E→E+T|E-T|T

T→T*F|F

F→-F|id

  • 先进行可能推出的运算符号判断

  • 在推导的过程中,会发现 ※只能通过T推导,此时必定经过了E+T或E-T,也就是说“+”或“-”必定在※前

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值