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/cn.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灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP