Programming 板


LINE

#原本發在PLT,不知道這個適合哪裡,但跟PLT的理論關聯性不那麼深,所以 #我把他放在這討論 最近跟人討論我想到一件事: 在組合語言層級,從C的編譯器產生的binary file不會看到的函式名稱, 那八成是_do, _while, _if ... 等關鍵字/保留字 有這些關鍵字,我初略想到他們的用途是在token->grammar這過程可以在找到token時 將parser的狀態進入到某個關鍵字的子狀態。 假使今天有user用組合語言實現一套api,用static linking library發佈, 剛好函式進入點是這些關鍵字甚至是型別名稱,因為是static linking library 恰好無法利用dlopen以函式指標來當進入點。 這很可能發生在任何兩個程式語言相互運作的時候 所以我想到 0) 當一個函式真的是關鍵字命名的,有沒有法子去叫用,像搜尋data/symbol table的解 1) 這個狀態有沒有那麼必要一定要用這關鍵字驅動? 2) 有沒有一個compiler/程式語言支援這種關鍵字強度的? 讓關鍵字本身對於解析器的強度是弱強度,當一個關鍵字在一個scope被賦予其他意義 例如他被變成物件/變數/函式,他當下就不是原先關鍵字的意義。 要不要弄一個語法強度比關鍵字/保留字高的compiler ? ex: 有人設計了一個函式,是 int if(int val1, int val2); 如果user include擁有這份宣告的檔案,或定義了這個符號,那麼目前他在這個檔案 看到的if就有兩個意義: if ( Boolean-Expression ) int if(int val1, int val2); 這時編譯器如果看到使用者的式子為 if( a, b ) 他仍不應該立刻進入函式呼叫的意義, 如果他在同一個表示中看到else,而且else沒有被複寫為其他意義。 則以下這個if(a,b) 其實是 if(Boolean-Expression)。 if( a, b ){ } else { } 而內容值為 common-expression-list,就是evaluate a後, evaluate b並把b作為 expression-value,當成Boolean-expression 如果他看到的是 if ( a, b ); 因為可以找到複寫的意義 int if(int,int),那麼 這個if指的函式呼叫。 如果不幸使用者定義了else是一個variable,以下式子仍是if(Boolean-Expression) if( a, b ){ } else ; 因為 else; 這個式子的運算結果沒用,else; 沒有把else拿來read/write/addrOf if( a, b ){ } else{ } 因為 else { } 在else為變數的時候不合法 但以下就會成為if function if ( a, b ){ ... } 因為 if ( a, b )目前強度比 if(Boolean-expression) 高 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.1.247
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Programming/M.1429334629.A.A43.html ※ 編輯: sunneo (220.132.1.247), 04/18/2015 13:24:56
1F:→ sunneo: 啊啊,一直在按esc, :q! 220.132.1.247 04/18 13:26
2F:→ MOONRAKER: VI上癮 :D 218.161.46.90 04/18 13:49
3F:→ MOONRAKER: Sorry, vi上癮,大寫太外行了 218.161.46.90 04/18 13:49
4F:→ MOONRAKER: 只想到interpreter的例子,php可以用 218.161.46.90 04/18 14:02
5F:→ MOONRAKER: 某些關鍵字(不是全部)當變數,例如 218.161.46.90 04/18 14:03
6F:→ MOONRAKER: $if,如果在$if裡面放一個已知函數名 218.161.46.90 04/18 14:03
7F:→ MOONRAKER: 還可以這樣呼叫函數,例如$if(3)這樣 218.161.46.90 04/18 14:04
8F:→ MOONRAKER: 不過跟你的設想應該差滿多的 218.161.46.90 04/18 14:05
9F:→ suhorng: (我覺得不會不適合 PLT~ 不過都好XD) 140.112.16.135 04/18 16:34
10F:→ MOONRAKER: 最近剛好要寫php extension,如果說對 218.161.46.90 04/18 22:55
11F:→ MOONRAKER: 方語言的obj檔裡面有一個symbol,剛好 218.161.46.90 04/18 22:56
12F:→ MOONRAKER: 就是if,那可不可以… 218.161.46.90 04/18 22:56
13F:→ MOONRAKER: 不行,剛想到,php這種關鍵字把戲只能 218.161.46.90 04/18 22:56
14F:→ MOONRAKER: 拿來當變數,函數名字的檢查嚴格很多 218.161.46.90 04/18 22:57
15F:→ sunneo: 我想這種關驗字限制要放寬到像overloading 220.132.1.247 04/19 10:23
16F:→ sunneo: 如if當函式, 參數不合簽名就當原本的if 220.132.1.247 04/19 10:33
※ 編輯: sunneo (220.132.1.247), 04/20/2015 03:04:05 ※ 編輯: sunneo (220.132.1.247), 04/20/2015 03:06:30
17F:推 suhorng: 原來是這個意思? 感覺跟 linking, bin 都 220.137.36.81 04/20 12:42
18F:→ suhorng: 沒什麼關聯, 純粹是 parsing 的問題? 220.137.36.81 04/20 12:42
19F:→ sunneo: hmmm ... if這符號也是該存在obj檔裡面 140.127.114.38 04/20 18:55
20F:→ sunneo: 還是parser要放寬才能把他當symbol 140.127.114.38 04/20 18:59
21F:→ MOONRAKER: 轉換成parsing table之後 控制關鍵字 218.161.46.90 04/21 03:46
22F:→ MOONRAKER: 的確應該都消失了 218.161.46.90 04/21 03:46
23F:→ sunneo: 所以現況有查自己symbol table的解嗎 =_= 220.132.1.247 04/21 13:25
24F:→ sunneo: 程式不幸link到使用關鍵字的obj/lib 220.132.1.247 04/21 13:27
25F:→ sunneo: 若有api可以enumerate symbol應該也可以解 220.132.1.247 04/21 13:28
26F:→ sunneo: 用dlopen,file填NULL,前提是rdynamic 220.132.1.247 04/21 13:32







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP