文物语言?谁说的!delphi使用的是object pascal。Borland的艺术家们将pascal扩展到如此完善的支持面向对象

解决方案 »

  1.   

    pascal还是唯一一种可以读出来的语言
      

  2.   

    pascal,又名为COOL BE L
    汉语是酷必了
      

  3.   

    pascal,又名为COOL BE L
    汉语是酷必了
      

  4.   

    pascal,又名为COOL BE L
    汉语是酷必了
      

  5.   

    pascal,又名为COOL BE L
    汉语是酷必了
      

  6.   

    pascal,又名为COOL BE L
    汉语是酷必了
      

  7.   

    Pascal不是一种语言,是一种表示单位面积所受压力大小的物理学单位.
      

  8.   

    i love this language!!!
      

  9.   

    i love this language!!! 
      

  10.   

    i love this language!!! 
      

  11.   

    如果Borland完蛋,Object Pascal也就完蛋了,而C++还将继续。
      

  12.   

    大家都淘醉在PASCAL、DELPHI的好处里,我原来也是这样的,
    为她自豪过,因为在学校里学的是PASCAL;自从我学了C后,
    对PASCAL就没有了一点兴趣,有比较才能知道差别!
      

  13.   

    to BCB
      两种语言各有常处,看你擅长什么了。语言本身再好,你不行,有用吗?
    关健还在于自身。可能pascal,delphi在你的手中没有任何作用,在其他人手中却功能强大。
      

  14.   

    又是高手自居!你有用!了不起!
    谁讲DELPHI没有用了?
    功能都是一样的,主要是习惯和方便而已。
      

  15.   

    呵呵 我来说两句
    Pascal最初是作为一种教学语言出现的 
    具有语法严谨,结构优雅的特点,非常适合用于描述数据结构或算法
    后来出现了Pascal编译器,于是Pascal开始了发展
    Borland对Pascal的发展做出了很多贡献 但Borland的Pascal并不是唯一的。
    (有许多民间Pascal组织 例如FreePascal组织和免费的Object Pascal编译器 :))
    (注:Object Pascal的来源我不太清楚,好像是来自于苹果公司的,苹果公司
    有麦金脱什平台的Object Pascal标准)
    经过发展的Object Pascal功能强大 好像(怎么这么多好像呀:) )
    麦金脱什(苹果的OS,忘了怎么拼了)就是用Pascal写成的>如果Borland完蛋,Object Pascal也就完蛋了,而C++还将继续。 
    这是绝对不可能的 :)
      

  16.   

    不要以为Pascal就是Object Pascal,这样想法就像认为C就是C++一样大错特错。
      

  17.   

    to Sachow(有助) :你是说我么 我从没有这么以为呀 你这句话没有来由吧说Pascal不能不说Object Pascal
    就像C++是C的超集一样 Object Pascal 也是Pascal的一个超集
    由Pascal到Object Pascal的发展是非常自然的
      

  18.   

        pascal是一种看起来很容易学的语言,她的结构很严谨,很适合语言教学!!有很多学校的基础语言就是她!!
      

  19.   

    我倒不清楚还有多少学校教学是用PASCAL,反正我接触的人的学校现在绝大部分是C,
    也有很少的从大一开始干C++的。Object Pascal真正有点资本是Mac OS,
    很难得有这么一个PASCAL写的OS,可以作为资本聊以自慰。
    至于WINDOWS下的,就没什么好说了。DELPHI是Borland一相情愿自己不停地扩充,
    反正不象C/C++有个明确的标准,除了Borland也没几个屑于做PASCAL,
    渐渐PASCAL居然也爬出来了。PASCAL语言本身结构注定了不能做大,
    比如declare和implement在一个地方,缺少预定义和模板。有人可能想到JAVA了,
    JAVA虽然没有,但是只要想发展,JAVA必然会引入template(这话可不是我最先说的)。反正不知道PASCAL什么时候变成了Object Pascal,但是对于OO来说,
    继承只不过是有性生殖,而另一半template这个无性生殖同样重要。
    PASCAL毕竟老了,除非来个脱胎换骨得更新或者有个标准。C++在同样的时间
    已经更新到第二代了,OP恐怕还有很长的路要走。或者说,如果Borland完蛋了,
    恐怕没有人愿意在PC上继续下去(除了个字符方式的Virtual Pascal),
    而OP恐怕连路也不用走了。Borland最可恶的地方就是醉心于DELPHI而不努力做C++Builder,好好的C++加
    了一大堆PASCAL在里面,给人的感觉不伦不类。PASCL本来就不适合写类库,
    搞得VCL错误又多,效率又低,泄露还不少,再这样下去,BCB恐怕也没人用了。
      

  20.   

    看来我没学pascal是很幸运的:)
      

  21.   

    C的“{}”,"++","--"很好使,pascal语法比较麻烦。
    如若要比较VC和Delphi的话,我个人更推崇Delphi,要弄
    C++我宁愿用CB。
      

  22.   

    同意babysloth(小懒虫虫)的说法。 
    有的学校已用JAVA代替PASCAL,
      

  23.   

    看这里,比较客观的介绍了 C++ 和 Object Pascal的优劣2. 语言特性
    首先我不想评价所谓“pascal是玩具语言”这种无知的说法。某些连basic都用不好的
    人是不可能正确评价其它语言的优劣的。至于“只配高中生使用”就更加可笑了:
    peter norton没上过大学,id software的john carmack没上过大学,你不服气?!
    请不要嘲笑高中生,大多数程序员可能永远也达不到这些“高中生”的水平。创造性工
    作需要的是天才,你认为天才相当于什么学位?:-)(1) 预处理,宏以及.h文件
    object pascal不支持预处理,其实是不需要。无法直接编译源代码的编译器才需要预
    处理器的支持(用于翻译/规范源程序(也包括.h之类)以利于编译)。预处理器的出现是
    因为当初ken thompson和dennis ritchie要在只有256k内存的pdp-11上实现c编译器难
    度很大,才采取的折衷办法。现代大多数c/c++产品已经把预处理器包含在编译器中了。
    (ps:c中采用尽可能短的关键字/运算符也是由于这个历史原因)
    至于macro和.h则应该说是垃圾特性,只是由于兼容性的考虑才保留下来的。ansi/iso 
    c/c++规范中明确建议:“不要使用macro和.h,应该使用程序中的常量定义和函数替
    代”。因为macro和.h不是c/c++的语言特性(这是真的!),没有明确统一的语法定义。
    还会导致编译速度降低,另外由于macro在每个使用的地方被展开(不是调用),大量使
    用macro会使生成的代码臃肿。(2) 集合,子界类型
    c++不支持这些object pascal的原生类型(编译器能直接识别的)。但可以用类来模拟,
    毕竟c++的对象结构是最复杂灵活的(ada除外)。不过性能有损失。(3) 枚举类型
    object pascal不支持为每个枚举元素指定值。
    例如c/c++中可以定义:enum aweek {sun = 1, mon, tue ...};
    object pascal中只能定义:aweek = (sun, mon, tue ...);(4) 数组
    c/c++不支持object pascal中指定下标的数组,下标只能从0开始。(5) 结构
    object pascal不支持struct(在pascal中称为record)中的位域(bitfield)。bitfield
    可以bit为单位(不需要整字节)来存储结构成员,可以减小结构的存储空间。不过存取
    效率会有所降低。(6) 字符串
    字符串处理是object pascal的强项之一。能够支持灵活高效的串处理。严格意义上讲,
    c/c++不能算支持原生的字符串类型。char *和char[]更近似于用户自定义类型,因为
    编译器不支持字符串的内存自动分配和回收,需要用户自己调用malloc()和free()。
    object pascal也支持c/c++风格的字符串(称为pchar)。不过string类型更加强大。从
    实现上来看,object pascal的string类型使用前缀表示串长度(1字节前缀的short
    string和4字节前缀的long string,两种string自动兼容,并且long string也兼容
    pchar),c/c++中的char *和char[]使用后缀chr(0)表示串结束。不同的表示方法对串
    处理性能有很大的影响:对于大量,复杂的字符串操作,用object pascal可以写出比
    c/c++快几十倍的程序(许多用pascal写的pascal编译器,比如free pascal,
    pascal pro等,虽然技术水平一般,但编译速度也很快,在某种程度上也得益于pascal
    的字符串处理效率)。比如取串长度函数length/strlen(),object pascal的实现只需
    要一条mov指令,而c/c++的实现则需要进行重复串扫描直到找到结尾0为止。
    object pascal的string类型在支持unicode字符方面也有优势。要知道c/c++的字符串
    给现代操作系统支持unicode字符带来了很大的困扰,比如串'abc'的unicode表示为:
    41 00 42 00 43 00,这使c/c++程序根本无法处理这种字符串。虽然修改编译器可以很
    容易解决这个问题,但光修改编译器是不够的,还要修改操作系统,否则以前的大量
    c/c++程序根本无法在新操作系统上使用(这简直是灾难 --- 你连notepad都没了,怎么
    办?:-)。windows采用凡是涉及字符串处理的api都提供两套的解决方案。比如textout,
    有用于处理ascii字符的textouta和用于处理unicode字符的textoutw。而unix/linux采
    用另一种办法:凡是涉及字符串处理的api都使用utf8压缩编码(一种类似于rtf的编码
    方法:凡是ascii字符都直接存储,多字节字符则用\进行转义),虽然(勉强)保证了兼
    容性却也代价不小。
    (ps:c++中的string/ansistring是用类模拟的,所以性能...)(7) 多重继承
    毫无疑问,object pascal不支持多重继承;并且也看不出borland有增加这一特性的意
    向(其实增加是轻而易举的)。object pascal通过接口(interface)实现多重继承。
    interface不仅可以引入用object pascal实现的对象,也可以引入其他语言实现的
    com/dcom/corba对象。你真的需要多重继承吗?我想大多数程序员和我一样都从来没有
    使用过多重继承(连vcl这么强大灵活的体系结构都根本没有用到多重继承)。
    (ps:java和delphi一样不支持多重继承,也使用interface来实现多重继承。其实这并
    不奇怪:jdk 1.2和java 2主要是由borland开发的,sun只挂名而已。不信你看java类
    库是不是和vcl很象。:-)(8) 对象模板
    object pascal不支持对象模板。因为对象模板不过是宏的语言实现而已(宏本身不是
    c/c++的语言特性)。(9) 重载
    object pascal支持函数/过程的重载,不支持运算符重载。c++全部支持。
    (ps:我个人倾向于object pascal应该增加对运算符重载的支持)(10) 位及逻辑操作
    object pascal和c/c++在这方面没什么差别。
    c/c++的&,|,~,^,>>,<<,&&,||,!等效于object pascal的and,or,not,xor,
    shr,shl(and,or,not,xor既用于位操作也用于逻辑操作)。不过c/c++不支持逻辑
    xor(a xor b = a and not b or not a and b,还是可以实现的)。(11) 风格
    其实这是我更倾向于使用delphi的一个重要原因(由于工作的原因,我也经常使用c++和
    汇编)。就象有些文章所说的:“object pascal和c++是同一重量级的语言”,确实难
    分轩轾,差别反而主要是在风格上。c++强调灵活,而object pascal更注重整洁和优美。
    《程序设计语言:设计与实现》一书的作者也称赞pascal是“一种极优美的语言”。有
    人因此认为pascal“笨拙”。其实应该是“大道至简”。我认为即使用c++写程序也还
    是工工整整的好,不要卖弄技巧。只有水平不高不低的程序员才喜欢卖弄技巧(水平太
    低的卖弄不了,太高的又不愿卖弄了)。就象有人评李昌镐的棋“平淡”,但马晓春再
    怎么“鬼才”也只能甘拜下风。
      

  24.   

    to All:
      其实我真的搞不懂,你们为什么在CSDN上老是讨论这种无聊的问题,哪种语言并不重要,
    重要的在于自身。
      你说vc,java好,没错在一些地方的确好,delphi(pascal)不好吗?各种语言都有自已优势。在此不必多说。还有它们好的地方你们用到了吗?熟悉了吗?我敢说,你们用到它们的好处最多不超过6成。所以不必多说,还是把说的功夫用在学习上,这样,才能振兴中国的软件事业。
    别让MS..等美国老再占居我们中国软件事场。它们在我们身上捞的钱已经不少了。
        所以各位国人,各们程序员,努力吧!!! 
      

  25.   

    >>> VCL错误又多,效率又低,泄露还不少,再这样下去,BCB恐怕也没人用
    这个我就更难以理解了
    VCL从发布到现在的结构改动是很小的,优良的设计是无可争议的。
    (Java的类库和VCL也有异曲同工之妙)
    至于错误多这个我不知如何应对,但是我提醒你可能没有使用Update补丁包,
    同时有错误不是Pascal的错呀 :)
    效率低我认为更是无从说起了 
    内存泄漏问题可能有,这与程序的BUG有关,与语言也没有什么
    大的关系,并且这种错误在发现后是很容易修改的,我估计在打了补丁后就好了 :)
      

  26.   

    各个语言是怪,对于“对象自已”,表示不一:
       vb  用  me表示, 这是相当于上海话中的“阿拉”;
       delphi用self表示,这是相当于东北话中的"俺";
       bcb 用this表示,这相当于陕西话中的"偶";
     
         
      

  27.   

    各个语言是怪,对于“对象自已”,表示不一:
       vb  用  me表示, 这是相当于上海话中的“阿拉”;
       delphi用self表示,这是相当于东北话中的"俺";
       bcb 用this表示,这相当于陕西话中的"偶";
     
         
      

  28.   

    各个语言是怪,对于“对象自已”,表示不一:
       vb  用  me表示, 这是相当于上海话中的“阿拉”;
       delphi用self表示,这是相当于东北话中的"俺";
       bcb 用this表示,这相当于陕西话中的"偶";
     
         
      

  29.   

    各个语言是怪,对于“对象自已”,表示不一:
       vb  用  me表示, 这是相当于上海话中的“阿拉”;
       delphi用self表示,这是相当于东北话中的"俺";
       bcb 用this表示,这相当于陕西话中的"偶";
    可能是语言标准设计者怕有抄袭之嫌 
      

  30.   

    上面那一大段所谓“公正”的评论只不过是用PASCAL的自欺欺人罢了。
    模板和运算符重载是非常重要的,正如大师们所说的,继承只是OO的一半,有性生殖而已。
    无性生殖呢?自己吃不到葡萄说葡萄酸,貌似公正而已。字符串的问题,C++的标准里明确就std::string这一项,作者恐怕知道太少了吧。
    而它的效率,呵呵,自己去看看再说吧。如果你的C语言水平还算过得去的话,就算
    用指针不知道又有什么问题?还有什么集合这些,C++里早就有了,PASCAL还在自鸣得意。C++的标准里有set,tree,
    list,double-list,deque,stack等等各种数据类型,PASCAL没什么标准,倒也无所谓了。
    居然还有人吹嘘C++不支持Unicode,麻烦,看到都无聊,好好钻研钻研C++标准再说话吧。再说VCL的问题。PASCAL绝对不是个写类库的料,VCL的内存泄露之多已经是事实。
    内存泄露并不可怕,WINDOWS自身也有,关键是多少的问题。您自己不妨看看,不要写一句话,
    就用鼠标在Form上多放点东西,用Memproof和BoundsChecker一看,差点被吓死。
    VCL思想的先进性是绝对的,不容质疑的,而选择PASCAL来写真是失败。效率低下这也是事实,
    有人喜欢骂VC里的宏太烦,你以为微软真的这么笨不会用其他简洁的代替么?消息映射的效率
    就这样来的。唯一让我觉得奇怪的就是从Turbo Pascal开始,PASCAL编译后的文件就比C/C++小,一直如此。
    不知道是不是移植性的问题,可惜我们一般人又不用。至于效率,嘿嘿,C/C++始终会比PASCAL
    快一点点,不多,仅仅一点点。以前中学的时候比赛算法,已经无数次证明了这个,原因嘛,多
    半是C/C++的register作循环变量了。