【软件设计师考试32小时】2.程序设计语言基础知识

本文介绍了程序设计语言的基础知识,包括低级语言(如汇编)和高级语言(如Java、Python),以及程序设计语言的翻译形式(编译、解释)。详细阐述了程序设计语言的组成部分,如数据、运算、控制和传输,并解析了汇编程序和编译程序的工作原理。同时,讨论了文法、有限自动机、正规表达式和解释程序的基本概念,为理解计算机语言处理提供了全面的视角。
摘要由CSDN通过智能技术生成

2 程序设计语言基础知识

2.1程序语言的基本概念

(1) 低级语言与高级语言:
1)低级语言:汇编。
2)高级语言:常见的有Java、C、C++、PHP、 Python、Delphi等。
(2)翻译形式:汇编、解释、编译。
(3)程序设计语言的定义:语法、语义、语用。
(4)程序设计语言的分类:
1)过程式(命令式和结构化):FORTRAN、Pascal、C.
2)面向对象:Simula、Smalltalk、C++、Objective C、Java、Python.
3)函数式:lisp、 python、scala。
4)逻辑型:Prolog.
5)脚本语言:shell、bat、js. python。

2.2程序设计的基本成分

程序语言的基本成分包括数据、运算、控制和传输等。
(1)数据成分:
1)常量和变量。
2)全局量和局部量。
3)数据类型。
(2)运算成分:算式运算、关系运算、逻辑运算。
(3)控制成分:顺序结构、选择结构、循环结构。
分支结构示意图如图2-2所示,循环结构示意图如图2-3所示。
在这里插入图片描述
在这里插入图片描述
(4)函数:定义、声明、调用(值调用、引用调用)。

2.3汇编程序基本原理

1.汇编语言
汇编语言是为特定的计算机或计算机系统设计的面向机器的符号化的程序设计语言。用汇编语言编写的程序称为汇编语言源程序。因为计算机不能直接识别和运行符号语言程序,所以要用专门的翻译程序——汇编程序进行翻译。用汇编语言编写程序要遵循所用语言的规范和约定。
汇编语言源程序由若干条语句组成,一个程序中可以有三类语句:指令语句、伪指令语句和宏指令语句
2.汇编程序
将汇编语言所编写的源程序翻译成机器指令程序.汇编程序一般需要两次扫描源程序才能完成翻译过程。
第一次扫描:检查语法错误,确定符号名字;建立使用的全部符号名字表;每一符号名字后跟一对应值(地址或数)。
第二次扫描:在第一次扫描的基础上,将符号地址转换成真地址(代真);利用操作码表将助记符转换成相应的目标码。

2.4编译程序基本原理

1.编译程序
编译程序的工作过程分为六个阶段,如图2-4所示。
在这里插入图片描述

2.文法
G={Vt,Vn,S, P}
Vt是一个非空有限集合的符号,它的每个元素称为终结符号:Vn是一个非空有限集合的符号,它的每个元素称为非终结符号;S称为文法G的开始符号;P是一个非空有限集合,它的元素称为产生式。

  • 1型文法:又称为上下文有关文法。
  • 2型文法:又称为上下文无关文法。
  • 3型文法:又称为正规文法,使用最多。
  • 0型文法:短语文法。

3.有限自动机
计算机控制系统的控制程序具有有限状态自动机(FA)的特征,可以用有限状态机理论来描述。
(1)确定有限自动机(DFA)。自动机的每个状态都有对字母表中所有符号的转移。一个确定的有限自动机是个五元组(S,∑,f,s0,Z),其中:

  • S是一个有限集,其每个元素称为一个状态。
  • ∑是一个有穷字母表,其每个元素称为一个输入字符。
  • f是S×∑→S上的单值部分映像。代f(A,a)=Q表示当前状态为A、输入为a时,将转换到下一状态Q,称Q为A的一个后继状态。
  • so∈S,是唯一的一个开始状态。
  • Z是非空的终止状态集合,Z⊆S。
    一个 DFA可以用两种直观的方式表示:状态转换图和状态转换矩阵。状态转换图简称为转换图,是一个有向图。DFA中的每个状态对应转换图中的一个节点,DFA 中的每个转换函数对应图中的一条有向弧,若转换函数为f(A,a)=Q,则该有向弧从节点A出发,进入节点Q,字符a是弧上的标记

(2)非确定有限自动机(NFA)。自动机的状态对字母表中的每个符号可以有转移,也可以没有转移,对一个符号甚至可以有多个转移。一个不确定的有限自动机也是一个五元组,它与确定有限自动机的区别如下。
1)f是S×∑→2S上的映像。对于S中的一个给定状态及输入符号,返回一个状态的集合,即当前状态的后继状态不一定是唯一确定的。
2)有向弧上的标记可以是ε。
4.正规表达式
对于字母表∑,其上的正规式及其表示的正规集可以递归定义如下。
(1)ε是一个正规式,它表示集合L(ε)={ε}。
(2)若a是∑上的字符,则a是一个正规式,它所表示的正规集为{a}。
(3)若正规式r和s分别表示正规集L( r )和L(s),则:
1)r l s是正规式,表示集合L( r )∪L(s)。
2)r·s是正规式,表示集合L( r )L(s)。
3)r是正规式,表示集合(L( r ))**。
4)( r )是正规式,表示集合L( r )。
仅由有限次地使用上述三个步骤定义的表达式才是∑上的正规式,其中运算符“|”“。”“
”分别称为“或”“连接”和“闭包”。在正规式的书写中,连接运算符“”可省略。运算符的优先级从高到低的顺序排列为“**”“”“l”。
设∑={a,b},表2-1列出了∑上的一些正规式和相应的正规集。
在这里插入图片描述
若两个正规式表示的正规集相同,则认为二者等价,两个等价的正规式U和V记为U=V。例如,b(ab)=(ba)b,(alb)=(ab*)*。设U、V和W均为正规式,正规式的代数性质如表2-2所示。
在这里插入图片描述

5.正规式与有限自动机之间的转换
(1)有限自动机转为正规式的过程如图2-7所示。
在这里插入图片描述
(2)正规式转为有限自动机的过程如图2-8所示。
在这里插入图片描述

2.5解释程序基本原理

解释程序是另一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但是在运行用户程序时,它直接执行源程序或源程序的内部形式。因此,解释程序不产生源程序的目标程序,这是它和编译程序的主要区别。图2-9显示了解释程序实现高级语言的三种方式。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NI'CE'XIAN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值