当前位置: 首页 > news >正文

软件设计师知识点总结:程序设计语言基础

一.程序设计语言的基本概念

1.编程语言和解释程序

  • 低级语言与高级语言
    • 低级语言:机器语言(计算机硬件只能识别 0 和 1 的指令序列),如汇编语言
    • 高级语言:功能更强,抽象级别更高,与人们使用的自然语言比较接近,常见的有 Java,C,C++,PHP,Python,Delphi
  • 各程序设计语言特点
    • Fortran 语言(科学计算,执行效率高)
    • Pascal 语言(为教学而开发的,表达能力强,Delphi)
    • C 语言(指针操作能力强,高效)
    • Lisp 语言(函数式程序语言,符号处理,人工智能)
    • C++ 语言(面向对象,高效)
    • Java 语言(面向对象,中间代码,跨平台)
    • C# 语言(面向对象,中间代码,.Net)
    • Prolog 语言(逻辑推理,简洁性,表达能力,数据库和专家系统)

2.解释器与编译器

  • 解释器:翻译源程序时不生成独立的目标程序,解释程序和源程序都要参与程序的运行过程中
  • 编译器:翻译源程序时生成独立的目标程序,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的运行过程

例题

3.程序设计语言的基本成分

  • 数据:常量和变量、全局量和局部量、数据类型
  • 运算:算术运算、关系运算、逻辑运算
  • 控制:顺序结构、选择结构、循环结构
  • 传输:赋值、输入、输出
  • 函数:定义、声明、调用;传值(值调用)、传地址(引用调用)
    • 传值调用:将实参的值传递给形参,实参可以是变量、常量和表达式;不可以实现形参和实参间双向传递数据的效果。
    • 传引用(地址)调用:将实参的地址传递给形参,形参必须有地址,实参不能是常量(值)、表达式;可以实现形参和实参间双向传递数据的效果,即改变形参的值同时也改变实参的值。

  • 数据必须有类型有利用:
  1. 便于数据合理分配存储单元
  2. 便于对参与表达式计算的数据对象检查
  3. 便于规定数据对象的取值范围及能够进行的运算


二.编译,解释程序翻译阶段

编译方式:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。

解释方式:词法分析、语法分析、语义分析。编译器和解释器都不可省略词法分析、语法分析、语义分析,且这三个阶段的顺序不可交换;编译方式中,中间代码生成和代码优化不是必要步骤,可省略。

  • 词法分析

    • 输入:源程序
    • 输出:记号流
    • 作用:分析构成程序的字符及由字符按构造规则构成的符号是否符合程序语言的规定
  • 语法分析

    • 输入:记号流
    • 输出:语法树(分析树)
    • 作用:对各条语句的结构进行合法性分析,检查程序中的句子结构是否正确;可发现程序中所有的语法错误

  • 语义分析

    • 输入:语法树(分析树)
    • 作用:进行类型分析和检查;不能发现程序中所有的语义错误,仅能发现静态语义错误无法发现动态语义错误(动态语义错误需在程序运行时才能发现)存在语义错误时程序仍可能编译成功,例如 “a/0”,符合语法和静态语义,编译器无法检测,运行时才会报错,动态语义错误常见的还有死循环

  • 目标代码生成
    • 作用:生成与具体机器相关的目标代码,寄存器的分配处于此阶段
  • 中间代码生成

  • 符号表管理


三.正规表达式

正规式是词法分析的工具,对于字母表∑,其上的正规式及其表示的正规集可以递归定义如下:

  1. ε是一个正规式,它表示的集合L(ε)={ε}
  2. 若a是∑上的字符,则a是一个正规式,它所表示的正规集为{a}
  3. 若正规式α和β分别表示正规集L(α)和L(β),则:
    • α∣β是正规式,表示集合L(α)∪L(β)
    • αβ是正规式,表示集合L(α)L(β)
    • α∗是正规式,表示集合(L(α))∗
    • (α)是正规式,表示集合L(α)在正规式的书写中,连接运算符 “⋅” 可以省略;运算符的优先级从高到低为 “∗”“⋅”“∣”。


四.有限自动机

