谁能用汇编的思想去理解delphi?谁能这么透彻???(20分)

M

masm

Unregistered / Unconfirmed
GUEST, unregistred user!
高级语言的作用就是用“虚无缥缈”的概念去堆砌一大堆让人看得着却摸不着的所谓“思想”
什么类、消息、事件、属性等等等等,其实都是对内存中一段程序的调用而已(一定是
代码的调用,否则这些程序小片断无法获得cpu的控制权),举个例子说,鼠标的移动事件
就是由鼠标的不断移动引发硬件中断,该硬件中断处理中插入了系统自定义的子过程,
子过程不断的对鼠标的当前坐标和各个控件在屏幕中所处的坐标数据区中的对应数据进行
比较,一旦发现已经移入一个控件,看是否有该控件的鼠标移动事件,有的话,运行之...
当然,windows是个图形系统,所有可视的单元的坐标、色彩、是否活动、时间等等数据
实时更新维护,其中的算法博大精深(这也是编程唯一考验人的智力的地方)。
再看看我们身边的教材,看了半天,搞不懂个所以然来,本人看了半天的消息机制,只能
依葫芦画瓢地写写小程序,更加明确,全面的说明,连权威教材也是一知半解!!!!!
记录类型、字符串、指针、dll调用等等在汇编语言中是基本的最常用的用法,想不到
到了高级语言居然成为了难点,其实高级语言里的花里胡哨的“概念”才是难点!!!!
请大家猛烈的批评我吧,我们在争吵中不断前进!!!
 
《程序员》杂志里有几篇RAD背后的故事(好象是这么叫的)
建议你去看一下
越是表面方便的东西,其内部也就越深奥(个人理解)
 
不能这么说吧!我来说几句.....
 
呵呵, 有点偏激, 不过也有点道理.
 
现象是多变不固定的,而本质是相对固定的。。。。
事物就是这样。。[:)]
 
技术是不断发展的,这种发展必然是基于以前的技术成果的。所以当你在学习高级语言的时候
会发现高级语言里面的一些概念和低级语言的一些概念相似或者相同。如果你认识到了这一点
说明你真的学到东西了,这是好事!你不应该抱怨。
就好像我们小学学习2*5=10,如果你很明白,或者有点悟性,你就会发现5+5=10或者
2+2+2+2+2=10 这说明了什么?加法与乘法之间是有关系的!!!那么乘法可以说是一种
高级的加法。就好像delphi和汇编的关系。乘法提高了运算能力,你想想如果有一万个5需要
相加,如果用加法不是要累死啊~ 说到编程序,当时wps用汇编写的,很厉害把!当时写个
菜单都了不得啊!现在呢?做个文本编辑不是小菜一碟?
技术的进步就是让编程人员摆脱重复的工作,提高效率。就好像有了乘法,就不要用复杂的加法了!
delphi有了控件不就是为了这个目的吗?那么如果你是个开发者,一个普通的开发者,你不需要去
管什么消息机制之类的东西,因为人家都给你封装好了,你用就可以了!当然如果你要仔细研究
这个控件,你就会发现这部就是那些底层的东西啊!搞得我找他的某个属性或者什么的那么困难!
不过你已经受益的!你的效率提高了!
我想这就是楼顶的朋友应该认识到这一点!!高级语言有他的价值
另外,目前国内的书就没什么说头!没什么好书!都是炒来炒去!还是看国外的好!
多看帮助!我最近在和一个vc程序员学习uml,我就感到他对概念的理解真是深刻!
他好像就看的是国外出版的书。我个人觉得国内的书作为入门级看还可以了!不知道什么是
对象的朋友可以看看!如果你是高手,去看MSDN
个人观点,仅供参考!
 
越基础的东西我认为越要学!基础最重要,封装就是一个黑盒,我要把它打开!
 
[:D][:D], 楼上的说得很有道理么![:D][:D]
 
yep~~~~~~~~~
 
呵呵!
to masm: 建议你去搞工控,贴近硬件,用汇编也很方便
其实高级语言有高级语言的作用,高级语言屏蔽了内部的细节,让你有精力去想业务逻辑!!
大型的系统,本身的业务逻辑已经是复杂的不得了,如果程序员还要整天和cpu寄存器打交道
非晕不可,非失败不可
to writer:观点不同,黑盒不一定要打开,. 你可以打开黑盒,看看人家怎么做的,这叫学习. 你也可以用黑盒来组合大的黑盒,然后叫做XXXX系统,这是
创造

 
其实我要打开黑盒不是为了其它,只是想更了解不知道的东东,当然我没有必要重要做个
黑盒来给大盒啦。但我始终认为要了解一切才是最好的。
 
现在觉得汇编还是有用,谁有关于delphi里使用汇编的资料?
 
我现在做一个单片机的工作,发现确实很接近底层,这和以前开发MIS完全不一样
如果你想更多的了解,找个类似的工作把
 
高级语言的作用是把复杂的东西封装起来
你认为是难点
是因为你不懂
如果每个人写程序都要处理鼠标中断之类的
还不是要累死
 
》》如果每个人写程序都要处理鼠标中断之类的
还不是要累死
就是啊!如果真的是这样,那还要什么RAD之类的工具。
 
>>高级语言的作用就是用“虚无缥缈”的概念去堆砌一大堆让人看得着却摸不着的所谓“思想”
——强烈支持,说得好!
高级语言一再的封装、封装,把程序员的脑袋都给封了!
所谓的高级特性和各种支持无非是在支持它自己(语言或操作系统),真正带给程序员的好处几乎没有,
我们不得不为了迎合它们的要求不断地学习新东西、不断地咽下这些臃肿的家伙造成的苦水!
看看现在出现的那些新东西,什么设计模式、EJB,都在朝着打破原有的封装的方向发展,
这只能说明我们曾经错了……所以,趁着大好时机,打破传统,开创新的局面吧。
 
那干脆用ASM或机器码好了!当然也要把Intel的蕊片和蕊片组都研究一下。够底层了吧?
如果还不够,再从门电路、加法器到冯诺依曼结构统统都研究一下。
只怕你此生也写不出一个好的程序!!
 
高级语言还是一个是面向对象
写软件注重是软件设计管理
而不是写代码
 
假设我们写好了一个很漂亮的对象,很好地满足了当前的需求,用户却突然提出了一个相当
“怪异”的新要求使得我们不得不修改类的设计,继之以数据库结构的变动,进一步涉及其它
协作对象的改动……这样的问题在实际项目应用中是再平常不过的了。但另一方面,从用户
角度出发,他们所提的新要求在业务上确实合理,业务逻辑的变动也不大,而我们却不得不
对代码动一次不成比例的大手术,面向对象本身的可重用性实在是太脆弱。当然我们似乎可以
借助于模式这种概念把对象从一开始就设计得很灵活,但这难道不是一种打补丁的作法吗?
我们从一开始学习面向对象的概念的时候就被告知:对象是现实世界的模拟。但随着应用系统
越来越复杂,这种“模拟”的近似度也越来越低,最后低到“世界根本不是这么回事”,所谓
的贴近自然的思维方式已经跟不上自然的变化了。
个人意见:
面向对象编程将在业务逻辑实现领域逐渐被淘汰(在管理和控制类方面可能还会有所作为),
取而代之的将是面向数据的理念,程序将从纷繁芜杂的组件堆积回归到朴素的算法加数据结构。
 
那说明你的对象设计的不够好
 
顶部