tinyos系統(tǒng)學(xué)習(xí) HPL是什么意思?
HPL是什么意思?英雄職業(yè)聯(lián)賽(H設(shè)計編程語言需要用什么(無需提供步驟)?自己設(shè)計一門編程語言,必須考慮以下幾點。要確定目標(biāo)受眾,首先要明確你設(shè)計的語言的目標(biāo)受眾是什么。比如是C/C、Java、Pyt
HPL是什么意思?
英雄職業(yè)聯(lián)賽(H
設(shè)計編程語言需要用什么(無需提供步驟)?
自己設(shè)計一門編程語言,必須考慮以下幾點。
要確定目標(biāo)受眾,首先要明確你設(shè)計的語言的目標(biāo)受眾是什么。比如是C/C、Java、Python等通用語言,或者是AWK、Make、CMake (DSL)等領(lǐng)域?qū)S谜Z言。
如果是通用語言,就是C/C等系統(tǒng)語言,或者Java、python等應(yīng)用語言。
根據(jù)目標(biāo)受眾確定要支持的語言功能,在您的編程中確定要支持的語言功能。比如是否支持面向?qū)ο缶幊獭⒑瘮?shù)式編程、并行處理、泛型編程等。
另外,要不要確定是強類型語言還是弱類型語言?無論是靜態(tài)類型語言還是動態(tài)類型語言等等。
制定語言的語法規(guī)范和語義規(guī)范根據(jù)語言要支持的特征,制定語言的語法規(guī)范。比如變量怎么聲明,函數(shù)怎么定義,支持哪些控制語句,各種表達(dá)式的運算規(guī)則。
確定語言的實現(xiàn)。同一種語言可以有不同的實現(xiàn)。比如像大部分C/C實現(xiàn)一樣,直接編譯成二進制機器碼?還是像Java一樣,編譯成字節(jié)碼然后用虛擬機運行?或者直接說明執(zhí)行等等。
編譯器前端可用的工具,可以選擇手寫或者使用工具。
如果手寫,比較簡單實用的方法是遞歸下降和算子優(yōu)先。
如果你選擇一個工具,有許多工具可用,如萊克斯YACC和Flex Bison。
如果主要目的是學(xué)習(xí),還是手寫比較好。
對于后端來說,代碼優(yōu)化是非常重要的一部分。毫不夸張地說,代碼優(yōu)化是一個現(xiàn)代編譯器成功的決定性因素,也是整個編譯器設(shè)計中最困難、最復(fù)雜的部分,也是最容易出現(xiàn)bug的部分。
一般來說,建議選擇一些成熟的工具。比如LLVM應(yīng)該是首選。著名的Clang的后端是LLVM。LLVM現(xiàn)在已經(jīng)相當(dāng)成熟了。近年來,許多新的編譯器使用LLVM作為后端。
如果你認(rèn)為它 有用,點個贊!
兒童 對編譯器、OS內(nèi)核、性能調(diào)優(yōu)、虛擬化等技術(shù)感興趣的s鞋歡迎關(guān)注!