主页
Top.Mail.Ru Yandeks.Metrika
论坛:“抢”;
当前存档:2002.07.29;
下载:[xml.tar.bz2];

向下

为什么Delphi的编译速度更快? 找到类似的分支


kull   (2002-07-02 23:37) [0]

我为这个愚蠢的问题道歉。
但是,我仍然想知道为什么Delphi的编译速度高于C ++编译器。
不仅是VC ++,还有C ++ Builder。
毕竟,据我所知,Builder和Delphi与一家公司的产品具有相同的“引擎”。 为什么编译速度如此不同?



RV   (2002-07-02 23:39) [1]

在德尔福王国有这个主题,看
那里和其他编译器



iZEN   (2002-07-02 23:48) [2]

Delphi - 没有宏和模板的单通道编译器。

在C ++中,有一个处理宏和模板的预处理器,在编译时构建代码,结果如下:“explain_> generation_ of new_code_for_macrosam_and_sample-> compilation”。

Java编译器也是一次通过,它的情况类似于Delphi编译器,因此在JBuilder中构建类似的项目所需的时间几乎与Delphi相同。 :)

在这里。



kull   (2002-07-02 23:54) [3]

所以我认为问题出在宏和模板中。 也许是因为Object Pascal是一种比C ++更严格的语言?



[NIKEL]   (2002-07-03 00:06) [4]

C ++提供了header(include)文件的使用,但Object Pascal没有。 它们也可以嵌套。 由于嵌套,来自35字符串的简单程序最终可能会有数十万行 - 这也花费了大量时间。

在C ++中,使用MACROSES,但不在Object Pascal中, - 预处理器应该解析宏并在必要时插入它

在C ++中,使用TEMPLATES,但不使用Object Pascal,并且该模式对于解析结构而言相当复杂

C ++语义必须符合ANSI标准。 而且,C ++的“语法”比基于Pascal的Delphi的“语法”要复杂得多。

C ++允许您使用比Object Pascal更灵活的编程技术,但这种灵活性是通过增加编译时间来实现的



Виктор Щербаков   (2002-07-03 09:44) [5]

kull©(02.07.02 23:54)
它们都是严格的,否则编译器无法编写。
但是C ++中的语法实际上更复杂。
例如在pascal中
程序SomeProc;
在第一个令牌之后,编译器理解这是一个过程声明。
在si
int * Somefunc()
在第一个lexeme之后该死的,目前尚不清楚是什么样的公告。 第二次和第三次之后。 只有在括号之后,耗尽的编译器才能理解程序员想要声明一个函数,而不是一个变量。

该计划当然是简化的,但你可以得到一个大致的想法。



kull   (2002-07-03 10:39) [6]


>它们都是严格的,否则编译器无法编写。

也许我错了,但在C ++中你可以包装这个转换(例如,类型),Pascal会说不兼容的类型......



limon   (2002-07-03 10:47) [7]

>库尔
为了清晰响应,在IDE中设置参数 - 显示编译过程。 所以这个进度条除其他外,显示了处理的行数。
来自10系列的程序设计 - 约30-40。 在构建器 - > 100000中



Виктор Щербаков   (2002-07-03 10:48) [8]

kull©(03.07.02 10:39)
那么,那是什么。 无论如何,在C ++中,描述了默认执行的类型转换的规则,并且它们是严格的。 这一切都在Stroustrup。 唯一的区别是在Pascal中这些规则是不同的。

你可能意味着对程序员的严格要求,而不是语言本身的严格性。



kull   (2002-07-03 11:37) [9]


> Victor Shcherbakov©(03.07.02 10:48)

嗯,是的,我的意思是。

但是更严格的自由度越小,因此处理情况的数量就越少。 反之亦然
(比如C ++)。

从这个意义上说,我谈到了严谨。



Shaman_Naydak   (2002-07-03 13:40) [10]

所有这一切的根源,胆小,去实现Delphi是一种模块化语言的简单事实,而C / C ++则不是......
因此,事实证明,见limon©(03.07.02 10:47)
事实上,语法更复杂,语言本身就是pozamorochennoe - 对于当前的过程而言......
当然,这是2的传递处理,让人感觉到
(虽然没有什么能阻止你在单个传递中实现编译:))
但是,它仍然没有发挥作用..它只播放你需要处理40字符串或40数千用于编译:(


> kull©(03.07.02 10:39)
>
>也许我错了,但在C ++中你可以进行这种转换(例如
>类型)换行,Pascal会说不兼容
>类型......

然而,不对,哦,不对。 那个和其他语言都遵循类型(我说的是With ++和Delfi),但是如果你需要的话,两者都可以是你想要的愚蠢

有史以来第一次,我仍然无法抗拒并坦率地谈论C和Pascal! ZZY :)
我不会



kull   (2002-07-03 14:00) [11]


>但是如果你这样做的话,两者都可以愚弄你
>需要

你可以愚弄你想要的人,但C ++比Pascal更容易愚弄。




>这一切的根源,胆小,进入简单的实现
> Delphi是一种模块化语言,而C / C ++不是......
>因此,事实证明,见limon©(03.07.02 10:47)

,

>为了清楚答案,请在IDE中设置参数 - 显示
>编译过程。 所以这是进度条,除了一切
>其他,显示已处理的行数。
>来自delfe的10行的programulina - 关于30-40。 在建设者
> - > 100000


那又怎样?
tick Show编译器进度始终打开。

在Delphi中,处理相同数量的行(例如100000)的速度更快。
嗯......模块化在哪里?



Страницы: 1 整个分支

论坛:“抢”;
当前存档:2002.07.29;
下载:[xml.tar.bz2];

楼上









内存:0.6 MB
时间:0.026 c
4-95604
巴拉圭
2002-05-20 23:46
2002.07.29
位图 - >图标


4-95610
KSergey
2002-05-22 15:37
2002.07.29
从dll调用另一个dll中的f-tion


14-95512
恶魔
2002-07-02 12:59
2002.07.29
你怎么看? 有人需要这样的东西吗?


1-95363
疯子
2002-07-14 16:05
2002.07.29
Исключения


1-95330
寂然
2002-07-15 17:49
2002.07.29
如何知道正在运行的WinExec()应用程序结束了..





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本性玩偶 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский