亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12345
最近訪問板塊 發(fā)新帖
樓主: cjaizss
打印 上一主題 下一主題

【大話IT】編譯器的設(shè)計其實遠沒想象中那么妖魔化 [復(fù)制鏈接]

求職 : 軟件工程師
論壇徽章:
3
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-07 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-12-13 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2016-05-05 06:20:00
41 [報告]
發(fā)表于 2016-08-21 18:58 |只看該作者
終于可以發(fā)帖了, 其實很多人都把編譯器搞復(fù)雜了, 如果用復(fù)雜的工具和復(fù)雜的思路去思考問題, 問題就會更加復(fù)雜.

總的來說, 編譯器技術(shù)就是將一種語法的文本解析 , 用另外一種語言來表達它的邏輯. 如果是翻譯, 就是編譯, 如果是解釋, 就是解釋器.

論壇徽章:
6
2015年辭舊歲徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16賽季CBA聯(lián)賽之浙江
日期:2016-11-05 14:38:4115-16賽季CBA聯(lián)賽之新疆
日期:2016-11-11 18:38:06
42 [報告]
發(fā)表于 2016-08-26 09:52 |只看該作者
對,從簡單做起,C語法太復(fù)雜,另外設(shè)計個語法簡單的語言并實現(xiàn)之,逐步提高能力

論壇徽章:
0
43 [報告]
發(fā)表于 2016-08-30 09:27 |只看該作者
1. 你平常用哪種語言編寫程序?用什么編譯環(huán)境?
  1. 碩士畢業(yè)第7年了,平時主要使用c/c++;輔助性的語言包括bash shell, python, ruby, lua, vimscript;這些語言我主要是用于一些需要腳本及快速開發(fā)的地方,比如程序編譯(scons依賴python), ruby偶爾用來開發(fā)一些工具,lua因為我需要用lualatex,vimscript因為我需要用vim,有時候需定制化修改vim插件;java和c#很少用了,雖然很多人認為java和c#才是現(xiàn)代語言;對了,golang花了很多時間學(xué)習(xí),那時候想通過它做服務(wù)端,被rob pike影響了,但最后也沒怎么學(xué)以致用。
  2. 編譯環(huán)境我主要使用GCC,也安裝了LLVM-clang,現(xiàn)在主要在linux和osx上面工作和學(xué)習(xí)。
復(fù)制代碼

2. 你熟悉編譯原理嗎,了解詞法分析、語法分析、上下文無關(guān)文法、IR、LL(k)文法、LR(k)文法等術(shù)語嗎?
  1. 編譯原理與形式語言這門課大學(xué)學(xué)過,留在記憶里面的只有自動機,詞法分析;其它的全部忘記了。工作之后抽空了解了并研究了一些這方面的知識:詞法分析即lexcial analysis(scanning),編譯器的第一步,生成詞法單元序列;語法分析即syntax analysis(parsing),編譯器的第二步,根據(jù)詞法單元序列生成語法樹(syntax tree),然后交給后面的語義分析去處理;上下文無關(guān)文法,LL,LR文法看過又忘了,屬于形式語言里面的東西吧,能記得就是LL,LR如何更好的掃描,掃描更少次數(shù)得到生成式。
復(fù)制代碼

3. 你了解過lex/yacc嗎?使用它們做過分析嗎?
  1. 了解過一些,包括flex,bison,還有boost里面的spirit;方便生成詞法分析器,語法分析器,cc即compiler compiler;曾經(jīng)要做點regex相關(guān)的東西,嘗試了一點點。
復(fù)制代碼

4. 你想過自己設(shè)計一種語言,并為之設(shè)計編譯器嗎?如果你想設(shè)計,那你該如何一步步的做呢?
  1. 想過的;尤其在我了解過llvm項目之后;llvm會讓編譯器設(shè)計更簡單,更加模塊化,包括更容易給end user使用編譯器的庫;比如vim的插件ycm就依賴llvm-clang;
  2. 我是想設(shè)計自己的語言,但還沒有頭緒;我想首先要想明白設(shè)計語言干嘛?無論為了學(xué)習(xí)還是工作;我想設(shè)計一門類似ruby的語言,我喜歡ruby的style勝過python;
  3. 我想首先我要了解一些編譯器制作工具,前期盡量通過集成利用的方式來實驗吧,先娛樂為主,just for fun。
復(fù)制代碼

論壇徽章:
59
2015年亞洲杯之約旦
日期:2015-01-27 21:27:392015年亞洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵節(jié)徽章
日期:2015-03-06 15:50:392015年亞洲杯之阿聯(lián)酋
日期:2015-03-19 17:39:302015年亞洲杯之中國
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03雙子座
日期:2014-12-10 21:39:16處女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
44 [報告]
發(fā)表于 2017-01-20 13:44 |只看該作者
1. 你平常用哪種語言編寫程序?用什么編譯環(huán)境?
   >> 我要書, 快把書給我
2. 你熟悉編譯原理嗎,了解詞法分析、語法分析、上下文無關(guān)文法、IR、LL(k)文法、LR(k)文法等術(shù)語嗎?
   >> 我要書, 快把書給我
3. 你了解過lex/yacc嗎?使用它們做過分析嗎?
   >> 我要書, 快把書給我
4. 你想過自己設(shè)計一種語言,并為之設(shè)計編譯器嗎?如果你想設(shè)計,那你該如何一步步的做呢?
   >> 我要書, 快把書給我


:luya::luya::luya::luya::luya::luya:
:luya::luya::luya::luya::luya::luya::luya::luya:
:luya::luya::luya::luya::luya::luya::luya::luya:

