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

  免費注冊 查看新帖 |

Chinaunix

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

C語言的詞法與語法 [復制鏈接]

論壇徽章:
0
11 [報告]
發(fā)表于 2007-01-25 10:37 |只看該作者
好像是yacc之類的語法?

論壇徽章:
0
12 [報告]
發(fā)表于 2007-01-25 11:00 |只看該作者
原帖由 iwolcbao 于 2007-1-25 09:06 發(fā)表于 10樓  
hehe,看了都不懂,這個要用什么編譯器呀?
編譯原理嗎? 沒有學過,來湊個熱鬧!



第一個是lex文件(say  demo.l), 第二個是yacc/bison文件(say parse.y);

則:

1, #flex demo.l   //then file `lex.yy.c' produced

2, #bison -d parse.y   //then file `parse.tab.h' and `parse.tab.c' produced

3, #gcc parse.tab.c lex.yy.c -lfl  //then file `a.out' produced-- `-lfl' means linking to lib flex

這樣產(chǎn)生的a.out程序, 就是一個C編譯器^_^  -- 個人理解,敬請指正。

論壇徽章:
0
13 [報告]
發(fā)表于 2007-02-28 18:52 |只看該作者
不是吧。這樣就能做個C編譯器了。

論壇徽章:
0
14 [報告]
發(fā)表于 2007-02-28 22:05 |只看該作者
這樣就使一個簡單的非優(yōu)化C編譯器了,只是依賴yacc捎帶的的語義動作,不太好。

順便說一下,我從網(wǎng)上下的,用yacc編譯有錯,看了半天也不明白錯到哪兒了,刪之。

論壇徽章:
0
15 [報告]
發(fā)表于 2007-02-28 22:20 |只看該作者
原帖由 mingyanguo 于 2007-1-24 15:41 發(fā)表于 7樓  
編譯原理現(xiàn)在基本上只剩下優(yōu)化了……
其他部分基本上都成熟了。
所以懂優(yōu)化就是牛人了 :--)


優(yōu)化是很重要的一塊,現(xiàn)在搞得人也很多。
懂優(yōu)化是牛人,往往還懂CPU設計。
還可以多層優(yōu)化,機器無關優(yōu)化(邏輯優(yōu)化),機器有關優(yōu)化。

代碼生成還沒有像詞法、語法那樣高效可用的自動化工具,仍然有很多人在研究自動代碼生成。

因為程序設計語言的語義可以由文法形式化定義來限制,很多所謂的語義分析就是類型檢查、綁定一類的,現(xiàn)在語義形式化發(fā)展有了很大進步,但是仍然不很理想,研究熱情也不是非常高漲了。

編譯器的設計中很核心的是中間代碼的設計,這個涉及很多程序設計語言的東西,理論性非常強,要求邏輯和數(shù)學造詣很高,我一點都不明白。

編譯技術中,前端的確是很成熟了,而后端的優(yōu)化和代碼生成還遠未成熟,中間代碼的設計也在不斷改進(尤其是低層中間代碼),但是做的人比較少(有機會、夠資格做的人也很少)。

GC作為一種自動化內(nèi)存管理機制,還遠遠未成熟,作為一種資源管理機制還有很大應用前景。

[ 本帖最后由 prolj 于 2007-3-2 07:37 編輯 ]

論壇徽章:
0
16 [報告]
發(fā)表于 2007-03-01 14:04 |只看該作者
聽樓上的講解對編譯原理又理解了一層^^

在用flex&bison寫一個小的翻譯器,始終有問題.我發(fā)現(xiàn)構(gòu)造一個好的EBNF也是一個不小的挑戰(zhàn).

[ 本帖最后由 golotv 于 2007-3-1 14:05 編輯 ]

論壇徽章:
95
程序設計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
17 [報告]
發(fā)表于 2007-03-01 16:08 |只看該作者
這種帖子把鏈接貼上來就夠了吧? 如果實在要貼內(nèi)容, 至少也在后面(前面?)給出原文地址, 也是對原作者的尊重.

另外, 說起 C 編譯器的實現(xiàn), 用 lex/yacc 或類似工具實現(xiàn)了詞法語法解析(即使包括生成 AST), 也是只是所有工作的
一小部分, 大頭還在后頭呢.

[ 本帖最后由 MMMIX 于 2007-3-1 16:15 編輯 ]

論壇徽章:
0
18 [報告]
發(fā)表于 2007-03-02 07:32 |只看該作者
原帖由 golotv 于 2007-3-1 14:04 發(fā)表于 16樓  
我發(fā)現(xiàn)構(gòu)造一個好的EBNF也是一個不小的挑戰(zhàn).


看看Lemon的代碼。很小的。

論壇徽章:
0
19 [報告]
發(fā)表于 2007-03-02 07:45 |只看該作者
原帖由 MMMIX 于 2007-3-1 16:08 發(fā)表于 17樓  
這種帖子把鏈接貼上來就夠了吧? 如果實在要貼內(nèi)容, 至少也在后面(前面?)給出原文地址, 也是對原作者的尊重.

另外, 說起 C 編譯器的實現(xiàn), 用 lex/yacc 或類似工具實現(xiàn)了詞法語法解析(即使包括生成 AST), 也是只是所有工作的
一小部分, 大頭還在后頭呢.


原文作者也是粘貼別人的

你說的大頭是后來才發(fā)展起來的,優(yōu)化和代碼生成,也帶動了語法分析的改進。在早期,使用 lex/yacc 構(gòu)造出來的編譯器在當時已經(jīng)算比較完整了。當然,很快優(yōu)化技術開始發(fā)展,代碼生成也隨之而變化(當然CPU的變化也影響 代碼生成 的變化)

建議先搞清前端,一是比較成熟,二是比較簡單,三是和機器相關性不是很大(后端很 機器)。

論壇徽章:
0
20 [報告]
發(fā)表于 2007-03-02 23:13 |只看該作者
下了!不過這種情況最好打個壓縮包!
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP