2024软件设计师备考讲义——(3)

news2024/12/23 23:48:40

程序设计语言

一、程序语言基础

1.基本概念

  • 低级语言:机器语言、汇编语言
  • 高级语言:
    • Fortran 科学计算,执行效率高
    • Pascal 为教学开发,表达能力强
    • Prolog 逻辑性程序设计语言
    • C语言 指针操作能力强,可以开发系统级软件,高效
    • C++ 面向对象,高效
    • Java 面向对象,中间代码,跨平台
    • C# 面向对象,中间代码,.net架构
    • Python 面向对象解释型语言

2.分类

  • 命令式和结构化:Fortran、Pascal、C
  • 面向对象:C++、Java、C#、Python、Smarttalk
  • 函数式:Scala、LISP、APL、Haskell、Scheme
  • 逻辑性:Prolog

3.成分

  • (1)数据成分:数据类型、变量、常量、全局/局部变量
  • (2)运算成分:运算符
  • (3)控制成分:顺序结构、选择结构、循环结构
  • (4)传输成分:允许数据传输的方式,如赋值处理、输入输出等
  • (5)函数:函数首部、函数体
    • 值调用:传递值
    • 引用调用:传递引用

二、语言处理程序

1.编译程序原理

  • 词法分析:读取源程序的字符流
  • 语法分析:输入的是记号流
  • 语义分析
  • 中间代码生成
    • 前缀表达式+ab、中缀表达式a+b、后缀表达式ab+
  • 代码优化
  • 目标代码生成

2.文法

字母表、字符、字符串集合及运算

  • 字母表∑ = {a,b} a和b是字符

  • 字符串的长度 |abc| = 3

  • 空串ε

  • 连接 字符串S和T的连接表示为S·T,连接号可省略

  • 是指包括ε在内的所有字符串任意组合 ∑={a,b} , ∑={aa,bb,ab,ba,aaa...}

  • 字符串的方幂,把字符串a自身连接n次得到的串,成为a的n次方幂

  • 字符串集合运算

    • 或(合并):A∪B = {α|α∈A或α∈B}
    • 积(连接):AB={αβ|α∈A且β∈B}
    • 幂:A的n次幂=A*A^(n-1) n>0 并规定A^0 = {ε}
    • 正则闭包+:A+ = A^1∪A^2∪A^3∪A^n∪.... 不包含空串ε
    • 闭包*:A* = A^0∪A+
  • 文法G是一个四元组,G=(V,T,P,S)

    • V 非终结符 不是语言的组成部分,不是最终结果,可以推导其他元素
    • T 终结符 是语言的组成部分,是最终结果,不能再推导其他元素
    • S 起始符 是语言的开始符号
    • P 产生式 用终结符代替非终结符的规则,a->b
  • 乔姆斯基文法分类

    • 0型文法:短语文法
    • 1型文法:上下文有关文法
    • 2型文法:上下文无关文法
    • 3型文法:等价于正规式

3.正规式

正规式正规集
ab字符串ab构成的集合
a丨b字符串a、b构成的集合
a*由0个或者多个a构成的字符串集合
(a丨b)*所有字符a和b构成的串的集合
a(a丨b)*以a为首字符的a、b字符串的集合
(a丨b)*abb以abb结尾的a、b字符串的集合

4.有限自动机

  • 是一个识别装置的抽象概念,能准确识别正规集
  • 分为确定有限自动机DFA和不确定有限自动机NFA
  • 输入一个字符能得出唯一后继就是DFA,得出多个后继则是NFA

5.语法分析方法

  • 自上而下的语法分析:从左到右,递归下降的思想
    给定文法G和源程序串r,从G的开始符号出发,
    反复使用产生式对句型中的非终结符进行替换(推导),
    逐步推导除r
  • 自下而上的语法分析:从右往左,移进-规约的思想
    从给定的输入串r开始,
    不断寻找字串与文法G中某个产生式的候选式进行匹配,
    并用产生式的左部代替(规约)之,逐步规约到开始符号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1553538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】第 9 问:四种信道划分介质访问控制?

目录 正文什么是信道划分介质访问控制?什么是多路复用技术?四种信道划分介质访问控制1. 频分多路复用 FDM2. 时分多路复用 TDM3. 波分多路复用 WDM4. 码分多路复用 CDM 正文 什么是信道划分介质访问控制? 信道划分介质访问控制(…

Go语言学习Day6:数组与切片

名人说:莫愁千里路,自有到来风。 ——钱珝 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1. 数组① 什么是数组② 数组的声明③ 初始化数组的几种方式④ 遍历数组元素⑤ 数组为值类型⑥ 数…

深入理解Vue 3.0中Async/Await 语法

引言 在 JavaScript 中,异步操作一直是一个挑战,因为它们通常涉及回调函数的嵌套和复杂的 Promise 链式调用。为了解决这些问题,ES8 引入了 Async/Await 语法,它提供了一种更简洁、易读的方式来处理异步操作。 Async/Await 主要…

使用mysql官网软件包安装mysql

确定你的操作系统,我的是Centos myqsl 所有安装包的地址:https://repo.mysql.com/yum/ 如果你是使用rpm安装你可以到对应的版本里面找到对应的包。 mysql 发行包的地址:http://repo.mysql.com/ 在这里你可以找到对应的发布包安装。 这里使用y…

【3DsMax+Pt】练习案例

目录 一、在3DsMax中展UV 二、在Substance 3D Painter中绘制贴图 一、在3DsMax中展UV 1. 首先创建如下模型 2. 选中如下三条边线作为接缝 重置剥 发现如下部分还没有展开 再选一条边作为接缝 再次拨开 拨开后的UV如下 二、在Substance 3D Painter中绘制贴图 1. 新建项目&am…

MIPI RFFE接口

1. 概况 MIPI RFFE是一种专门针对当前及未来无线系统在射频(RF)前端控制界面规范。随着手机射频系统日趋复杂,业界需要一个单一控制界面解决方案。MIPI联盟的RF前端控制界面(RFFE)规范通过提供一个可连接到收发器或无线电的总线界面解决了这一难题,可用于…

【机器学习】数据探索(Data Exploration)---数据质量和数据特征分析

一、引言 在机器学习项目中,数据探索是至关重要的一步。它不仅是模型构建的基础,还是确保模型性能稳定、预测准确的关键。数据探索的过程中,数据质量和数据特征分析占据了核心地位。数据质量直接关系到模型能否从数据中提取有效信息&#xff…

分布式部署LNMP+WordPress

需要四台虚拟机,实际上,我们只需要操作三台 一个数据库,一个nginx,一个php,还需要准备一个软件包wordpress-4.7.3-zh_C 首先配置nginx的服务环境 [rootnginx ~]# vi /usr/local/nginx/conf/nginx.conf 修改文件中的loc…

1.8 python 模块 time、random、string、hashlib、os、re、json

ython之模块 一、模块的介绍 (1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句 (2)python对象定义和python语句 (3)模块让你能够有逻辑地…

从零开始的软件开发实战:互联网医院APP搭建详解

今天,笔者将以“从零开始的软件开发实战:互联网医院APP搭建详解”为主题,深入探讨互联网医院APP的开发过程和关键技术。 第一步:需求分析和规划 互联网医院APP的主要功能包括在线挂号、医生预约、医疗咨询、健康档案管理等。我们…

Elasticsearch 向量搜索

目标记录 ["你好,我的爱人","你好,我的爱妻","你好,我的病人","世界真美丽"] 搜索词 爱人 预期返回 ["你好,我的爱人","你好,我的爱妻"] 示例代码…

企业微信知识库:从了解到搭建的全流程

你是否也有这样的疑惑:为什么现在的企业都爱创建企业微信知识库?企业微信知识库到底有什么用?如果想要使用企业微信知识库企业应该如何创建?这就是我今天要探讨的问题,感兴趣的话一起往下看吧! | 为什么企业…

踏入网页抓取的旅程:使用 grequests 构建 Go 视频下载器

引言 在当今数字化的世界中,网页抓取技术变得越来越重要。无论是获取数据、分析信息,还是构建自定义应用程序,我们都需要从互联网上抓取数据。本文将介绍如何使用 Go 编程语言和 grequests 库来构建一个简单的 Bilibili 视频下载器&#xff…

小米汽车正式发布:开启智能电动新篇章

随着科技的不断进步,汽车产业正经历着前所未有的变革。智能电动汽车作为这一变革的重要方向,正吸引着越来越多的目光。在这个充满机遇和挑战的时代,小米汽车凭借其卓越的技术实力和深厚的市场底蕴,终于迈出了坚实的一步。今天&…

FSV13罗德与施瓦茨FSV13频谱分析仪

181/2461/8938产品概述: 罗德与施瓦茨 FSV13 是一款速度极快且多功能的信号和频谱分析仪,适用于从事射频系统开发、生产、安装和维修工作的注重性能、注重成本的用户。 在开发应用中,罗德与施瓦茨 FSV13 凭借其出色的射频特性、同类产品中无…

论文笔记:分层问题-图像共注意力问答

整理了2017 Hierarchical Question-Image Co-Attention for Visual Question Answering)论文的阅读笔记 背景模型问题定义模型结构平行共注意力交替共注意力 实验可视化 背景 视觉问答(VQA)的注意力模型在此之前已经有了很多工作,这种模型生成了突出显示…

EDA 全加器设计及例化语句应用

文章目录 前言一、全加器是什么?二、使用步骤1.半加器2.全加器1.新建一个全加器工程2.添加半加器的.v文件到全加器工程中3.新建全加器.v文件,写程序,调用半加器.v文件 完成例化 三、仿真效果总结 前言 提示:这里可以添加本文要记…

【Linux】体验一款开源的Linux服务器运维管理工具

今天为大家介绍一款开源的 Linux 服务器运维管理工具 - 1panel。 一、安装 根据官方那个提供的在线文档,这款工具的安装需要执行在线安装, # Redhat / CentOScurl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start…

腾讯云邮件推送功能有哪些?如何有效使用?

腾讯云邮件推送如何设置?怎么用邮件推送做高效营销? 腾讯云作为业界领先的云服务提供商,其邮件推送功能在便捷性、稳定性和安全性上都有着出色的表现。那么,腾讯云邮件推送功能究竟有哪些呢?让AokSend来探个究竟。 腾…

基于Python的电商特产数据可视化分析与推荐系统

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 利用网络爬虫技术从某东采集某城市的特产价格、销量、评论等数据,经过数据清洗后存入数据库,并实现特产销售、市场占有率、价格区间等多维度的可视化统计分析,并…