程序语言基础(中级软件测评师)

本文深入探讨了程序设计语言的层次,从机器语言、汇编语言到高级语言如Fortran、Pascal、C++和Java的特性。重点讨论了高级语言中的数据成分、控制结构以及编译器的工作阶段,包括词法分析、语法分析和语义分析。此外,还介绍了正规表达式、有限自动机的概念,并对比了传值与传址调用的区别。
摘要由CSDN通过智能技术生成

程序设计语言

程序设计语言

 机器语言:采用二进制编写的程序,直接面向机器的编程语言,机器可以直接运行

 汇编语言:用人们熟知的单词或字母代替对应的指令,便于程序员阅读和应用

 高级语言:分清每个高级语言的特点

                   

各类高级程序语言的特点
Fortran语言科学计算,执行效率高
Pascal语言为教学而开发,表达能力强
C语言指针操作能力强,高效
Lisp语言函数式程序语言,符号处理,人工智能
C++语言面向对象,高效
Java语言面向对象,中间代码,跨平台
C#语言面型对象,中间代码,.net
Smalltalk语言面向对象,程序设计语言,程序设计环境,应用开发环境
Prolog语言逻辑推理,简洁性,表达能力,数据库和专家系统
Python语言

一种脚本语言

解释程序与编译程序
解释程序也称解释器    源程序或者中间代码
编译程序也称编译器    目标语言程序
根本区别是否生产独立的目标程序

静态类型语言java、C/C++、C#、DELPHI、VB等
动态类型语言

asp、php、cgi、lisp、Perl、python、Smalltalk、Ruby、vbscript\javascript 等

                       (看定义变量时,是否要明确数据类型)

编译器的工作阶段

词法分析:试别出单词->

语法分析:写的代码是否符合相关的语法规则->

语义分析:只检查静态语义,只检查数据类型是否匹配,不会实际运行程序->

目标代码生成:生成目标代码

词法分析:非法字符,关键字或标识符拼写错误

语法分析:语法结构出错,if...end if 不匹配,缺分号

语义错误:死循环,零除数,其他逻辑错误

正规表达式和正规集

正规式正规集
ab字符串ab构成的集合
a|b字符串a或者b构成的集合
a*由0个或多个a构成的字符串集合
(a|b)*0到多个a或者b构成的字符串的集合
a(a|b)*以a为首字符+a或者b的任意字符串的集合
(a|b)*abb以abb结尾的ab任意组合的字符串的集合

对于字母表∑,其上的正规式及其表示的正规集定义如下:

(1) ε是一个正规式,它表示集合L( ε)={ ε}

(2)若a是∑上的字符,则a是一个正规式,它表示的正规集为{a}

(3)若正规式r和s分别表示正规集L(r)和L(s),则

r|s是正规式,表示集合L(r) ∪L(s)

r*s是正规式,表示集合L(r)L(s)

r*是正规式,表示集合(L(r)*)

(r)是正规式,表四集合L(r)

确定的有限自动机(S、∑、f、S0、Z)

S是一个有限集,其每个元素称为一个状态

∑是一个有穷字母表,其每个元素称为一个输入字符

F是S*∑->S 上的单值部分映射

       f(A,a)=Q表示当前状态A,输入为a时,转换到下一个状态Q,称Q为A的一个后继状态

s0∈S,是唯一的一个开始状态

Z是非空的终止状态集合,Z ⊆S

非确定的有限自动机与确定的区别

F是S*∑->2^S上的映射

     对于S中的一个给定状态及输入符号,返回一个状态的集合,即当前状态的后记状态不一定是唯一的

有向弧上的标记可以是空

程序的控制结构程序编译

程序控制结构

程序语言的数据成分

数据名称:由用户通过标识符命名

数据类型:说明数据占用内存的大小和形式

存储类别:说明数据在内存中的位置和生存期

作用域:说明可以使用数据的代码范围

生存期:说明数据占用内存的时间范围

数据类型
基本类型整形、字符型、实行、布尔类型
特殊类型空类型(void)
用户定义类型枚举类型
指针类型type*
抽象类型类类型

表达式

前缀表达式(+ab)

中缀表达式(a+b)

后缀表达式(ab+)逆波兰式

 考点:中缀表达式与后缀表达式之间的转换

例:表达式(a-b)*(c+5)的后缀式:ab-c5+*

传值与传址

形参:形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。

实参:实参出现在主调函数中,进入被调函数后,实参变量也不能使用。

传值调用:实际上重新复制了一个副本给形参,不改变调用函数实参变量的内容

传址调用:将实参的地址给形参,将改变调用函数实参变量的内容

例题:

 例题:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值