Регистрация    Вход    Форум    Поиск    FAQ  

Список форумов » Иврит » Серьезно




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: C++ и живой язык
 Сообщение Добавлено: Сб сен 04, 2010 23:51 
Не в сети
Аватара пользователя

Зарегистрирован: Сб фев 19, 2005 22:23
Сообщения: 14979
Откуда: Израиль
iwr, Ваше слово.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: C++ и живой язык
 Сообщение Добавлено: Вс сен 05, 2010 21:18 
Не в сети

Зарегистрирован: Вс мар 07, 2010 14:37
Сообщения: 1097
Вообще-то я никакой интриги не имел в виду, да еще и для раздела "Серьёзно"! :-D
Ок, прежде всего - дисклеймер: понятно, что с математической т.з., изучить формальный язык проще, чем естественный, ведь в формальном языке всё починяется строгим правилам, нет ни исключений, ни каких-либо вольностей (здесь под формальным языком я имею в виду язык программирования, а под естественным - язык человеческого общения; это не очень правильно, но пусть остаётся). Именно поэтому машина запросто может разобрать текст на формальном языке и досконально "понять" его семантику, а над тем, чтобы достичь похожих результатов с естественным языком, бьются уже не один год, а результаты - так себе.
Поэтому когда я пошутил о сложности изучения c++ по сравнению с русским, то в нешуточной доле этой шутки я имел в виду вот что:
1. Показатель уровня владения языком - не количество знакомых слов (в формальном языке их может быть мало), а результативность его применения. Т.е., с одной стороны, способность прочесть и понять, а с другой - сформулировать и выразить.
2. Если применительно к естественным языкам понимание текста и способность самостоятельно сформулировать текст примерно равноценны, то с формальными языками не так: прежде всего ценна способность писать самому. А между тем, и в том, и в другом случае писать самому на порядок сложнее, чем понимать уже написанное (при заданном уровне текста).
3. Требования к степени корректности понимания и особенно формулировки на формальном языке гораздо выше, чем при общении на естественном языке. Здесь деление на первых-вторых не пройдёт: текст "второго" машина либо не поймёт и не начнёт исполнять, либо поймёт не так, как он подразумевал. Поэтому уровень владения формальным языком, начиная с которого его применение будет результативно, существенно выше, чем в случае с естественным языком.
4. Ну, и наконец: с++ - язык с несколькими парадигмами - одна сложней другой, с очень непростым синтаксисом (по крайней мере, относительно прочих императивных языков) и очень большим количеством нетривиальных идиом.
Для иллюстрации можно взять тексты примерно одного уровня, и, имхо, понять и даже написать аналогичный текст на иврите куда как проще, чем на с++:


מעשה באדם אחד בארץ אשכנז שהלך הוא וחמישה בניו ליריד למכור סחורה. מכרו את סחורתם יפה יפה וראו שכר טוב.
בלילה במלון עשה אביהם של הבנים סעודה לו ולבניו בדגים מלוחים ובדגים כבושים ובצנון ובבצלים ובקישואים הבאים בחומץ ובשאר דברים שמרבים את התאבון.
משאכלו ושתו וברכו עלו על מטתם. כרכו עצמם בשמיכות חמות ועצמו עיניהם לישון.
נטרפה שנתו של האם מחמת צימאון, שכן דרך המלוחים והכבושים שמביאים את הצימאון.
אמר לו לבנו הגדול צמא אני, השקני מים.
נתרשל בנו של אבא לעמוד ממטתו החמה, שאותו לילה ליל טבת היה שהגוף נהנה מן המטה, כל שכן אחר סעודה, כל שכן שהיה שוכב בבית אפל באכסניה של נוכרים. אמר להם לאחיו אבינו צמא ומבקש מים. הרי שמצוה גדולה היא להביא לו מים. נמכור את המצווה למי שיתן יותר ונעשה לנו סעודה בדמיה. זקף עצמו קצת על מטתו והכריז כדרך מוכרי המצוות בבית כנסיות קודם הוצאת הספר. קרא בקול ובנעימה, הבאת כוס מים לאבא, הבאת כוס מים לאבא, גילדון ומחצה גילדון ומחיצה. מי כאן נותן יותר? אין כאן מי שנותן יותר.
נענה אחיו אחר ואמר שני גילדונים.
קרא בנו הגדול של אבא בנעימה שני גילדונים כוס מים לאבינו. אין כאן מי שנותן יותר?
היה שם בן זקוניו של אבא. נצטער בליבו שמצוות כיבוד אב קלה בעיניהם של אחיו כל כך שממעיטים בדמיה כאילו היא מצווה כשאר המצוות, שלבם של בני האדם גס בהן. הוציא ראשו מן הכר ושאג כארי ואני נותן חצי רייכשטאלי"ר. נפלה המצווה בידיו של בן הזקונים של אבא, מפני שכיבד את אביו יותר משאר אחיו.
טפח לו אחיו הבכור על מקום שטפח וביכרו בברכת מי שבירך ואמר לו זכה במצוותך אחינו, זכה במצוותך אחינו.
אמר בן זקוניו של אבא מצוה זו עלתה לי בדמים מרובים, אכבד בה את אבא, שאבא אדם כשר ושמח במצוותו. מיד קרא לאביו ואמר לו אבא הריני מכבד אותך במצוה זו.
הפך בנו הגדול של אבא פניו לכותל ונתכסה בשמיכתו החמה וקרא יעמוד. כשם שקרא הוא כך קראו שאר כל אחיו. לא הספיקו להכפיל עד שנפלה עליהם שינה ונתנמנמו. עד שנשמע קול נחירתם מסוף הבית ועד סופו.
ואביהם של הבנים, אם לא מת באותו לילה מצמאון זכה ונשתתף בסעודת הבנים שעשו במעות שבאו להם ממכירת מצוה.

Код:
    namespace detail
    {
      template class variadic_arg_type;

      template class variadic_arg_type<0, T, Args...>
      {
      public:
        typedef T type;
      };

      template class variadic_arg_type
      {
      public:
        typedef typename variadic_arg_type::type type;
      };

      template
        struct std_functional_base
      {};
      template
        struct std_functional_base: public std::unary_function
      {};
      template
        struct std_functional_base: public std::binary_function
      {};
      template class unsigned_meta_array {};
      template class unsigned_meta_array_appender;
      template
        class unsigned_meta_array_appender, n>
      {
      public:
        typedef unsigned_meta_array type;
      };
      template class make_unsigned_meta_array;
      template<> class make_unsigned_meta_array<0>
      {
      public:
        typedef unsigned_meta_array<> type;
      };
      template<> class make_unsigned_meta_array<1>
      {
      public:
        typedef unsigned_meta_array<0> type;
      };
      template class make_unsigned_meta_array
      {
      public:
        typedef typename unsigned_meta_array_appender::type, n - 1>::type type;
      };

      template
        class call_with_tuple_args
      {
      public:
        typedef R result_type;

        template
          R operator()(Func &func, std::tuple args) const
        {
          typedef typename make_unsigned_meta_array::type indices_type;
          typename Func::result_type *resolver = 0;
          return m_invoke(resolver, func, indices_type(), args);
        }
      private:
        template
          R m_invoke(T *, Func &func, unsigned_meta_array, std::tuple args) const
        {
          return func(std::get(args)...);
        }
        template
          R m_invoke(void *, Func &func, unsigned_meta_array, std::tuple args) const
        {
          func(std::get(args)...);
          return R();
        }
      };

      template
        class variadic_slot_invoker
      {
      public:
        typedef R result_type;

        variadic_slot_invoker(Args & ... args): _args(args...)
        {}
        template
          result_type operator ()(const ConnectionBodyType &connectionBody) const
        {
          result_type *resolver = 0;
          return m_invoke(connectionBody, resolver);
        }
      private:
        template
        result_type m_invoke(const ConnectionBodyType &connectionBody,
          const void_type *) const
        {
          return call_with_tuple_args()(connectionBody->slot.slot_function(), _args);
          return void_type();
        }
        template
          result_type m_invoke(const ConnectionBodyType &connectionBody, ...) const
        {
          return call_with_tuple_args()(connectionBody->slot.slot_function(), _args);
        }
        std::tuple _args;
      };

      template class variadic_extended_signature;
      // partial template specialization
      template
        class variadic_extended_signature
      {
      public:
        typedef function function_type;
      };
    }


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: C++ и живой язык
 Сообщение Добавлено: Вс сен 05, 2010 22:30 
Не в сети
Аватара пользователя

Зарегистрирован: Сб фев 19, 2005 22:23
Сообщения: 14979
Откуда: Израиль
Ой скока букаф на всех языках... Я обязательно прочитаю. Правда, С++ понять не обязуюсь, потому как не владею.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: C++ и живой язык
 Сообщение Добавлено: Вс сен 05, 2010 22:42 
Не в сети

Зарегистрирован: Вс мар 07, 2010 14:37
Сообщения: 1097
Цитата:
Правда, С++ понять не обязуюсь, потому как не владею.
Что ж вы раньше не сказали. Я б, вместо иврита, рассказик на китайском скопипейстил - чисто для симметрии.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: C++ и живой язык
 Сообщение Добавлено: Ср окт 20, 2010 11:31 
Не в сети

Зарегистрирован: Сб окт 16, 2010 09:25
Сообщения: 13
iwr писал(а):
ון.
נטרפה שנתו של האם מחמת צימאון,


Должно быть נטרפה שנתו של האב מחמת צימאון ?


Вернуться к началу 
 Профиль Отправить email  
 
 Заголовок сообщения: Re: C++ и живой язык
 Сообщение Добавлено: Ср окт 20, 2010 11:54 
Не в сети
Аватара пользователя

Зарегистрирован: Сб фев 19, 2005 22:23
Сообщения: 14979
Откуда: Израиль
Действительно. :D


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: C++ и живой язык
 Сообщение Добавлено: Ср окт 20, 2010 12:13 
Не в сети

Зарегистрирован: Вс мар 07, 2010 14:37
Сообщения: 1097
Фигасе, кто-то это прочитал... :mrgreen:


Вернуться к началу 
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Список форумов » Иврит » Серьезно


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

 
 

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron

Русская поддержка phpBB