идеальный язык программирования
, каким он должен быть?
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.84] |
|
|
Правила раздела:
| Страницы: (31) « Первая ... 21 22 [23] 24 25 ... 30 31 ( Перейти к последнему сообщению ) |
идеальный язык программирования
, каким он должен быть?
|
Сообщ.
#331
,
|
|
|
|
А что макросы в лиспе еще делают? Вычисления в compile-time и генерацию кода. То же самое, что и темплейты, только синтаксис более причесанный (в первую очередь, за счет свойств языка), но не более. |
|
Сообщ.
#332
,
|
|
|
|
Цитата Темплейты именно костыль Звучит неубедительно. Цитата Макрос в лиспе -- естественная языковая конструкция. Звучит так же неубедительно Цитата Шаблоны в C++ - естественная языковая конструкция Звучит убедительно. У тебя есть аргументы против? |
|
Сообщ.
#333
,
|
|
|
|
Макрос в лиспе пишется на лиспе.
Шаблон в C++ пишется на множестве языка шаблонов для C++. Превратить по желанию шаблон в функцию и наоборот ты сможешь? То-то. Вот тебе и «естественно-неестественно». А макры рулят, и скобочки тоже. |
|
Сообщ.
#334
,
|
|
|
|
Цитата Ho Im @ Превратить по желанию шаблон в функцию и наоборот ты сможешь? То-то. А что, на лиспе таки прям можно? И аргументы вычисляться не будут у функции? Т.е., не все макросы можно превратить в функции. |
|
Сообщ.
#335
,
|
|
|
|
Цитата Превратить по желанию шаблон в функцию и наоборот ты сможешь? Это называется специализация шаблона, если я правильно понял, что ты имеешь в виду ![]() У специализаций более высокий приоритет при разрешении перегрузки, так что всё в порядке. Добавлено Если я конечно правильно понял твой вопрос. |
|
Сообщ.
#336
,
|
|
|
|
Не стану читать 20 с лишним страниц флуда, просто скажу своё мнение... Это должен быть язык, "интерпретируемый" искусственным интеллектом (ныне называемым "компилятор"). В него должно быть заложено переключение на "старый тип кода", нечто гибридное между ObjectPascal и VisualBasic и обучение новым функциям. Код такого языка мог бы выглядеть так: ![]() ![]() using AI; AI.Execute ("Установить мою форму на верху и сделать её прозрачной на 10%"); If AI.NewObjects.Forms.MyForm.Top > 110 { } IDE должна поддерживать технологию Speech Recognition и в реальном времени выполнять программу в окне предпросмотра. Обязательна полная кроссплатформенность, это уже на совести AI. При всем при этом должны поддерживаться макросы. Например, так: ![]() ![]() AI.Execute ("Выполнить [Эффект плавной смены цветов формы] кроме последнего цикла"); Вот таким должен быть идеальный язык. |
|
Сообщ.
#337
,
|
|
|
|
Цитата Ho Im @ Шаблон в C++ пишется на множестве языка шаблонов для C++. Неа. Шаблон в С++ пишется на языке С++. Основание - раздел 14 стандарта ISO/IEC 14882. |
|
Сообщ.
#338
,
|
|
|
|
Цитата BugHunter @ Не, видимо речь не о том. Просто в С++ существует специальный "язык" шаблонов со своим синтаксисом и особенностями. В Лиспе каких-то дополнительных средств (типа угловых скобочек "template <...>") для организации макросов нет. Это к вопросу целостности языка ("органично-неорганично"). Если я конечно правильно понял твой вопрос. Добавлено Цитата B.V. @ Диалект SQL? Вот таким должен быть идеальный язык. Кстати, то что ты написал -- это декларативный стиль программирования, о котором тут талдычат уже ХЗ сколько страниц.Цитата Flex Ferrum @ Мы тут в философию ударились, так что Стандарт пофиг. Шаблон в С++ пишется на языке С++. Основание - раздел 14 стандарта ISO/IEC 14882. ![]() |
|
Сообщ.
#339
,
|
|
|
|
Цитата Relan @ Просто в С++ существует специальный "язык" шаблонов со своим синтаксисом и особенностями. Как такового языка шаблонов в С++ нет. Есть языковые конструкции, такие же, как class, try-catch, и т. п., используемые для описания шаблонов. |
|
Сообщ.
#340
,
|
|
|
|
Цитата Relan @ Диалект SQL? Не совсем. Здесь скорее "общение" с компилятором на свободном "языке", не ограниченом командами и правилами их расстановки. Цитата Relan @ это декларативный стиль программирования Точно, он. |
|
Сообщ.
#341
,
|
|
|
|
Цитата Flex Ferrum @ Как такового языка шаблонов в С++ нет. Есть языковые конструкции, такие же, как class, try-catch, и т. п., используемые для описания шаблонов. По сути, таковая конструкция одна - template<>, ну еще export template<>. О каком языке идет речь? |
|
Сообщ.
#342
,
|
|
|
|
Цитата Flex Ferrum @ А как же угловые скобочки? Как такового языка шаблонов в С++ нет. Есть языковые конструкции, такие же, как class, try-catch, и т. п., используемые для описания шаблонов. Они используются только для шаблонов. Ну и в приведениях типов, синтаксис которых, по признанию самого Страуструпа, срисован с шаблонов. Цитата B.V. @ Нет уж, спасибо. Программистам и так багов хватает. Не совсем. Здесь скорее "общение" с компилятором на свободном "языке", не ограниченом командами и правилами их расстановки. |
|
Сообщ.
#343
,
|
|
|
|
Цитата Relan @ Нет уж, спасибо. Программистам и так багов хватает. А почему должны появится баги? Максимум, что будет - выполнение не того чего хочет программист. Тогда достаточно будет уточнить команду или написать "чистым кодом", напрямую. |
|
Сообщ.
#344
,
|
|
|
|
Цитата Relan @ Ну и в приведениях типов, синтаксис которых, по признанию самого Страуструпа, срисован с шаблонов. Он просто унифицирован для того, чтобы не отличался от синтаксиса явного инстанцирования шаблонной функции. Только и всего. Цитата Relan @ А как же угловые скобочки? Не тянет на "специальный язык". |
|
Сообщ.
#345
,
|
|
|
|
Цитата Flex Ferrum @ Дык о нем родимом и речь. По сути, таковая конструкция одна - template<>, ну еще export template<>. О каком языке идет речь? Например void f<int>(...) -- тут вклинился элемент этого "языка". Или template <class ...> class .... -- тоже появился элемент его синтаксиса. И правила у этого языка свои -- например поиск специализаций и т.д. Это как препроцессор и С. Это по сути разные языки, у них разный синтаксис, но они органично сосуществуют. |