从1+1=?谈计算机软件的相关理论课程

从1+1=计算机软件的相关理论课程

1+1=这是一个刚懂事的孩子的就会的问题,但是如果是遍程呢
写一个程序,算一个简单运算的值MS 比较简单:
Cin >>a;
Cin>>b;
Return a +b;
这个程序简单,简单在只要你学过一门程序 设计语言,你就能将它实现.
现在,我们的要求要变一下:输入一个四则运算式子,去求它的值.
呵呵,这回不仅是1+1了,可能是1+1+2,甚至是1+2*2,现在,如果你只会编程语言,解决这样一个问题就有些困难了,因为你要知道怎么样去判断优先级,怎么样去保存中间结果.这时,除了编程语言,你要去学计算机理论中另一门基本的课程: 数据结构,你要通过数据结构去实现中间结果的保存和优先级的判断,说细一点,就是栈.
现在,当我们的要求进一步深化时,要加入sin cos,tan,以至于lg,开方等,如果再用一个栈去解决,去判断,那么会很困难,因为你需要大量的switch,这时,就要用到 编译原理的内容,因为这里要涉及到对文法的处理,然而,学了数据结构,你是无法直接跳到编译原理的,因为这中间你还有另一门课程,就是 形式语言,学了它,你才不会被编译原理中各种产生式吓倒.

在这里发这篇有些莫名奇妙的文章,是为了给各位朋友们提个醒,因为在程序员中,很多人或是半路出家,或通过职业陪训,进入了IT这一行,或许,你会很多种编程语言,了解很多种架构,但是在工作了一断时间后,会发现一些问题的解决无从下手,其实就是理论知识欠缺的缘故,这时,你就要去补习一下理论,更好的方式是,在遇到”瓶颈”之前,就去学一下,因为有些问题,如果书没看到,你可能不知道他是用哪种理论解决的,比如,很多人对多线程头疼,一运行就出问题,一同步就死锁,自己弄好久也弄不明白,其实,线程的相关问题可以在操作系统中学到,随便找一本 操作系统,对线程同步的各种模型,如消费者/生产者,哲学家就餐等都会有很详细的说明,而这种说明,肯定要比任何一个网页上的资料更详细.

要工作了,就写这么多 希望对大家有用. posted @ 2009-05-17 21:16 葛云飞 阅读( ) 评论( ) 编辑 收藏

来源:拐爷

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2009年4月15日
下一篇 2009年4月16日

相关推荐