编译原理

漂流瓶jz2 小时前
前端·javascript·编译原理
JavaScript语法树简介:AST/CST/词法/语法分析/ESTree/生成工具在平时的开发中,经常会遇到对JavaScript代码进行检查或改动的工具,例如ESLint会检查代码中的语法错误;Prettier会修改代码的格式;打包工具会将不同文件中的代码打包在一起等等。这些工具都对JavaScript代码本身进行了解析和修改。这些工具是如何实现对代码本身的解析呢?这就要用到一种叫做AST抽象语法树的技术。
poemyang2 天前
java·java虚拟机·编译原理·java字节码
Hello World背后藏着什么秘密?一行代码看懂Java的“跨平台”魔法Java虚拟机(Java Virtual Machine,JVM)是Java生态的基石,不仅承载着“一次编写,随处运行”的核心使命,还通过即时编译优化机制,弥合抽象层与性能间的差距。字节码的通用性虽带来效率损耗,但Java虚拟机借助动态探测热点代码、分层编译策略和即时优化技术,不断弥补抽象造成的性能损失。 本文聚焦Java虚拟机编译优化的核心逻辑,揭示其如何在平台无关性与高效执行间取得平衡。通过分析字节码到机器码的转换原理,将看到虚拟机如何用精巧的设计,让Java程序在保持语言特性的同时,逼近本地化编译语
SHERlocked9319 天前
c++·面试·编译原理
C++ 中的编译和链接关于 C++ 的编译和链接, 掌握的知识总是零零散散,这里做个输出,也总结一下自己的思考和学习。对于最常见的 GCC:
小墙程序员2 个月前
编译原理
编译原理教程(二)了解Antlr4的使用Antlr 是一个开源的工具,支持根据规则文件生成词法分析器和语法分析器。Antlr 支持很多的目标语言,包括 Java、C#、JavaScript、Python、Go、C++、Swift等。无论你用上面哪种语言,都可以用它生成词法和语法分析的功能。同时,相对于其他的前端工具, Antlr 的语法更加简单。它能把类似左递归的一些常见难点在工具中解决,对提升工作效率有很大的帮助。
醉雨清风2 个月前
编译原理
组件化场景下动态库与静态库依赖分析编译不报错,运行时报错 dyld[30339]: Library not loaded: @rpath/MBProgressHUD.framework/MBProgressHUD Referenced from: <9FB255F3-CED4-32E5-A9EF-10E473D3BAF6>
小墙程序员2 个月前
编译原理
编译原理教程(一)编译器的前端技术根据专栏编译原理之美 总结而来编译器由前端技术和后端技术组成。这里的“前端”指的是编译器对程序代码的分析和理解过程。 它通常只跟语言的语法有关,跟目标机器无关。而与之对应的“后端”则是生成目标代码的过程,跟目标机器有关。,如下图所示:
苏近之2 个月前
python·源码阅读·编译原理
如何为 Python 新增语法Python 是一套语法规范,规定了开发者如何编写 Python 的代码。如何解析、执行 Python 的源码,最后输出则是 Python 解释器的职责。我们平时使用的 Python 一般指的是 CPython,其解释器是由 C 语言编写。除此之外,还有比如 Jython, 使用 Java 编写的。Pypy 则是用 Python 写的。
千千寰宇3 个月前
编译原理
[语法分析/编译原理] Antlr : 开源语法分析工具它被广泛应用于学术界和工业界构建各种语言、工具和框架。https://www.antlr.org/像expr这样的自引用规则是递归的且是左递归的,因为它的可选项中至少有一个立即引用它自身。 ANTLR v4会自动地将左递归规则(例如expr)重写为非左递归等价物,唯一的约束是左递归必须是直接的,即那些规则立即引用它们自身。
JNU freshman3 个月前
编译原理
编译原理实验 之 Tiny C语言编译程序实验 语法分析首先回顾项目架构明确任务
444A4E4 个月前
c++·编译原理
C++多态完全指南:从虚函数到底层虚表机制,一文彻底掌握通俗来说,多态就是多种形态。分为编译时多态(静态多态)和运行时多态(动态多态)。这篇文章主要讲述运行时多态。
脏脏a4 个月前
c语言·编译原理
程序环境和预处理在这个环境中源代码被转换为可执行的机器指令。在符号表中只能看到全局的符号编译阶段各源文件被独立编译生成目标文件(.o ),每个目标文件有自己符号表,链接阶段会将这些符号表合并汇总处理,以便解析符号引用等
l1n3x4 个月前
算法·编译原理
编译原理前端-词法分析从学习编程开始编译器就是一个绕不开的话题。代码文件在编译器的作用下编译为操作系统中的一个可执行文件。作为一个程序员,了解编译器的基本原理是非常有必要的。编译器可以大致分为编译前端以及后端两个部分。编译器前端负责将代码文件转换为抽象语法树。而编译器后端则将抽象语法树编译为可执行的二进制文件。当然一些解释性语言的后端部分并不一定产出可执行的二进制文件,而是直接执行抽象语法树。
G皮T4 个月前
数据结构·python·正则表达式·字符串·编译原理·词法分析·语法解析
【Python Cookbook】字符串和文本(五):递归下降分析器开始本文的学习前,我们需要首先了解一下什么是 BNF 和 EBNF。🚀 BNF(Backus-Naur Form,巴科斯-诺尔范式)和 EBNF(Extended Backus-Naur Form,扩展巴科斯-诺尔范式)是用于描述编程语言或其他形式语言语法的元语言(描述语言的语言)。它们是编译器设计、文档规范和协议定义中的基础工具。
444A4E4 个月前
c++·编译原理
C++模板:泛型编程的魔法手册,从入门到“魔改”在 C++ 中,模板(Template) 是一种支持泛型编程(Generic Programming) 的核心机制,允许编写与数据类型无关的代码。通过模板,可以定义通用的函数或类,根据不同的数据类型生成具体的代码实例,模板是 C++ 强大灵活性的核心体现,也是学习现代 C++ 的必经之路!
梁辰兴4 个月前
计算机·it·编译原理·计算机基础
编译原理——词法分析在编译原理的世界里,词法分析作为编译的第一个阶段,承担着将输入的源程序分割成一个个单词单元的重要任务。它就像是一位勤劳的 “分拣员”,把杂乱无章的字符流整理成有意义的单词序列,为后续的语法分析等工作奠定基础。
黎明blooms6 个月前
c++·算法·编译原理
编译原理之基于自动机的词法分析器的设计与实现设计与实现一个词法分析器,加深对词法分析原理的理解。需要实现的功能:1)输入:源程序字符串,源程序存储在文本文件中(编码格式ANSI),文件名作为命令行参数输入;
胡译胡说7 个月前
c++·编译原理
日本中学生创造了一门“类似中文”的编程语言软件工程师、技术图书译者。译有《计算机是怎样跑起来的》《自制搜索引擎》《图解云计算架构》等。natsuakane 是一名日本的中学生(13 岁),他创造了一门类似中文的编程语言 Wei-lang(github.com/natsuakane/…)。用他自己的日式汉语来介绍就是“我制作偽中国語之機械言語”。
极客代码7 个月前
c语言·开发语言·性能优化·编译原理·代码优化
深入理解C语言:编译原理本文将深入探讨C语言的编译原理,详细解释从源代码到可执行文件的转换过程。我们将分析编译的各个阶段,包括预处理、编译、汇编和链接,并探讨每个阶段的关键任务和挑战。这篇文章适合所有对C语言编译过程感兴趣的开发者,特别是那些希望提高代码优化技能和深入理解编译器的专业人士。
_祝你今天愉快7 个月前
android·编译原理
使用安卓NDK 交叉编译动态库、静态库基础入门本篇博客将详细介绍如何在 Windows 环境下使用 Android NDK 交叉编译 C 文件,生成静态和动态库,并在 Android 项目中使用这些库。
胡译胡说7 个月前
php·debug·编译原理
还记得十几年前 PHP 那个 0x00+2=4 的 Bug 吗十几年前,在还能因“PHP 是最好的语言”而争论起来、还能在上海举办 PHPCon 的那个时代,记得看到过 0x00+2=4 这么一个有关十六进制加法的 Bug(bugs.php.net/bug.php?id=…