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

Day42(补)【AI思考】-编译过程中语法分析及递归子程序分析法的系统性解析

文章目录

  • 编译过程中语法分析及递归子程序分析法的系统性解析
      • **一、总览:编译流程中的语法分析**
        • **1. 编译过程核心步骤**
      • **二、语法分析的核心任务**
        • **1. 核心目标**
        • **2. 现实类比**
      • **三、递归子程序分析法的本质**
        • **1. 方法分类**
        • **2. 递归子程序分析法的运作原理**
      • **四、实例解析:用递归子程序法分析算术表达式**
        • **1. 语法规则(简化版)**
        • **2. 递归函数设计**
        • **3. 分析过程演示(输入:`3 + 5 * (2 - 1)`)**
      • **五、递归子程序分析法的特性总结**
      • **六、为什么称为“自上而下”?**
      • **七、常见疑问解答**
        • **1. 如何处理左递归问题?**
        • **2. 递归子程序法与LL(1)分析的关系?**
        • **3. 实际编译器中的应用案例**
      • **八、总结:一张图理解递归子程序分析**

编译过程中语法分析及递归子程序分析法的系统性解析

让思想碎片重焕生机的灵魂:

对高级语言源程序进行编译或解释过程中需进行语法分析,递归子程序分析属于自上而下的分析法,怎么全面,准确,清晰,易懂地理解这句话


以下是关于编译过程中语法分析及递归子程序分析法的系统性解析,通过 分步拆解 + 现实类比 + 实例演示 的方式,彻底打通核心概念:


一、总览:编译流程中的语法分析

1. 编译过程核心步骤
  1. 词法分析 → 将字符流转换为单词(Token)序列
    a = 3 + 5[ID(a), OP(=), NUM(3), OP(+), NUM(5)]
  2. 语法分析 → 检查Token序列是否符合语法规则,生成抽象语法树(AST)
    :生成树状结构表示赋值语句
  3. 语义分析 → 检查类型、作用域等语义规则
  4. 中间代码生成 → 生成平台无关的中间表示(如三地址码)
  5. 优化与目标代码生成 → 输出机器码或字节码

二、语法分析的核心任务

1. 核心目标

验证Token序列是否遵循编程语言的语法规则(如变量声明、表达式结构、控制流结构等)。

2. 现实类比
  • 语法规则 如同自然语言的语法:
    英语:句子需符合“主谓宾”结构
    编程语言if语句需有条件和代码块
  • 语法分析 相当于语文老师检查句子结构是否正确。

三、递归子程序分析法的本质

1. 方法分类
  • 自上而下分析(Top-Down Parsing)
    从语法规则的最顶层开始(如“程序→函数→语句→表达式”),逐步展开推导。
    特点:类似拆解俄罗斯套娃,从外到内解析结构。
    代表方法递归下降分析法(Recursive Descent Parsing),即递归子程序法。

  • 自下而上分析(Bottom-Up Parsing)
    从Token序列开始,逐步归约到语法规则顶层。
    特点:像拼图,从碎片组合出完整图案。
    代表方法:LR分析、算符优先分析。

2. 递归子程序分析法的运作原理
  • 核心思想:为每条语法规则编写一个递归函数,函数之间互相调用,模拟语法规则的展开过程。
  • 关键特性
    • 递归:函数调用自身处理嵌套结构(如循环、条件语句)。
    • 预测分析:根据当前Token选择匹配的语法规则分支。

四、实例解析:用递归子程序法分析算术表达式