論壇徽章:
2
綜合交流區(qū)版塊每日發(fā)帖之星
日期:2016-07-06 06:20:00綜合交流區(qū)版塊每日發(fā)帖之星
日期:2016-08-16 06:20:00
45 [報告]
發(fā)表于 2017-01-20 15:08 |只看該作者
1,強烈支持樓主ing……

論壇徽章:
0
46 [報告]
發(fā)表于 2017-06-24 22:42 |只看該作者
活動過了,貼子就空了。

才看到,補充幾句無關(guān)的吧。

編譯器是所有軟件的重中之重,包括os的構(gòu)建都不能離開編譯器,確保編譯器正確是編譯器實現(xiàn)的首要目標,注意,這個目標不是優(yōu)化。

編譯器優(yōu)化很復(fù)雜,很復(fù)雜, 看VLIW編譯器的實現(xiàn)就可以理解當前VLIW的處理器基本上死光了。

lex/yacc/ bison這些已經(jīng)算是古老工具了。

當前編譯器源到源的編譯反而是重點,例如openCL 轉(zhuǎn)。。。 , verilog/VHDL轉(zhuǎn)c, system-c 等。

國際上開發(fā)編譯器的很多,例如 ibm, intel, microsoft, gcc, llvm , sdcc,  ...... 國內(nèi)不清楚,易語言算一個?  其他定制gcc之類的還是不要算。

國內(nèi)編譯器看法基本上已經(jīng)沒有曙光了。

論壇徽章:
13
15-16賽季CBA聯(lián)賽之八一
日期:2016-07-08 21:00:1415-16賽季CBA聯(lián)賽之同曦
日期:2017-02-15 14:26:1515-16賽季CBA聯(lián)賽之佛山
日期:2017-02-20 14:19:2615-16賽季CBA聯(lián)賽之青島
日期:2017-05-07 16:49:1115-16賽季CBA聯(lián)賽之廣夏
日期:2017-07-30 09:13:1215-16賽季CBA聯(lián)賽之廣東
日期:2018-07-05 22:34:3615-16賽季CBA聯(lián)賽之江蘇
日期:2018-09-03 12:10:2115-16賽季CBA聯(lián)賽之上海
日期:2018-09-25 03:49:2215-16賽季CBA聯(lián)賽之廣東
日期:2018-09-25 04:09:12
47 [報告]
發(fā)表于 2017-08-20 07:56 |只看該作者
gcc源碼看不懂,求版主送我一本

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:53:17
48 [報告]
發(fā)表于 2018-04-12 11:07 |只看該作者
很久沒來了,既然看到了,我也來補充
1. 你平常用哪種語言編寫程序?用什么編譯環(huán)境?
C/C++,VS、KeilC和GCC
2. 你熟悉編譯原理嗎,了解詞法分析、語法分析、上下文無關(guān)文法、IR、LL(k)文法、LR(k)文法等術(shù)語嗎?
熟悉。有幸參與了一個編譯器設(shè)計項目,對于機器運行代碼的原理和認識有了一刀999級的提升
3. 你了解過lex/yacc嗎?使用它們做過分析嗎?
實操過Flex/Bison。原理很簡單,發(fā)明這個人的有點不算震撼的小聰明
4. 你想過自己設(shè)計一種語言,并為之設(shè)計編譯器嗎?如果你想設(shè)計,那你該如何一步步的做呢?
沒想過設(shè)計一種語言,更沒想過為之設(shè)計編譯器。我真的老了。
編程語言無外乎就是變量、計算、賦值、此外配合調(diào)用分支和循環(huán),把所有細節(jié)都做一遍,做為自修的話,實在浪費時間。


吐槽:
國內(nèi)企業(yè)和單位普遍都比較浮躁、自私、貪婪,投入成本做不立即出效益的事情是不會做的。
連政府也是,啥掙錢干啥。啥掙錢呢?納稅最多的掙錢,啥納稅最多?浮躁的暴利行業(yè),誰干這個?無恥的單位和土豹子老板們。誰成就的他們?是我們百姓自己。為什么?還是浮躁、自私、貪婪。


給后來者一些忠告:
在這細節(jié)浩如煙海的計算機世界里,如果你是做純軟應(yīng)用的,比如做WEB的或者銀行證券類這種應(yīng)用,純玩應(yīng)用邏輯的,大可不必浪費太多時間研究編譯器實現(xiàn)。
如果是做性能密集應(yīng)用的,比如密集計算、信號處理、圖形、嵌入式等,編譯器實現(xiàn)是絕對的必修課。

論壇徽章:
0
49 [報告]
發(fā)表于 2018-05-09 18:22 |只看該作者
恕我直言編譯器可不是編譯原理那本書,編譯器和系統(tǒng)密不可分,諸如LISP、BISCE、forch這樣的教學(xué)型語言,pascal那么流行,最終也是停留在大學(xué)校園里,我們現(xiàn)在見到的所有的操作系統(tǒng)都有UNIX V的影子,可能win95與眾不同,但是Win95開始的所有的版本采用的都是C和C++編譯器構(gòu)建的內(nèi)核,曾經(jīng)有傳言,xp系統(tǒng)使用的是BISCE編寫的大多數(shù)源代碼,事實上,win10的內(nèi)核仍然都是C++和C編譯器構(gòu)建的,由于微軟不開源,誰也不知道微軟這個編譯器的構(gòu)建原理,毋庸置疑也是當年UNIX V的386移植版改寫而來的。所以說,你要想真正的成為大牛,必須吃透當年UNIX V那25000行C語言的內(nèi)核源代碼,那是我們現(xiàn)在計算機軟件工業(yè)的基礎(chǔ)。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP