備案號:遼ICP備19007957號-1
聆聽您的聲音:feedback@highmark.com.cn企業熱線:400-778-8318
Copyright ?2015- 海馬課堂網絡科技(大連)有限公司辦公地址:遼寧省大連市高新技術產業園區火炬路32A號創業大廈A座18層1801室
COMP1917的目標是讓學生熟練使用高級語言進行編程。涵蓋的主題包括:基本編程概念、程序測試和調試、數據的基本內存表示法、編程風格。通過實驗室編程練習和作業,學生將獲得有關這些主題的實際經驗。
一、如何構建新的編程語言
從很高的角度來看,創建一種新的編程語言主要涉及三個步驟。
定義語法。
為源代碼創建前端編譯器。
構建后端代碼生成器。
因此,你需要從一支筆和一張紙開始,定義你的語言的語法。如果你不知道什么是正式語法,那就把它想象成人類語言的語法(閱讀我的相關文章)。
例如,在人類語言中,你可以說 "一個句子由冠詞、名詞和動詞組成"。然后,語言的自然模糊性(主要由口語部分和人類的天性決定)將這一規則拋諸腦后。
在正式語言中,如果語法規定 "賦值由變量名、等號(=)和數字構成",那么這將是程序源代碼中實例化變量的唯一方法,否則代碼將無法編譯(如果是解釋型語言,則會出現錯誤)。
簡而言之,形式語法定義了程序源代碼在這種語言中必須是什么樣子。它涉及到程序員在使用你的語言編寫程序時必須遵守的語法規則。
前端編譯器(Front-End Compiler)是一種軟件,它能接收源代碼并生成一些看起來很奇怪的數據結構。本文稍后將對此進行詳細介紹。
最后,"后端代碼生成器 "是另一款軟件,它將前端生成的代碼轉換成可實際運行的代碼。
等等,這......可以運行?可以運行?這就是把初始源代碼轉換成新的源代碼(可以運行)?
是的,不過是機器能理解的代碼,通常稱為目標機器碼。嚴格來說,這意味著你應該提供匯編代碼,將其交給匯編器,匯編器將與鏈接器/加載器一起工作,然后他們會將機器代碼返回給你。
然而,許多精明的人過去已經做了這樣的努力。因此,新的編程語言往往只是被翻譯成現有的編程語言,而現有的編譯器已經存在。
例如,在架構新語言時,您可能會決定您的編譯器不生成機器代碼,而是生成 C 代碼,然后將其交給 C 編譯器。這是一種標準的方法,它不會讓您從編寫編譯器的過程中擺脫任何有趣的部分:您仍然需要構建一個編譯器。
二、創建編程語言編譯器的步驟
為一種復雜的編程語言編寫一個嚴肅的編譯器是一項艱巨的任務。這需要一支技術精湛的龐大團隊。
例如,FORTRAN 1 編譯器的開發就花費了大約 3 年時間。FORTRAN 語言是為科學計算而設計的,它改變了這一領域的游戲規則,至今仍被廣泛使用。他們做得很好,幾乎改變了計算的歷史。
盡管復雜得嚇人,但編譯器只有 5 個主要部分:
1.詞法分析。識別語言關鍵字、運算符、常量和語法定義的每個標記。
2.解析。對標記流進行 "理解",即把每對標記之間的關系編碼成樹狀數據結構。這種樹狀結構旨在描述每行源代碼中操作的含義。
3.語義分析。可能是所有步驟中最晦澀難懂的一個。主要涉及理解類型和檢查源代碼 "含義"(而不僅僅是語法)中的不一致性。艱難。
4.優化。無論編譯前的源代碼有多好,都有可能在進行低級編碼(直到機器碼)時實現一些優化。比如內存優化,甚至功耗優化。當然,還有運行時優化。
5.代碼生成。原始代碼的優化版本最終被翻譯成可執行代碼。
海馬課堂專業課程輔導,2100+嚴選碩博學霸師資,針對學生的薄弱科目和學校教學進度,匹配背景相符的導師,根據學生情況進行1V1專屬備課,上課時間靈活安排,中英雙語詳細講解課程中的考點、 難點問題,并提供多方位的課后輔導,輔助學生掌握全部課程知識,補足短板。
閱讀原文:http://www.brains-tank.com/news/14490_62.html
版權作品,未經海馬課堂 highmarktutor.com 書面授權,嚴禁轉載,違者將被追究法律責任。
備案號:遼ICP備19007957號-1
聆聽您的聲音:feedback@highmark.com.cn企業熱線:400-778-8318
Copyright ?2015- 海馬課堂網絡科技(大連)有限公司辦公地址:遼寧省大連市高新技術產業園區火炬路32A號創業大廈A座18層1801室
hmkt088
中文字幕无码视频| 可以免费看av的网站| 91av导航| 成人在线精品| 中文字幕第四页| 中文字幕一区二区三区5566| 午夜男人天堂| 日韩无码久久| 国产一区二区三区免费在线观看| 五月丁香在线观看| 国产欧美日韩视频| 日韩人妻无码一区二区三区| 三级在线播放| 欧美一级片在线观看| 日韩视频中文字幕| 在线播放一区| 欧美日韩性爱视频| 99免费视频| 四虎欧美| 99久久人妻精品免费二区| 99精品免费视频| 91蜜桃| 影音先锋男人站| 国产又粗又猛又黄又爽无遮挡| 思思热在线| 99久久99久久精品免费看蜜桃 | 在线观看小黄片| 天天爽夜夜爽| 午夜精品久久久久久| 黄片下载app| 久久99国产精品| 欧美视频一区| 亚洲欧美日韩国产| 免费午夜视频| 国产精品久久久久久妇女6080| 人人精品| 精品国产乱码久久久久久影片| 中文字幕在线第一页| 夜夜爽妓女8888视频免费观看| 亚洲91| 欧美亚洲天堂|