1. 语法规则(简化版)
表达式 → 项 + 表达式 | 项 - 表达式 | 项  
项 → 因子 * 项 | 因子 / 项 | 因子  
因子 → ( 表达式 ) | 数字 | 变量  
2. 递归函数设计
def parse_expression():node = parse_term()      # 先解析项while 当前Token是 +-:op = 当前Token读取下一个Tokenright = parse_term()node = 创建二元运算节点(op, node, right)return nodedef parse_term():node = parse_factor()    # 解析因子while 当前Token是 */:op = 当前Token读取下一个Tokenright = parse_factor()node = 创建二元运算节点(op, node, right)return nodedef parse_factor():if 当前Token是 '(':读取下一个Tokennode = parse_expression()if 当前Token不是 ')':报错读取下一个Tokenelif 当前Token是数字或变量:node = 创建叶子节点(当前Token)读取下一个Tokenelse:报错return node
3. 分析过程演示(输入:3 + 5 * (2 - 1)
  1. parse_expression() 调用 parse_term()

  2. parse_term() 调用 parse_factor() → 读取数字3

  3. 回到 parse_expression(),发现+,继续调用 parse_term()

  4. parse_term() 调用 parse_factor() → 读取数字5

  5. 发现*,调用 parse_factor() → 遇到(,递归调用 parse_expression()

  6. 解析(2 - 1)后返回,构建乘法节点

  7. 最终生成AST:

         +/ \3   */ \5   -/ \2   1
    

五、递归子程序分析法的特性总结

特性说明
直观性语法规则与递归函数一一对应,代码易读
灵活性可手动处理复杂语法(如错误恢复、自定义语义动作)
局限性需避免左递归(如 A → A + B),否则递归无限循环
适用场景LL(1)文法、教学用途、手动实现简单编译器
与LL分析的关系递归子程序法是LL(1)分析的实现方式之一,依赖向前看一个Token预测分支

六、为什么称为“自上而下”?

  • 分析方向:从语法规则的最顶层目标(如“程序”)开始,逐步向下分解为更小的语法单元(如“语句”→“表达式”→“项”)。
  • 类比现实
    • 如同写文章先列大纲(顶层结构),再填充章节(子结构),最后写段落和句子(底层细节)。
    • 递归子程序法就是按照大纲逐层细化展开的过程。

七、常见疑问解答

1. 如何处理左递归问题?
  • 原始左递归规则表达式 → 表达式 + 项

  • 改写为右递归

    表达式 → 项 表达式'
    表达式' → + 项 表达式' | ε(空)
    
  • 递归函数调整

    def parse_expression():node = parse_term()while 当前Token是 +:读取Tokennode = 创建加法节点(node, parse_term())return node
    
2. 递归子程序法与LL(1)分析的关系?
  • LL(1)分析:一种形式化的自上而下分析方法,需构造预测分析表。
  • 递归子程序法:是LL(1)分析的手动实现方式,通过条件判断(而非查表)选择产生式。
3. 实际编译器中的应用案例
  • GCC早期版本:C语言前端部分使用递归下降分析。
  • Java编译器(javac):采用手写的递归子程序分析器。
  • Python解释器:部分语法规则通过递归下降实现。

八、总结:一张图理解递归子程序分析

          语法规则树↓
递归函数逐层展开(parse_expression → parse_term → parse_factor)↓AST自顶向下构建↓通过递归调用模拟推导过程

掌握这一方法后,你甚至可以尝试手动为小型编程语言编写语法分析器!

AI模型版本:

中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-V3

采用深度思考模式,深度思考模型版本为R1

没有打开联网搜索

对话编号:2

相关文章:

Day42(补)【AI思考】-编译过程中语法分析及递归子程序分析法的系统性解析

文章目录 编译过程中语法分析及递归子程序分析法的系统性解析**一、总览:编译流程中的语法分析****1. 编译过程核心步骤** **二、语法分析的核心任务****1. 核心目标****2. 现实类比** **三、递归子程序分析法的本质****1. 方法分类****2. 递归子程序分析法的运作原…...

AcWing 190. 字串变换 --BFS-双向搜索

已知有两个字串 A, B 及一组字串变换的规则(至多 66 个规则): A1→B1 A2→B2 … 规则的含义为:在 A 中的子串 A1A1 可以变换为 B1、A2 可以变换为 B2…。 例如:A=abcd B=xyz 变换规则为: …...

visual studio导入cmake项目后打开无法删除和回车

通过Cmakelists.txt导入的项目做删除和回车无法响应,需要点击项目,然后选择配置项目就可以了...

【论文笔记】ZeroGS:扩展Spann3R+GS+pose估计

spann3r是利用dust3r做了增量式的点云重建,这里zeroGS在前者的基础上,进行了增量式的GS重建以及进行了pose的联合优化,这是一篇dust3r与GS结合的具有启发意义的工作。 abstract NeRF和3DGS是重建和渲染逼真图像的流行技术。然而,…...

Vue2中常用指令

文章目录 Vue2中常用指令1. v-text 动态渲染纯文本内容1. 作用2. 基本用法3. 示例4. 注意事项 2. v-html 动态渲染 HTML 内容1. 作用2. 基本用法3. 示例4. 注意事项 3. v-bind 动态绑定 HTML 属性1. 作用2. 基本用法3. 示例4. 注意事项5. 绑定class属性的用法6. 绑定style属性的…...

09-轮转数组

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 方法一:使用额外数组 function rotate(nums: number[], k: number): void {const n nums.length;k k % n; // 处理 k 大于数组长度的情况const newNums new A…...

本地Deepseek-r1:7b模型集成到Google网页中对话

本地Deepseek-r1:7b网页对话 基于上一篇本地部署的Deepseek-r1:7b,使用黑窗口对话不方便,现在将本地模型通过插件集成到Google浏览器中 安装Google插件 在Chrome应用商店中搜索page assis 直接添加至Chrome 修改一下语言 RAG设置本地运行的模型&#…...

算法——结合实例了解广度优先搜索(BFS)搜索

一、广度优先搜索初印象 想象一下,你身处一座陌生的城市,想要从当前位置前往某个景点,你打开手机上的地图导航软件,输入目的地后,导航软件会迅速规划出一条最短路线。这背后,就可能运用到了广度优先搜索&am…...

2025年3月营销灵感日历

2025年的第一场营销大战已经拉开帷幕了! 三月可是全年最值钱的营销黄金月——妇女节、植树节、315消费者日三大爆点连击,还有春分、睡眠日、世界诗歌日等20隐藏流量密码。 道叔连夜扒了18个行业数据,整理了这份《2025年3月营销灵感日历》&a…...

【认证授权FAQ】SSL/TLS证书过期导致的CLS认证失败

问题现象 问题分析 属于Agent操作系统的根认证机构过期问题,需要下载CA然后在系统安装。 DigiCert根证书和中间证书将在未来几年过期,一旦证书过期,基于证书颁发的SSL/TLS证书将不再信任,导致网站无法HTTPs访问。需要迁移到新的根…...

飞书专栏-TEE文档

CSDN学院课程连接:https://edu.csdn.net/course/detail/39573...

自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 自己…...

机器学习:集成学习和随机森林

集成学习 集成学习通过构建并合并多个模型来完成学习,从而获得比单一学习模型更显著优越的泛化能力,集成学习就是利用模型的"集体智慧",提升预测的准确率,根据单个模型方式,集成学习可分为两大类: 个体之间存在强依赖关系,其代表为Boosting算法个体之间不存在强依赖…...

力扣刷题(数组篇)

日期类 #pragma once#include <iostream> #include <assert.h> using namespace std;class Date { public:// 构造会频繁调用&#xff0c;所以直接放在类里面&#xff08;类里面的成员函数默认为内联&#xff09;Date(int year 1, int month 1, int day 1)//构…...

Jenkins 新建配置 Freestyle project 任务 六

Jenkins 新建配置 Freestyle project 任务 六 一、新建任务 在 Jenkins 界面 点击 New Item 点击 Apply 点击 Save 回到任务主界面 二、General 点击左侧 Configure Description&#xff1a;任务描述 勾选 Discard old builds Discard old builds&#xff1a;控制何时…...

5.8 软件质量与软件质量保证

文章目录 软件质量模型软件质量保证 软件质量模型 软件质量模型有ISO/IEC9126&#xff0c;McCall。 ISO/IEC9126从功能性、可靠性、易使用性、效率、可维护性、可移植性这6个方面对软件质量进行分析。功能性包含适合性、依从性、准确性、安全性、互用性。可靠性包含成熟性、容错…...

二次封装axios解决异步通信痛点

为了方便扩展,和增加配置的灵活性,这里将通过封装一个类来实现axios的二次封装,要实现的功能包括: 为请求传入自定义的配置,控制单次请求的不同行为在响应拦截器中对业务逻辑进行处理,根据业务约定的成功数据结构,返回业务数据对响应错误进行处理,配置显示对话框或消息形…...

Flutter项目试水

1基本介绍 本文章在构建您的第一个 Flutter 应用指导下进行实践 可作为项目实践的辅助参考资料 Flutter 是 Google 的界面工具包&#xff0c;用于通过单一代码库针对移动设备、Web 和桌面设备构建应用。在此 Codelab 中&#xff0c;您将构建以下 Flutter 应用。 该应用可以…...

Java 大视界 -- 边缘计算与 Java 大数据协同发展的前景与挑战(85)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

【第1章:深度学习概览——1.2 深度学习与机器学习、传统人工智能的区别与联系】

在科技飞速发展的时代,AI 技术如同一颗璀璨的明星,照亮了我们生活的方方面面。今天,让我们一起深入探寻 AI 技术的演进历程,看看它是如何从最初的简单规则系统,一步步发展成为如今强大的智能技术。 一、开篇故事:三杯咖啡看懂三代 AI 想象一下,你经营着一家充满温馨氛…...

游戏引擎学习第99天

仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板&#xff1a;制作一些光场(Light Field) 当前的目标是为游戏添加光照系统&#xff0c;并已完成了法线映射&#xff08;normal maps&#xff09;的管道&#xff0c;但还没有创建可以供这些正常映射采样的光场。为了继续推进&…...

NixHomepage - 简单的个人网站

&#x1f4bb; NixHomepage - 简单的个人网站 推荐下个人的开源项目&#xff0c;演示网站&#xff0c;项目链接 https://github.com/nixgnauhcuy/NixHomepage&#xff0c;喜欢的话可以为我的项目点个 Star~ &#x1f4f7; 预览 ⚙️ 功能特性 多平台适配 明亮/暗黑模式切换 W…...

window patch按块分割矩阵

文章目录 1. excel 示意2. pytorch代码3. window mhsa 1. excel 示意 将一个三维矩阵按照window的大小进行拆分成多块2x2窗口矩阵&#xff0c;具体如下图所示 2. pytorch代码 pytorch源码 import torch import torch.nn as nn import torch.nn.functional as Ftorch.set_p…...

Dockerfile 详解:构建自定义镜像

Dockerfile 是一种文本文件,包含了一系列指令,用于描述如何构建一个 Docker 镜像。通过 Dockerfile,我们可以将应用程序及其所有依赖打包成镜像,确保应用在不同环境中运行时保持一致性。掌握 Dockerfile 的写法和最佳实践,能够帮助我们高效地构建和管理容器镜像。 本文将…...

vue2老版本 npm install 安装失败_安装卡主

vue2老版本 npm install 安装失败_安装卡主 特别说明&#xff1a;vue2老版本安装慢、运行慢&#xff0c;建议升级vue3element plus vite 解决方案1&#xff1a; 第一步、修改npm 镜像为国内镜像 使用淘宝镜像&#xff1a; npm config set registry https://registry.npmmir…...

【细看open_r1】精读训练和评估模型以及生成合成数据的脚本(src/open_r1)

src/open_r1 目录下主要包含了一些用于训练和评估模型以及生成合成数据的Python脚本&#xff0c;下面我们对其中几个主要的Python文件进行深度剖析。 configs.py 这个文件定义了两个数据类 GRPOConfig 和 SFTConfig&#xff0c;它们分别继承自 trl.GRPOConfig 和 trl.SFTConf…...

数据库数据恢复—MongoDB丢失_mdb_catalog.wt文件导致报错的数据恢复案例

MongoDB数据库存储模式为文档数据存储库&#xff0c;存储方式是将文档存储在集合之中。 MongoDB数据库是开源数据库&#xff0c;同时提供具有附加功能的商业版本。 MongoDB中的数据是以键值对(key-value pairs)的形式显示的。在模式设计上&#xff0c;数据库受到的约束更少。这…...

Qt 控件整理 —— 按钮类

一、PushButton 1. 介绍 在Qt中最常见的就是按钮&#xff0c;它的继承关系如下&#xff1a; 2. 常用属性 3. 例子 我们之前写过一个例子&#xff0c;根据上下左右的按钮去操控一个按钮&#xff0c;当时只是做了一些比较粗糙的去演示信号和槽是这么连接的&#xff0c;这次我们…...

当 LSTM 遇上 ARIMA!!

大家好&#xff0c;我是小青 ARIMA 和 LSTM 是两种常用于时间序列预测的模型&#xff0c;各有优劣。 ARIMA 擅长捕捉线性关系&#xff0c;而 LSTM 擅长处理非线性和长时间依赖的关系。将ARIMA 和 LSTM 融合&#xff0c;可以充分发挥它们各自的优势&#xff0c;构建更强大的时…...

SpringBoot实战:高效获取视频资源

文章目录 前言技术实现SpringBoot项目构建产品选取配置数据采集 号外号外 前言 在短视频行业高速发展的背景下&#xff0c;海量内容数据日益增长&#xff0c;每天都有新的视频、评论、点赞、分享等数据涌现。如何高效、精准地获取并处理这些庞大的数据&#xff0c;已成为各大平…...

MySQL索引数据结构详解

索引的定义&#xff1a;方便Mysql更高效的获取排好序的数据结构 数据结构分为&#xff1a; 二叉树红黑树hash表B-Tree 二叉树规则&#xff1a;可视化二叉树 从父节点查找数据&#xff0c;每个节点最多有两个子节点&#xff0c;左子节点比父节点小&#xff0c;右子节点比父节…...

Python----PyQt开发(PyQt基础,环境搭建,Pycharm中PyQttools工具配置,第一个PyQt程序)

一、QT与PyQT的概念和特点 1.1、QT QT是一个1991年由The Qt Company开发的跨平台C图形用户界面应用程序开发 框架&#xff0c;可构建高性能的桌面、移动及Web应用程序。也可用于开发非GUI程序&#xff0c;比如 控制台工具和服务器。Qt是面向对象的框架&#xff0c;使用特殊的代…...

C语言——排序(冒泡,选择,插入)

基本概念 排序是对数据进行处理的常见操作&#xff0c;即将数据按某字段规律排列。字段是数据节点的一个属性&#xff0c;比如学生信息中的学号、分数等&#xff0c;可针对这些字段进行排序。同时&#xff0c;排序算法有稳定性之分&#xff0c;若两个待排序字段一致的数据在排序…...

物联网智能语音控制灯光系统设计与实现

背景 随着物联网技术的蓬勃发展&#xff0c;智能家居逐渐成为现代生活的一部分。在众多智能家居应用中&#xff0c;智能灯光控制系统尤为重要。通过语音控制和自动调节灯光&#xff0c;用户可以更便捷地操作家中的照明设备&#xff0c;提高生活的舒适度与便利性。本文将介绍一…...

哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测

哪吒闹海&#xff01;SCI算法分解组合四模型原创对比首发&#xff01;SGMD-FATA-Transformer-LSTM多变量时序预测 目录 哪吒闹海&#xff01;SCI算法分解组合四模型原创对比首发&#xff01;SGMD-FATA-Transformer-LSTM多变量时序预测效果一览基本介绍程序设计参考资料 效果一览…...

Python实现决策树(Decision Tree)算法

在 Python 中实现一个决策树算法&#xff0c;可以使用 sklearn 库中的 DecisionTreeClassifier 类。这个类实现了分类任务中的决策树算法。下面是一个简单的例子&#xff0c;展示如何使用 DecisionTreeClassifier 来训练决策树并进行预测。 1. 安装 scikit-learn 如果你还没有…...

刷题日记---二叉树递归专题

文章目录 1. 从根到叶的二进制数之和2. 二叉树的坡度3. 总结 1. 从根到叶的二进制数之和 描述&#xff1a; 给出一棵二叉树&#xff0c;其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。 例如&#xff0c;如果路径为 0 -> 1 ->…...

【C++】智能指针的使用及其原理

1. 智能指针的使用场景分析 下⾯程序中我们可以看到&#xff0c;new了以后&#xff0c;我们也delete了&#xff0c;但是因为抛异常导&#xff0c;后⾯的delete没有得到 执⾏&#xff0c;所以就内存泄漏了&#xff0c;所以我们需要new以后捕获异常&#xff0c;捕获到异常后dele…...

Jenkins 安装插件 二

Jenkins 安装插件 二 一. 打开 Dashboard 打开 Jenkins 界面&#xff0c;不管在任何界面&#xff0c;只需要点击左上角 Dashboard 按钮即可 二. 打开 Manage Jenkins 找到 Manage Jenkins -> System Configuration -> Plugins 点击 Plugins 打开界面如下 Updates&a…...

C++自研游戏引擎-碰撞检测组件-八叉树AABB检测算法实现

八叉树碰撞检测是一种在三维空间中高效处理物体碰撞检测的算法&#xff0c;其原理可以类比为一个管理三维空间物体的智能系统。这个示例包含两个部分&#xff1a;八叉树部分用于宏观检测&#xff0c;AABB用于微观检测。AABB可以更换为均值或节点检测来提高检测精度。 八叉树的…...

Java 大视界 -- 云计算时代 Java 大数据的云原生架构与应用实践(86)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

学习threejs,使用HemisphereLight半球光

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.HemisphereLight 二、…...

XML 命名空间

XML 命名空间 引言 XML&#xff08;可扩展标记语言&#xff09;是一种用于存储和传输数据的标记语言。在XML中&#xff0c;命名空间&#xff08;Namespace&#xff09;是一个非常重要的概念&#xff0c;它主要用于解决XML文档中元素和属性的命名冲突问题。本文将详细介绍XML命…...

kubernetes-cni 框架源码分析

深入探索 Kubernetes 网络模型和网络通信 Kubernetes 定义了一种简单、一致的网络模型&#xff0c;基于扁平网络结构的设计&#xff0c;无需将主机端口与网络端口进行映射便可以进行高效地通讯&#xff0c;也无需其他组件进行转发。该模型也使应用程序很容易从虚拟机或者主机物…...

【嵌入式Linux应用开发基础】ioctl函数

目录 一、概述 1.1. ioctl 的功能 1.2. 函数原型 1.3. 参数说明 1.4. 返回值 1.5. request 命令的定义 二、典型应用场景 2.1. 串口通信控制 2.2. 网络设备配置与管理 2.3. 字符设备控制 2.4. 块设备管理 2.5. 多媒体设备控制 三、关键注意事项 3.1. request 命令…...

开源的轻量级分布式文件系统FastDFS

FastDFS 是一个开源的轻量级分布式文件系统&#xff0c;专为高性能的分布式文件存储设计&#xff0c;主要用于解决海量文件的存储、同步和访问问题。它特别适合以中小文件&#xff08;如图片、视频等&#xff09;为载体的在线服务&#xff0c;例如相册网站、视频网站等。 FastD…...

从VGG到Transformer:深度神经网络层级演进对模型性能的深度解析与技术实践指南

一、技术原理&#xff08;数学公式示意图&#xff09; 1. 层深与模型容量关系 数学表达&#xff1a;根据Universal Approximation Theorem&#xff0c;深度网络可表达复杂函数&#xff1a; f ( x ) f L ( f L − 1 ( ⋯ f 1 ( x ) ) ) f(x) f_L(f_{L-1}(\cdots f_1(x))) f…...

深入了解 Oracle 正则表达式

目录 深入了解 Oracle 正则表达式一、正则表达式基础概念二、Oracle 正则表达式语法&#xff08;一&#xff09;字符类&#xff08;二&#xff09;重复限定符&#xff08;三&#xff09;边界匹配符&#xff08;四&#xff09;分组和捕获 三、Oracle 正则表达式函数&#xff08;…...

机器学习-监督学习

1. 定义与原理 监督学习依赖于标记数据&#xff08;即每个输入样本都对应已知的输出标签&#xff09;&#xff0c;模型通过分析这些数据中的规律&#xff0c;建立从输入特征到目标标签的映射函数。例如&#xff0c;在垃圾邮件检测中&#xff0c;输入是邮件内容&#xff0c;输出…...

Leetcode:学习记录

一、滑动窗口 1. 找出数组中元素和大于给定值的子数组的最小长度 右指针从左到右遍历&#xff0c;在每个右指针下&#xff0c;如果去掉左边元素的元素和大于等于给定值则左指针右移一次&#xff0c;直到小于给定值&#xff0c;右指针右移一个。 2.找到乘积小于给定值的子数组…...