Есть ли будущее у DELPHI?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.43] |
|
|
Правила раздела:
| Страницы: (245) « Первая ... 113 114 [115] 116 117 ... 244 245 ( Перейти к последнему сообщению ) |
Есть ли будущее у DELPHI?
|
Сообщ.
#1711
,
|
|
|
|
Цитата --Ins-- @ Да и вообще это такая фишка Си-подобных языков: смысл закорючки зависит от контекста. А вот, кстати, в паскале контекстно-свободная грамматика? |
|
Сообщ.
#1713
,
|
|
|
|
Цитата MyNameIsIgor @ А вот, кстати, в паскале контекстно-свободная грамматика? Гораздо в большей степени. Звездочка - это умножить и все тут, а / - это разделить. Хочешь делить нацело - пиши явно div |
|
Сообщ.
#1715
,
|
|
|
|
--Ins--, тогда уж
for (i = 0; i <= n; i++) { а то у тебя разные циклы получились. Точка с запятой в Паскале действительно отличается от таковой в других языках. Только в Паскале она является разделителем операторов. Во всех других она операторы завершает. По возможностям Паскаль в действительности уступает Cи, в основном из-за наличия в Cи эффективных низкоуровневых возможностей по работе с памятью и железом (Си для этого в общем-то и создавался) и из-за большой библиотеки (в стандартном Паскале почти все приходится писать самому), каковая позволяет использовать C не только в системном программировании. Чего нет в C, так это встроенной реализации множеств. Впрочем она не настолько востребована, да и реализуется достаточно просто. Происходит это от изначальной направленности языков. Н. Вирт создавал Паскаль с целью демонстрации приемов программирования во время лекций и для проверки усвоения таковых во время занятий. Отсюда требования к языку - простой, допускающий однопроходную компиляцию, с развитой системой проверок. C создавался для системного программирования, для чего ему требовался полный доступ к аппаратуре. Плюс в UNIX в системную библиотеку включены все основные функции, что позволяет использовать C и в качестве языка общего назначения. |
|
Сообщ.
#1716
,
|
|
|
|
Цитата --Ins-- @ Гораздо в большей степени. Эмммм... Степень свободности грамматики от контекста в неком интуитивном смысле может быть только для контекстно-зависимых грамматик. Так в паскале она всё же зависит от контекста? Цитата --Ins-- @ Звездочка - это умножить и все тут, а / - это разделить. Хочешь делить нацело - пиши явно div Эмммм... Звёздочка в си не вносит зависимости от контекста, ибо в одном случае это унарный префиксный оператор, а в другом - бинарный инфиксный... А при чём тут / вообще? |
|
Сообщ.
#1717
,
|
|
|
|
Цитата OpenGL @ Нет Ну, я тебе аргументом подкрепил свою точку зрения, а ты - нет и все тут. Я в таком ключе дискуссию вести не умею. Могу только ответить "Да!" |
|
Сообщ.
#1718
,
|
|
|
|
Цитата --Ins-- @ Цитата OpenGL @ Нет Ну, я тебе аргументом подкрепил свою точку зрения Что-то я не заметил аргументов там. Ты про "смысл закорючки зависит от контекста"? Так это не аргумент, ибо так везде. Даже в математике. А еще в современных языках есть перегрузка операторов |
|
Сообщ.
#1719
,
|
|
|
|
Цитата --Ins-- @ Да тут уже перечислили нелогичности Ну, я тебе аргументом подкрепил свою точку зрения, а ты - нет и все тут. Я в таком ключе дискуссию вести не умею. Могу только ответить "Да!" Но могу добавить. Почему действие после проверки условия в одном случае пишется после do, в другом - после then? Зачем столь разные ключевые слова для цикла repeat..until и while..do? Зачем в цикле в одном случае писать условие продолжения, а в другом - условие выхода из цикла - ведь куда удобней сделать однообразно, только условие продолжения. |
|
Сообщ.
#1720
,
|
|
|
|
Цитата OpenGL @ Почему действие после проверки условия в одном случае пишется после do, в другом - после then? Потому что в английском языке предложения строятся так. Цитата OpenGL @ Зачем в цикле в одном случае писать условие продолжения, а в другом - условие выхода из цикла - ведь куда удобней сделать однообразно, только условие продолжения. Потому что если перевести слова while и until на русский язык, этот вопрос у тебя сам собой отпадет |
|
Сообщ.
#1721
,
|
|
|
|
Цитата --Ins-- @ Потому что в английском языке предложения строятся так. Алгоритмический язык != английский язык. Практика показывает, что слишком «литературные» языки не становятся популярными. И даже в этом случае было бы логичней использовать do ... end вместо begin ... end |
|
Сообщ.
#1722
,
|
|
|
|
Цитата --Ins-- @ Да не в переводе дело, а в том, что делать один цикл пока условие истинно, а второй - пока ложно, это если и логика, то женская Потому что если перевести слова while и until на русский язык, этот вопрос у тебя сам собой отпадет |
|
Сообщ.
#1723
,
|
|
|
|
Цитата OpenGL @ Да не в переводе дело, а в том, что делать один цикл пока условие истинно, а второй - пока ложно, это если и логика, то женская ![]() еще и аж 3 ключевых слова (while, repeat, until) вместо одного (while) =) |
|
Сообщ.
#1724
,
|
|
|
|
![]() ![]() File Edit Search Run Compile Debug Tools Options Window Help ░░░░░░░░░░╔═[■]════════════════ Compiler Options ════════════════════╗░░░░░░░░░░ ░░░░░░░░░░║ Compiler settings for: Real mode target ▐↓▌ ║░░░░░░░░░░ ░░░░░░░░░░╟──────────────────────────────────────────────────────────╢░░░░░░░░░░ ░░░░░░░░░░║ Code generation ║░░░░░░░░░░ ░░░░░░░░░░║ [ ] Force far calls [X] 286 instructions ║░░░░░░░░░░ ░░░░░░░░░░║ [ ] Overlays allowed [ ] Smart callbacks ║░░░░░░░░░░ ░░░░░░░░░░║ [ ] Word align data [ ] Windows stack frames ║░░░░░░░░░░ ░░░░░░░░░░║ Runtime errors Syntax options ║░░░░░░░░░░ ░░░░░░░░░░║ [ ] Range checking [X] Strict var-strings ║░░░░░░░░░░ ░░░░░░░░░░║ [ ] Stack checking [ ] Complete boolean eval ║░░░░░░░░░░ ░░░░░░░░░░║ [ ] I/O checking [X] Extended syntax ║░░░░░░░░░░ ░░░░░░░░░░║ [ ] Overflow checking [ ] Typed @ operator ║░░░░░░░░░░ ░░░░░░░░░░║ Debugging [ ] Open parameters ║░░░░░░░░░░ ░░░░░░░░░░║ [X] Debug information Numeric processing ║░░░░░░░░░░ ░░░░░░░░░░║ [X] Local symbols [X] 8087/80287 ║░░░░░░░░░░ ░░░░░░░░░░║ [X] Symbol information [ ] Emulation ║░░░░░░░░░░ ░░░░░░░░░░║ ║░░░░░░░░░░ ░░░░░░░░░░║ Conditional defines ║░░░░░░░░░░ ░░░░░░░░░░║ ▐↓▌ ║░░░░░░░░░░ ░░░░░░░░░░║ ║░░░░░░░░░░ ░░░░░░░░░░║ OK ▄ Cancel ▄ Help ▄ ║░░░░░░░░░░ ░░░░░░░░░░║ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ║░░░░░░░░░░ ░░░░░░░░░░╚══════════════════════════════════════════════════════════╝░░░░░░░░░░ F1 Help │ Always evaluate all boolean expressions in a statement ![]() Я на нём без ассемблера писал многие системные вещи. Например, плеер DOOM-овых звуков через спикер, плеер VOC-файлов через любые Sound Blaster, работа VESA. Причём даже в DPMI target. Я его когда-то любил больше остальных. После Дельфи 2 отношение несколько сменилось. В C/C++ точка с запятой (не только) означает точку следования, в которой оптимизатор обязан сколлапсить все сайд-эффекты. Между точками следования он может вытворять что угодно, состояние объектов не определено, как неопределено состояние электронной схемы между тактами синхронизации. Думаю, это не в последнюю очередь влияет на качество оптимизации. Так что ; играет важную роль, и использование её например в for() вполне уместно. Цитата D_KEY @ В классическом - никак. Там много чего нет по сравнению с Turbo. Процедурных типов, например. А наследование и в C получимтся с трудом.Кстати, интересно, насколько трудоемко будет в классическом паскале как-то изобразить ООП? Цитата --Ins-- @ Да-да. Логичность - это когда на 600-ах страницах документации Дельфи 230 страниц описывают правила и 370 страниц исключения из них. Типа там while и until, / и DIV, в языке со семантикой значений вдруг ссылочные типы, const, который вовсе не конст, итп. Вот к вам пришли дженерики, добро пожаловать в эпоху generic programming Правил больше (или столько же?), а логичности - меньше. Особенно деление, которое в зависимости от типов операндов может обозначать разные арифметические действия. Да и вообще это такая фишка Си-подобных языков: смысл закорючки зависит от контекста. |
|
Сообщ.
#1725
,
|
|
|
|
Собственно, начиная с версии 5.5 в Turbo Pascal была введена какая-то объектная модель. По крайней мере ключевое слово object в нем уже было. Но почему-то никто об этом не знал.
|