分类: LINUX
2009-02-04 12:18:49
自接触c语言之日起,就一直心存疑惑,总有这个问题在脑中盘旋“我写下这行代码,计算机怎么通晓我的意思的,它是怎么辨识并执行的?”。长期以来,受微软编译器所赐,这一过程与我来说就如魔术一般雾里看花。往后的日子,随着接触面的扩大以及学识的加深,一些问题渐渐在心中有了答案。而愈发觉得傻瓜式编译器对我这一类人来说是要不得的,然而关键不在此。近日拜读《Computer Organization&Design The Hardware/Software Interface》,作者总结了四类问题,是为我当初疑惑的一个细化,也为我继续探索的一个追求,记录于此:
1 用高级语言,例如C、Java,写得程序是怎样翻译成硬件语言的,硬件又是怎样执行的?
2 软硬件间的接口是什么,软件是如何命令硬件完成指定的功能的?
3 什么决定了程序的性能,程序员如何改进性能?
4 硬件设计人员可以使用什么样的技术提高性能?
额外地,接下来的这句话也很为经典,大家可自己斟酌:
如果不理解上述问题,那么在现代计算机上优化程序的过程,或者评估特定应用中的计算机的性能的过程,将是一个复杂的试验过程,而不是一个建立在深入理解和分析基础上的科学过程。