软件设计师考试(三)——程序设计语言


title: 程序设计语言
date: 2021-01-27 23:24:16
tags: exam
description: 软考(三)

1.编译与解释

1.1解释型语言和编译型语言

相同之处:都需要转换成二进制才能执行。
不同之处:
1、运行的时候是否需要编译器
编译型语言运行的是最终的二进制代码了,所以不再需要编译器;但是解释型语言边解释、边运行,所以运行时候还有部分代码没有解释好举个例子:在浏览器里,要看 html 效果,要通过带有内置编译工具的软件去查看(如:浏览器或者模拟浏览器的工具)。
2、执行速度
毫无疑问边翻译边执行的解释型语言的速度会比编译型语言运行速度要慢。但是CPU的运行速度如果很快,你可能看不出来,偶尔会看到“有点卡”的效果。
3、可移植性对比
编译型语言运行二进制内容,一旦 CPU 指令改变,之前的二进制文件可能运行不了了。即在其他硬件平台上运行,可能出错,如果想在其他平台运行就需要编译出新的二进制文件,所以编译型语言可移植性差;解释型语言在需要的时候才开始编译、运行,所以具有可移植性,在很多平台都能运行起来。
4、升级上对比
编译型语言的二进制文件如果要升级,需要重新下载一个新的二进制文件了。如QQ的升级,就是要重新下载、安装、覆盖;
而解释型的语言,只要重新写好源代码即可。如网站平台升级,用户只要重新刷新即可。
5、 应用领域
编译型语言应用领域通常是安装软件,如:桌面或手机上安装软件;
解释型的语言的应用领域通常是互联网,网站等,刷新就可以看到最新效果

在这里插入图片描述

在这里插入图片描述

1.2编译过程

image-20210206132623659

对源程序的结构进行分析

  • 词法分析:识别出一个个“单词”符号,如关键字、标识符、常数、运算符、分隔符等

  • 语法分析:将单词符号分解成语法单位,如表达式、语句、程序等

    依据语言的语义规则

  • 语义分析:分析各语法结构的含义,检查源程序是否包含静态语义错误

  • 中间代码生成:根据语义分析的输出生成中间代码,最常见的一种中间代码是三地址码(采取四元式)、树(图)

    (运算符,运算对象1,运算对象2,运算结果)

    中间代码不依赖于具体机器

  • 代码优化

  • 目标代码生成

1.3编译器和解释器

编译器将源程序翻译成目标语言程序,然后在计算机上运行目标程序

解释器直接解释执行源程序或将源程序翻译成魔种中间代码后再加以执行

2.文法

2.1文法的定义

image-20210206220449658

2.2文法的类型

image-20210206221830811

2.3语法推导树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WbpknyXy-1631545545456)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20210206223540185.png)]

3.正规式

4.有限自动机

5.表达式

6.传值与传址

7.多种程序语言特点

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值