首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏周末程序猿

    ChatGPT|AI自制编程语言-语法解析1

    继续《AI自制编程语言》系列语法解析部分,先温习编译器执行步骤如下: 编译器执行步骤 而本篇主要集中语义解析和AST树生成部分,还未实现求值(下一篇《语法解析1》实现求值功能)。 1、语法解析 前面已经完成了词法解析部分,现在已经把每个Token都拿到了,那么要组合规则,比如let a = 10生成的词法结构如下: Type: LET, Value: let Type: IDENT , Value: a Type: ASSIGN, Value: = Type: INT, Value: 10 Type: EOF, Value: 下一步就是将这些词法转换为语法,这里就包括两个部分: 就可以用到递归下降解析器,递归下降解析器是一种自顶向下的解析方法,它从语法的开始符号开始,尝试将输入与语法的产生式进行匹配,这种解析器的名称来源于它的工作方式,它递归地下降到语法树的叶子节点,然后再返回到根节点 在实际使用中,递归下降解析器通常会与其他技术结合使用,以处理更复杂的语法和提高性能,例如,预测性解析器是一种改进的递归下降解析器,它使用查找表来预测下一个符号,从而避免了不必要的回溯。

    54200编辑于 2025-02-27
  • 来自专栏防止网络攻击

    C语言编程语法语法风格

    #include <stdio.h> int main(void) { printf("That is Right Style\n"); return 0; } 在一个标准的C语言程序中,最特殊的莫过于 能发明这种写法的人,必定是了解了,在C语言中,如果一个函数不显式声明自己的返回值,那么会被缺省认为是int,但这一步是由编译器掌控,然而C语言设计之初便是让我们对一切尽可能的掌握,而一切不确定因子我们都不应该让它存在 对于学习C语言,请使用.c文件以及C语言编译器练习以及编写C程序,请不要再使用C++的文件编写C语言程序,并且自圆其说为了效率而使用C++的特性在C语言中,我们是祖国的下一代,是祖国的未来,请不要让自己毁在当下 ,珍爱编程,远离清华大学出版社。 答案是C++并不支持void*隐式转换为其他类型的指针,但是C语言允许。

    64830编辑于 2023-10-14
  • 来自专栏防止网络攻击

    C语言编程语法—结构

    C 是区分大小写的编程语言。因此,在 C 中,Manpower 和 manpower 是两个不同的标识符。

    1.7K40编辑于 2023-10-14
  • 来自专栏Golang语言社区

    【Go 语言社区】Go语言编程-语法

    Go注释 //单行注释 /* */多行注释 Go的内置关键字 default select defer go goto fallthrough range package(包) import(导包) return (返回) var(声明全局变量) type(一般类型声明) struct(结构) interface(接口) func(方法) map(map类型) switch case if else for continue break const(定义常量) chan(通道,用于多个服

    1.9K60发布于 2018-03-20
  • 来自专栏开源服务指南

    能够解析任何编程语言的开源语法解析树 | 开源日报 No.171

    tree-sitter/tree-sitterhttps://github.com/tree-sitter/tree-sitter Stars: 14.6k License: MIT tree-sitter 是一个用于编程工具的增量解析系统 该项目的主要功能、关键特性、核心优势包括: 通用性,能够解析任何编程语言 高效性,能够在文本编辑器中每次按键都进行解析 健壮性,在语法错误存在时仍能提供有用的结果 无依赖,使得运行库(纯 C 编写)可以嵌入到任何应用程序中 /rasbt/LLMs-from-scratch Stars: 3.1k License: NOASSERTION LLMs-from-scratch 是一个从零开始实现类似 ChatGPT 的大型语言模型的项目 主要功能和优势包括: 逐步指导创建自己的 LLM 解释每个阶段 提供代码示例和补充材料 深入理解大型语言模型工作原理 danny-avila/LibreChathttps://github.com/danny-avila 多语言界面:支持多种语言。 AI 模型选择:支持多个 AI 模型,如 OpenAI API、Azure、BingAI 等等。 创建、保存和分享自定义预设配置。

    1.3K10编辑于 2024-01-31
  • 来自专栏防止网络攻击

    C语言编程语法—排序算法

    冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。

    96540编辑于 2023-10-13
  • 来自专栏Coding迪斯尼

    Reactjs开发自制编程语言Monkey的编译器:语法解析

    上面这种语法表达式也叫Backus-Naur 范式,其中Backus是IBM的研究员,是他发明了第一个编译器,用来编译Fortan 语言。 链接:http://tomcopeland.blogs.com/EcmaScript.html 描述的就是javascript语言语法表达式,有兴趣的同学可以点进去看看。 语法解析的本质就是,先让词法解析器把代码字符串解析成各种分类的组合,然后根据早已给定的语法表达式所定义的语法规则,看看分类的组合方式是否符合语法表达式的规定。 我们本节将实现一个简单的语法解析器,它的作用是能解析let 语句,例如: let foo = 1234; let x = y; 语法解析器在实现语法解析时,一般有两种策略,一种叫自顶向下,一种是自底向上 当然有一些不已分号结束的语句也是Statement,例如: if (x == 10) {...} else {...} 此类语句也是属于Statement。

    1.2K20发布于 2018-07-19
  • 来自专栏智能时刻

    编程语言编程语言InfoQ趋势报告—2019年10

    2019年及以后的编程语言趋势是什么?本报告旨在帮助技术领导者做出中长期的技术投资决策,并帮助个别开发人员识别流行的编程语言,并选择将他们宝贵的时间和资源投入到哪些新的编程语言学习和技能开发方面。 移动中的编程语言:Elixir、Rust和Swift Elixir——一种函数式、并发的、通用编程语言——已经进入了创新者采用阶段的趋势报告。 关于Python:我对Python的走向很感兴趣;很明显,作为大量数据科学/ML原生图书馆选择的黏合剂语言,它已经获得了巨大的收益——这是Ruby在10年前没有发现的,这是它的损失。 大多数语言的爱好者似乎喜欢它,因为它是“新的闪亮”,并且/或者他们对Java过敏(通常基于对已经过时10年的>平台的看法),但是……我还没有看到任何在JVM技术中不容易实现的引人注目的功能(尽管可能会有更多的繁文缛节 请告诉我们您在过去12个月中使用了哪些编程语言,或者您打算使用哪些编程语言。填写调查表。

    4.6K20发布于 2019-11-11
  • 来自专栏技术向

    编程语言语法对照表

    本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/106/ 背景 有时候会出现一天内使用多种语言进行开发的情况,比如在python, matlab, java, c++之间来回切换, 稍不注意就会把语法规则搞错,影响效率。 本文致力于解决上述问题,主要提供了各语言语法层面的差异,如变量操作、逻辑跳转等语句,供快速查询。

    1.5K30发布于 2019-11-20
  • 来自专栏码字搬砖

    编程语言语法糖,你了解多少?

    什么是语法语法糖是一种编程语言的特性,通常是一些简单的语法结构或函数调用,它可以通过隐藏底层的复杂性,并提供更高级别的抽象,从而使代码更加简洁、易读和易于理解,但它并不会改变代码的执行方式。 简化代码:语法糖可以使代码更加简洁,减少了冗余的代码和不必要的细节,使代码更易于阅读和理解。 2. 提高可读性:语法糖可以使代码更加易于理解,因为它们提供了更高级别的抽象,使代码更接近自然语言。 它们是现代编程语言中不可或缺的一部分,使编程变得更加愉快和高效。 语法糖怎么被执行 语法糖是一种编程语言的特性,它可以让代码更加简洁易懂,但实际上它并不会改变代码的执行方式。 语法糖仅仅是一种方便的编程语言特性,它可以让代码更加简洁易懂,但实际上它并不会改变代码的执行方式 常见编程语言语法糖 python例子 squares = [x**2 for x in range( 10)] java例子 自动装箱和拆箱 C例子 i++和i--

    47500编辑于 2025-05-16
  • 来自专栏全栈程序员必看

    c语言 自己编程解析 xml,C语言解析.XML文件

    最近手头上有个活在忙,中间很重要的一部分就是用C语言将.XML文件中想要的key和value读出来,与之前已有的值进行比较。 XML_LIST *first_child; struct XML_LIST *prev_sibling; struct XML_LIST *next_sibling; }XML_LIST; 总结 以上是编程之家为你收集整理的 C语言解析.XML文件全部内容,希望文章能够帮你解决C语言解析.XML文件所遇到的程序开发问题。 如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。 小编个人微信号 jb51ccc 喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

    2.2K20编辑于 2022-09-14
  • 来自专栏Postgresql源码分析

    Postgresql随手记(10)动态执行EXECUTING语法解析过程

    return id; END; $$ LANGUAGE plpgsql; select f1(); postgres=# select f1(); f1 ---- 3 (1 row) EXECUTE解析流程

    1.1K30编辑于 2022-07-14
  • PLSR-MD编程语言语法阅读器

    向大家推荐一个MD文档阅读器,可用于日常速查编程语法、阅读常规MD格式文档等,支持Windows10及11系统其采用 Tauri + React + TypeScript + Vite 开发,可以在浏览器上运行同时提供桌面软件 具体方法参见内容维护指南.md软件可在github和gitee仓库中拉取和下载哦github:Wind358/PLSR: Programming Language Syntax Readergitee:PLSR: 编程语言语法阅读器大家对此应用有什么问题欢迎留下

    12821编辑于 2026-06-20
  • 来自专栏老九学堂

    TIOBE 10编程语言排行榜

    距离2016年度编程语言的公布只剩3个月了,谁将夺得桂冠? 与去年同期相比,2016年只有Go语言和Groovy语言的增长率超过了1%。 需要注意的是,Groovy语言2015年以一个爆炸性增长的收尾,所以到2017年1月左右的增长速度可能不会太快。 谷歌的Go语言似乎是无可匹敌的,其中因Go语言编写的Docker容器的普及,也可能起到了一定的提升作用。 10编程语言排行榜 TOP20 榜单 ? Top 10编程语言TIOBE指数走势(2002-2016) ? 其它榜单 第20-50名如下,可能存在遗漏的情况: ? 年度编程语言(2003-2015) 每一年的年度编程语言汇总 ?

    1.1K60发布于 2018-03-06
  • 来自专栏程序员互动联盟

    编程基础】C语言循环语句解析

    其实不只是C语言有循环语句,几乎所有语言都有循环语句,大家可以想象要做同样一件事情十万次,要是没有循环会多么痛苦! C语言可以构成循环语句的有如下几种: 1、goto语句和if语句组成; 2、while语句; 3、do while语句; 4、for语句; goto-if循环语句 goto和if组成的语句最为灵活 三个表达式都可以不要,但必须保留分号(;)作为语法错误检查。但是如果表达式2没有设置,则默认为永远是真值。 C语言的循环语句一共就这些,相信把每一个都仔细理解了,还是比较好掌握。

    1.8K50发布于 2018-03-14
  • 来自专栏互联网杂技

    用于数学的 10 个优秀编程语言

    作为一个对数学和编程语言充满激情的人,谁也不能阻止我分享我总结的10个超棒的用于数学的编程语言。 正文共:2619 字 预计阅读时间:7 分钟 作为一个对数学和编程语言充满激情的人,谁也不能阻止我分享我总结的10个超棒的用于数学的编程语言。 JULIA Julia是用于技术计算的高级和高性能的动态编程语言,具有用户熟悉的其他技术计算环境的语法。 它提供了一个复杂的编译器,分布式并行执行,数值准确性和广泛的数学函数库。 其设计理念强调代码可读性,其语法允许程序员用比C ++或Java等语言更少的代码行来表达概念。 该语言提供了旨在实现小规模和大规模清晰程序的构造。 10. J J是一种非常简洁的数组编程语言,尤其适用于数学和统计编程,特别是在矩阵上执行操作的时候。它也被用于极限编程和网络性能分析。

    4.5K100发布于 2018-04-03
  • 来自专栏程序人生丶

    Kotlin 编程语言详解:特点、应用领域及语法教程

    Kotlin 是一种现代、流行的编程语言,由 JetBrains 在 2016 年发布。 自发布以来,它已经变得非常流行,因为它与 Java 兼容(Java 是目前最流行的编程语言之一),这意味着 Java 代码(和库)可以在 Kotlin 程序中使用。 可在不同平台上运行(Windows、Mac、Linux、Raspberry Pi 等)Kotlin 简洁且安全Kotlin 容易学习,尤其是如果你已经了解 JavaKotlin 免费使用庞大的社区/支持Kotlin 语法示例

    1K10编辑于 2024-06-19
  • 深度解析YashanDB数据库的查询语言语法

    YashanDB作为一款集成了先进存储管理、多样部署形态及高可用机制的关系型数据库,针对查询语言及其语法设计了专有的优化与执行框架。 本文旨在深入剖析YashanDB的查询语言体系结构、语法特性、查询优化机制以及执行流程,意在为数据库开发者和管理员提供全面技术解析和实施建议。 查询语言的处理依托于内置SQL引擎,包括解析器、优化器及执行器三大核心组件。解析器负责将文本形式的SQL语句转化成抽象语法树(AST),通过词法与语法分析确保语句的合规性。 SQL语法支持与扩展YashanDB支持丰富的SQL语句语法,以满足多样化业务需求数据定义语言(DDL):支持CREATE、ALTER、DROP等操作,对表、索引、序列、视图、存储过程、触发器及自定义函数等数据库对象进行定义和维护 存储过程及PL扩展支持PL语言的过程式编程能力,支持匿名块、存储过程、自定义函数及高级包。PL编译后存入内存池并支持多次调用。支持异常处理、动态SQL及嵌套调用。

    31910编辑于 2025-09-18
  • 来自专栏Golang语言社区

    【Go 语言社区】解析Go语言编程中的struct结构

    struct和C语言的很相似,模拟出class的功能,但是不完全的!没有构造函数等!

    1.9K60发布于 2018-03-19
  • 来自专栏嵌入式单片机

    Linux C语言多线程编程实例解析

    pthread_create.c   代码如下:   #include   #include   void *mythread1(void)   {   int i;   for(i = 0; i < 10 \n");   sleep(1);   }   }   void *mythread2(void)   {   int i;   for(i = 0; i < 10; i++)   {   printf

    7K20发布于 2020-07-17
领券