Re: [问卦] 会写 x =x+1 的资工人 数学到底多糟阿??

楼主: sxy67230 (charlesgg)   2022-06-16 00:03:43
※ 引述《KennethC (Smith)》之铭言
: 安安安安,就是那个资工系啦!
: 听闻资工系的资工人,
: 会去写电脑要使用的 code,
: 其中有可能会有 code 叫做 x = x + 1
: 额......
: 这真的不是写错吗???
: 资工人是数学糟糕还是逻辑糟糕??
: 有没有资工系的八卦
阿肥外商码农阿肥啦!最近都在打DI没空上线发废文。
因为对于任何的program他的理解"="这个概念叫做assign,也就是我把原本的x加上1以后再
赋值给x,这东西在上升就是计算机哲学的定义了,你接受这套体系才有谈下去的资格。
这个还延伸到lvalue跟rvalue的概念,如果你去写
int x;
x = 1;
1=x;
这样肯定会报错,然后C++会告诉你lvalue 是不正规的操作,你在回想program 在解析你的
code的时候是基于赋值由rvalue 操作后赋值给宣告一段内存的变量,但是数学上却可以
等价1=x或x=1,但是如果你修过compiler的课程就知道,在现代Program进入编译器前都要
做preprocessor。
经过lexical analysis跟parsing,虽然正规LL或LR Parser并没有限制1=x这种方式不能par
ser,但是为了效率C语言采用了比较弱的语法解析来处理这类复杂的问题,当代其他语言也
都沿用C语言的规范,而你仔细看所有compiler探讨都把这个叫做一种Grammar而不是Mathem
atics,原因就是为了符合计算机的天然性而且避免了使用者需要面对机械码操作。
不过你其实如果懂compiler你也可以自己去定义一个x = x + 1会爆syntax error的,不过
你的这套语法势必要挑战当前的C语言体系,成功你就是新的规则的奠基人。
以上

Links booklink

Contact Us: admin [ a t ] ucptt.com