從頭開始開發 C 編譯器 – 模組 1

編譯器設計、編譯器開發、詞法分析、解析、程式碼產生、抽象語法樹

從這 14.5 小時的課程,你會學到

  • 如何從頭開始建置 C 編譯器
  • 充分理解堆疊框架以及如何為 C 原始檔案產生彙編語言
  • 完全理解詞法分析與解析
  • 將獲得更強的組合語言技能
  • 編譯器設計

要求

您必須具有組合語言的基本經驗。

課程說明

您準備好學習編譯器設計和編譯器開發並證明您是程式設計師大師了嗎?

學習從頭開始建立您自己的 C 編譯器。 在本課程中,我們開發一個編譯器,用於編譯 C 程式語言的子集。 當您完成本課程的所有模組時,您將能夠編譯使用指標、結構、聯合、陣列、函數、for 迴圈、while 迴圈的 C 程式。 do while 迴圈、if 語句、開關等等!

我們的編譯器還有一個預處理器巨集系統,可讓您包含頭檔並建立定義,就像在任何 C 檔案中一樣。

您的編譯器足夠先進,可以使用 GCC 標準函式庫,因此我們可以從編譯器中呼叫 C 函數。 您的編譯器將能夠編譯 C 程式語言。

本課程不依賴任何框架,我們一切從頭開始,以確保為學生提供最佳的學習體驗

模組 1

在本課程的模組 1 中,我們將希望編譯的 C 原始檔載入到記憶體中。 我們創建一個詞法分析器來對來源輸入執行詞法分析,這會將原始程式碼轉換為一堆我們的編譯器可以輕鬆理解的標記。 然後,我們將標記傳遞給解析器以產生抽象語法樹。 AST 以邏輯方式描述 C 程序,使我們的編譯器更容易理解。 例如,對於表達式 50 + 20,您最終將得到一個根表達式節點,該節點的左操作數的節點值為50,右操作數的節點值為20。以這種方式分解問題會使其變得更簡單。更容易創建編譯器。

在整個課程系列中,您將學習創建功能齊全的 C 編譯器。

目標受眾

  • 對編譯器設計有興趣的人
  • 對組合語言有興趣的人
  • 對 C 語言程式設計有興趣的人

講師簡介

Daniel McCarthy 業餘時間的編譯器開發人員

Daniel McCarthy 是一位經驗豐富的軟體工程師,在該行業擁有超過 14 年的令人印象深刻的職業生涯。 他擁有 Cardiff Metropolitan University 高級電腦科學碩士學位,擁有廣泛的經驗,涵蓋從 Web 開發到複雜編譯器和核心設計的各個方面。

Daniel 磨練了引導程式和核心開發方面的技能。 為了證明他在該領域的熟練程度,他設計了兩種專有的程式語言:Craft(一種通用語言)和 Marble(一種類似於 PHP 的 Web 語言)。 此外,他也成功開發了 C 程式語言的編譯器。

Daniel 證明了他的多才多藝,他精通多種程式語言,包括 C、C++、Java、x86 組合語言、PIC 彙編、SQL、PHP、HTML5、JavaScript、CSS,當然還有他自己創作的 Craft和大理石。

他的專業組合還包括 Linux 核心模組的開發,這是他在專業環境中熟練的任務。 目前,Daniel正將其豐富的經驗和專業知識投入教育領域,旨在培養下一代專業軟體工程師。

字幕:英文

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

  • Udemy 永久擁有課程 許多課程約 NT400(點擊連結看更多)
  • 年訂閱每月 NT350(再享特別優惠:年度訂閱首年享 25% 折扣) 🌈 悠遊 Udemy 的 26000+ 門課,最大化學習 ( 原價 NT635/月 )
  • Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
  • 手機上點選優惠連結看到的價格比電腦上看到的貴
  • $代表當地貨幣, 如在台灣為 NT
  • 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 WordPress.com 建置.

Up ↑

探索更多來自 Soft & Share 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading