Здравствуйте, vdimas, Вы писали:
V>>>Влад, ты же разбираешься в этом вопросе, а жонглируешь...
VD>>Чем? Чистое сравнение количества конструкций языка. Без каких личбо выводов.
Так все же чем?
VD>>Осталось определить смысл вкладываемый в это понятие и как перевести "это" в количественную составляющую...
V>смысл такой — количество допустимых выражений на единицу языка.
Это очень расплывчатое определение. Да и бессмысленное.
Скорее оно тянет на выразительность языка. Т.е. на то насколько компактно и понятно можно описать некий алгоритм.
Оба языка универсальны и позволяют построить идентичные по функциональности программы. Так что проще сравнить объем кода необходимый для решения сходных задач. Но тут все упирается в то, что только примитивные задачи можно решить без помощи библиотек, а с ними сравнение будет бессмысленным.
Так что подобное сравнение тяжело сделать точным и исчислимым. Скорее можно вести речь об субъективном сравнении.
V>есть подход от обратного.
V>берем допустимые цепочки и смотрим, скольким нетерминалам (конечным или промежуточным) удовлетворяет эта цепочка. Чем большим (чем больше неоднозначность), тем мощнее грамматика.
Какая нафиг не однозначность? Зависимость от контекста к неоднозначности не приводит.
В общем, это все бессмысленные рассуждения. Все намного проще. В Шарпе есть очень высокоуровневые конструкции и если не брать в рассчет библиотечный код (любой, даже входящий в стандарт), то выразительность Шарпа будет намного выше С++. Собственно для того язык и проектировался. Из самых ярких примеров... вот, например, реализация итератора на Шарпе:
public IEnumerator<НекоторыйТип> GetEnumerator()
{
for (int i = 0; i < некотораяКоллекци.Count; i++)
yield return некотораяКоллекци[i];
}
Для реализации того же самого на С++ прийдется создать внешний класс и кучу кода. Тут же 4 строки кода.
Такая же фигня будет с любым интегрированным в язык решением. То что в С++ много неоднозначностей решаемых семантически — это только минус языка. Выразительность от этого не повышается.
А мерить условные вариации просто бессмысленно. Как и использовать каие-то недетерминированные понятия вроде "мощьности".
... << RSDN@Home 1.1.4 beta 3 rev. 207>>