能正确识别正规集,计算机控制系统的控制程序具有有限状态(FA)的特征,可用有限状态机理论来描述。M={S,∑,δ,s0​,Z},各部分含义如下:

  • S:是一个有限集,每个元素为一个状态
  • ∑:是一个有穷字母表,每个元素为一个输入字符
  • δ:是转换函数,是一个单值对照
  • s0​:属于S,是其唯一的初态
  • Z:是一个终态集(可空)主要有五个符号集,由上面图示,可知用状态来表示十分清晰,由s输入一个0,可得出B,依次类推,一般考试,给出一个状态图,问能否构造出001这样的字符串,解决方法就是从起始s到终点Z之间是否有一条路,权值为001。本质就是有向图从起点到终点的遍历。
  • 初态——>终态

五.上下文无关文法

直接看题目:


六.中缀,后缀式转换(逆波兰式)

  • 前缀表达式:如 “+ab”
  • 中缀表达式:如 “a+b”
  • 后缀表达式:如 “ab+”后缀表达式的简单求法:从左到右对表达式加上括号,再依次把运算符加到本层次的括号后面


七.文法定义

文法定义为G={Vt​,Vn​,S,P},各部分含义如下:

  • Vt​:非空有限集合的符号,每个元素称为终结符号
  • Vn​:非空有限集合的符号,每个元素称为非终结符号
  • S:文法G的开始符号
  • P:非空有限集合,元素称为产生式
  • 正则闭包:A+=A1∪A2∪A3∪…∪An∪…(即所有幂的组合)
  • 闭包:A∗=A0∪A+,在正则闭包的基础上,加上A0={ε}
  • 示例:ab∗={ab,abab,ababab,…}
类型别称说明对应自动机
0 型短语文法G的每一条产生式满足α属于V的正则闭包且至少含有一个非终结符,而β属于V的闭包图灵机
1 型上下文有关文法G的任何产生式α→β满足∣α∣≤∣β∣,仅S→ε例外,但S不得出现在任何产生式右部线性界限自动机
2 型上下文无关文法G的任何产生式A→β,A为非终结符,β为V的闭包非确定的下推自动机
3 型正规文法G的任何产生式A→aB或A→a,a属于终结符的闭包,A,B都属于非终结符
http://www.dtcms.com/a/507185.html

相关文章:

  • 让Pycharm的Terminal(终端)进入创建好的虚拟环境
  • [css] 图片阴影 filter: drop-shadow
  • 第三章深度学习---核心库TensorFlow 和 PyTorch 实操指南(三)
  • BugKu Web渗透之 cookiesWEB
  • 【研究生随笔】Pytorch中的线性代数(微分)
  • 专业品牌设计网站建设网站建设实训心得
  • 从暴力到最优——力扣88.合并两个有序数组
  • C语言——回调函数的典型示例(分析详解)
  • 雷州网站建设公司网站备案半身照
  • 【AI 风向标】gpt-oss20b 模型测试与评估报告(2025-08-21)
  • Java MyBatis(二)--- 多表查询,# 和 $的区别,SQL注入,数据库连接池,动态SQL
  • 深圳小企业网站建设vs做网站怎么放视频
  • 企业 做网站云虚拟主机搭建网站
  • PHP实现企业微信 会话存档功能
  • centos 7.9 编译安装 freeswitch 1.10.12
  • FT32A103RDAT3是什么芯片?车规级32位国产MCU可替代STM32F103RD
  • uni-app从后端返回的富文本中的视频截取一帧为封面
  • 若依前后端分离版学习笔记(二十)——实现滑块验证码(vue3)
  • Linux 服务器安全巡检与加固:从命令到实操(CentOS/Ubuntu 通用)
  • 网站如何让百度收录官网seo是什么意思
  • STM32U5G9J-DK2开发板获取RAM占用
  • 从架构到运营:AIOps与O-AA™ 如何实现智能化企业运营
  • 徐州手机网站定制公司哪家好西安大型网站制作
  • 【Day 80】Linux-NAS 和 SAN 存储
  • C++可变参数模板
  • Python下载实战技巧的技术文章大纲
  • PostgreSQL高级特性解析:窗口函数与CTE
  • OpenBMC: BmcWeb处理WebScoket2 产生WebSocket对象
  • 构建AI智能体:六十九、Bootstrap采样在大模型评估中的应用:从置信区间到模型稳定性
  • 图论基础:探索节点与关系的复杂网络