tag 編譯原理

標籤
貢獻13
77
05:15 PM · Oct 25 ,2025

@編譯原理 / 博客 RSS 訂閱

codists - 《自動機理論、語言和計算導論》閲讀筆記:p172-p224

《自動機理論、語言和計算導論》學習第 8 天,p172-p224總結,總計 53 頁。 一、技術總結 1.Context-Free Grammar(CFG) 2.parse tree (1)定義 p183,But perhaps more importantly, the tree, known as a "parse tree", when used in a compiler, is the

編譯原理

收藏 評論

codists - 《自動機理論、語言和計算導論》閲讀筆記:p49-p67

《自動機理論、語言和計算導論》學習第4天,p49-p67總結,總計19頁。 一、技術總結 1.Deterministic Finite Automata(DFA) vs Nondeterministic Finite Automata(NFA) (1)DFA定義 (2)NFA定義 A "nonedeterministic" finite automata has the power to

編譯原理

收藏 評論

codists - 《自動機理論、語言和計算導論》閲讀筆記:p139-p171

《自動機理論、語言和計算導論》學習第 7 天,p139-p171總結,總計 33 頁。 一、技術總結 1.reversal p139, The reversal of a string a1a2...an is the string written backwards, that is anan-1...a1. 2.homomorphism A string homomorphism is a f

編譯原理

收藏 評論

Zuckjet - 從源碼到可執行文件:揭秘程序編譯與執行的底層魔法

當你敲下 gcc hello.c -o hello 並運行 ./hello 時,計算機內部究竟發生了什麼?讓我們一起踏上這場從高級語言到機器指令的奇妙旅程。 引言:一行代碼的生命週期 想象一下,你剛剛寫下了人生中第一個C程序: #include stdio.h int main() { printf("Hello, World!\n"); return 0; } 這短短几行

計算機原理 , 編譯器 , 編譯原理 , 後端 , 前端

收藏 評論

愚人貓Idiomeo - Flex與Bison快速入門深入並打造腳本編程語言前端

Flex 與 Bison 快速入門:打造腳本語言前端 一、介紹 在現代軟件開發中,編譯器和解釋器是許多高級語言的基礎架構。而詞法分析和語法分析則是編譯器前端的核心組成部分。Flex 和 Bison 作為開源的詞法分析器和語法分析器生成工具,為開發者提供了高效構建語言解析系統的能力。 Flex(Fast Lexical Analyzer)是一個詞法分析器生成工具,能夠根據正則表達式規則生成詞法分析器

bison , flex , 編程語言 , c , 編譯原理

收藏 評論

da_miao_zi - 從負數絕對值的計算來看Ruby的一個“奇葩”行為

計算一個數的絕對值是非常基礎的操作,幾乎所有主流的編程語言都內置了相應的函數或方法。 在 PHP、Python、SQL 等語言中,直接調用 abs() 函數即可,例如 abs(-1)。到了 Java、C# 這類面向對象的語言中,abs() 通常是 Math 類的靜態方法,調用時要加上前綴 Math.,即 Math.abs(-1)。 Go 語言就要稍微麻煩一點了,因為 math 包中的 Abs()

Kotlin , 優先級 , rust , ruby , 編譯原理

收藏 評論

crossoverJie - 徹底理解閉包實現原理

前言 閉包對於一個長期寫 Java 的開發者來説估計鮮有耳聞,我在寫 Python 和 Go 之前也是沒怎麼了解,光這名字感覺就有點"神秘莫測",這篇文章的主要目的就是從編譯器的角度來分析閉包,徹底搞懂閉包的實現原理。 函數一等公民 一門語言在實現閉包之前首先要具有的特性就是:First class function 函數是第一公民。 簡單來説就是函數可以像一個普通的值一樣在函數中傳遞,也能對變量

閉包 , go , 編譯原理

收藏 評論

泊浮目 - 筆記:寫Flink SQL Helper時學到的一些姿勢

theme: channing-cyan 版本 日期 備註 1.0 2023.8.23 文章首發 1.1 2024.10.15 改進部分描述方式 前陣子向大家分享了我寫的插件https://marketplace.visualstudio.com/items?itemName=Camil

antlr4 , visual-studio-code , typescript , 編譯原理

收藏 評論

codists - 《編譯原理》閲讀筆記:p25-p32

《編譯原理》學習第 5 天,p25-p32總結,總計 8 頁。 一、技術總結 1.lexical lexical這個單詞後續會經常用到,所以首先要搞懂它的英文意思,不然看到中文的“詞法,語法,文法”這三個詞的時候就會懵了——lexical對應這三個裏面的哪一個? (1)lexical: lexicon + al,加al後綴,表明lexical是一個形容詞(adjective)。 (2)lexico

編譯原理

收藏 評論

灬都是個謎 - vue3 模板編譯 —— 我竟把 v-if 和 v-for 的優先級改回來了,不信你看 🤣

📰 前言 眾所周知,在 vue3 中 v-if 總是優先於 v-for 生效。 然而,在某些情況下,我們可能更希望 v-for 的優先級更高, 雖然 vue3 並沒有提供直接修改指令優先級的方法,但是我們可以使用 AST(抽象語法樹) 轉換來實現這一點。 🌈 在線演示 📄 vite.config.ts import { defineConfig } from 'vite' im

vue.js , 編譯原理 , 前端

收藏 評論

codists - 《自動機理論、語言和計算導論》閲讀筆記:p428-p525

《自動機理論、語言和計算導論》學習第 14 天,p428-p525總結,總計 98 頁。 一、技術總結 1.Kruskal's algorithm(克魯斯克爾算法) 2.NP-Complete Problems p434, We say L is NP-complete if the following statements are true about L: (1)L is in NP。 (2)

編譯原理

收藏 評論

灬都是個謎 - vue3 模板編譯 —— 把 v-model 默認改為 v-model:value

📰 前言 在 Vue3 中,v-model 指令默認綁定到組件的 modelValue 屬性上。 但如果我們想要的是默認綁定到 value 屬性呢? 我們可以使用 AST(抽象語法樹) 轉換來實現這一點。 🌈 在線演示 📄 vite.config.ts import { defineConfig } from 'vite' import vue from '@vitejs/pl

vue.js , vue3 , 編譯原理

收藏 評論

codists - 《自動機理論、語言和計算導論》閲讀筆記:p402-p427

《自動機理論、語言和計算導論》學習第 13 天,p402-P427總結,總計 26 頁。 一、技術總結 無。 二、英語總結 1.elude e--,assimilated form of ex-(out, away) + ludere(to play, see ludicrous)。vt. if sth you want eludes you, you do not succeed in achi

編譯原理

收藏 評論

da_miao_zi - 日本中學生創造了一門“類似中文”的編程語言

natsuakane 是一名日本的中學生(13 歲),他創造了一門類似中文的編程語言 Wei-lang(https://github.com/natsuakane/Wei-lang)。用他自己的日式漢語來介紹就是“我製作偽中國語之機械言語”。 Wei 是“偽”的拼音,lang 是 language 的縮寫。下面我們就通過一段計算斐波那契數列第 n 項的代碼,來看看 Wei-lang 的特點。 関

語言 , c++ , 開源項目介紹 , 編譯原理

收藏 評論

codists - 《自動機理論、語言和計算導論》閲讀筆記:p115-p138

《自動機理論、語言和計算導論》學習第 6 天,p115-p138 總結,總計 24 頁。 一、技術總結 1.associativity and comutativity (1)commutativity(交換性): Commutativity is the property of an operator that says we can switch the order of its operan

編譯原理

收藏 評論

大數據王小皮 - 【編譯原理】手工打造詞法分析器

難點: 如何拆詞?如何定義分隔符? 匹配的優先級是什麼? 關鍵點: 有限自動機 元素拆分 解析 age = 45 為了入門字詞是如何拆分識別的,我們舉一個最簡單的例子age = 45 只有三種類型:標識符(age)、大於號(GE)、數字字面量(IntLiteral) 使用空格分隔不同的元素 思路: 從左到右依次讀取字符串 使用有限自動機,根據讀到的字符進行狀態轉換,狀

編譯原理

收藏 評論

圖靈訪談 - 《Lua設計與實現》的作者codedump:學習也要講究性價比

本文僅用於學習和交流目的,不得用於商業目的。非商業轉載請註明作譯者、出處,並保留本文的原始鏈接:http://www.ituring.com.cn/art... 導讀: 訪談之前,我曾多次央求codedump給我一張照片,用於簡介部分的介紹。如他所願,不管是派人偷拍還是全網開搜,我都沒有得到也不可能找到一張照片。所以,就有了這樣一篇沒有嘉賓圖片的訪談文章。 我想,這大概就是技術型人才的“通病

lua , 圖靈訪談 , 成長路徑 , 編譯原理

收藏 評論

AlanZhang - 定製 javascript runtime - Part 1:前置知識

前端仔整理的基於 v8 定製 javascript runtime 教程,這 part 先複習一下相關前置知識。 1 source file // demo.c #includestdio.h int main() { printf("hello\n"); } 範例: C/C++ .c .cpp Rust .rs Go .go 2 object

操作系統 , 二進制 , c , 編譯原理

收藏 評論

codists - 《編譯原理》閲讀筆記:p19-p24

《編譯原理》學習第 4 天,p19-p24總結,總計 5 頁。 一、技術總結 1.grouping of phases 這裏談到分組(group),那麼就會有一個疑問,分組的依據是什麼?即根據什麼來分組。 (1) front end back end 編譯器包含很多階段(phase)——lexical analyzer, syntax analyzer, semantic analyzer, i

編譯原理

收藏 評論

codists - 《自動機理論、語言和計算導論》閲讀筆記:p225-p260

《自動機理論、語言和計算導論》學習第 9 天,p225-p260總結,總計 26 頁。 一、技術總結 1.pushdown automation(PDA,下推自動機) 2.DPDA Deterministic PDA(確定性下推自動機)。 二、英語總結 1.instantaneous (1)instant: adj. happing immediately。n. an extremely shor

編譯原理

收藏 評論

安逐悲 - 計算機是如何識別&執行代碼的

計算機是如何識別代碼的 這個問題要展開的話蠻複雜的,展開到幾萬幾十萬字都可以。但針對題主的問題可以有個更具體精確的回答方式。因為我也不是 CS 科班出身,也才大二,就幾個關鍵的節點説一下我的理解。可能有些錯漏,權當小導論看看得了,有錯誤敬請指出。 大致過程 我的理解中,整個過程大致可以分為兩段: 代碼到機器碼的過程 機器碼被 CPU 執行 其中階段 1 是編譯原理的領域,階段 2 是計組的

計算機組成 , 知識 , 計算機科學 , 計算機 , 編譯原理

收藏 評論

codists - 《編譯原理》閲讀筆記:p4-p17

《編譯原理》學習第 2 天,p4-p17總結,總計 14 頁。 一、技術總結 1.structure of compiler 編譯器組成包括:Lexical Analyzer - Syntax Analazer - Semantic tree - Intermediate Code Generator - Machine-Independent Code Optimizer - Code Gene

編譯原理

收藏 評論

codists - 《自動機理論、語言和計算導論》閲讀筆記:p352-P401

《自動機理論、語言和計算導論》學習第 12 天,p352-P401總結,總計 50 頁。 一、技術總結 1.Turing Machine(TM) 2.undecidability ​ a.Ld(the diagonalization language) 3.reduction p392, In general, if we have an algorithm to convert instance

編譯原理

收藏 評論

loumosx - 編程語言符號表的管理

首先為表中的符號, 設置一個初始annote值的, 其中size是長度, static void symtable_add_global(struct symtable *st) { struct sym *sym; sym = st-table[st-len++]; sym-annot.type = FS_INT; sym-annot.size = 8;

編譯原理

收藏 評論