На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Блочно-модульное программирование , ООП как удобная концепция
    Столкнувшись с ООП выбор среды программирования у меня был невелик. C++, Java, C# и пока все.
    В этом же порядке и пришлось писать программы с ООП. В конечном счете решил вернуться к С++ обратно.
    На Java все стало deprecated (забыто), С# таскает гибабайты runtime и все уже забыто тоже.
    Можно сказать, устал как Жан-Мишель :) Вокруг да около одного и того же...

    Теперь начинаю все сначала. Классы описывают как работать с обьектами. Обьекты могут быть блоками или модулями.
    Блок - большой, а модуль маленький.

    К примеру телевизор это такая конструкция.
    Он состоит из многих блоков, например блок развертки, блок питания и т.д.

    Блок развертки состоит из модулей вертикальной развертки, горизонтальной развертки и т.п.

    Модуль содержит набор более мелких и простых деталей.

    Идея в том, что из блоков и модулей все можно собирать конструкции как из кубиков.

    В реальных языках программирования кроме общей концепции есть еще и неожиданности.
    "Вы не можете иметь статические переменные внутри Java функций". И т.д. в больших количествах.

    Попробуем писать что-то просто на русском языке:


    класс Телевизор {
    Антенный_блок,
    Блок_питания, Блок_разверток,......
    ........
    }

    класс Блок_разверток{
    модуль_горизонтальной_развертки,
    модуль_вертикальной_развертки,
    модуль_синхронизации,......
    ......
    }

    Можно ли как-то транслировать свой язык верхнего уровня в С++ например ?

    И забыть о неожиданностях языков, чтобы все-таки все было как с кубиками ?
    (ООП как-то это обещало,обещало, но почему-то не совсем вышло...)

    Английский в программировании как-то уже утомил. Что можно сделать ?
    Хорошо бы забыть про указатели и иметь возможность узнавать на ходу длины массивов и т.д.
    Классический язык без лишних рунтаймов вне программы, вот чего хочется.
      Весьма сильный изъян, сразу бросающийся в глаза следующий: вы описываете предмет с помощью просто кучи мелких предметов, при этом нисколько не устанавливая связи и не поясняя задачу функционирования чего бы то ни было. a'la Китайская комната или как-то так. Так не получится. Так что надо поначалу разрешить сей важный качественный прокол. :yes-sad:

      Добавлено
      Язык же Си, с коего вы содрали описание, содержит в себе некую функциональность, посему позволяет хучь сколько-то описывать нужное людям. Так в классе:
      ExpandedWrap disabled
        class Телевизор
        {
          int канал;
          int Пульт( int кнопка, float громкость);
        }

      мы сразу видим, что поле 'канал' несёт в себе некое хранилище, а, запуская Пульт, можно посылать в него такие-то команды, осуществлять некоторую плавную≈непрерывную регулировку.;)
        Свои программы следует писать сообразно объектной модели выбранного языка, а не наоборот. Вероятно, поэтому другие языки и не зашли. Посему и Плюсовая может не зайти.
        Объектная модель у Плюсов одна из наиболее продуманных. Это не значит, что она самая лучшая на свете, но это значит, что если что-то в ней не нравится, скорее всего иначе было бы хуже.
        Цитата yuan @
        Английский в программировании как-то уже утомил. Что можно сделать ?
        Поверь, лучше ничего. будет только хуже.
        Цитата yuan @
        Хорошо бы забыть про указатели и иметь возможность узнавать на ходу длины массивов и т.д.
        Не вопрос.
        Цитата yuan @
        Классический язык без лишних рунтаймов вне программы, вот чего хочется.
        Не вопрос.
          Цитата yuan @
          Попробуем писать что-то просто на русском языке:

          Микрософтный с++ это позволяет.
          Только лучше не злоупотреблять.
          ExpandedWrap disabled
            #define класс class
             
            класс БЛОК
            {
             int xxmm;
            };
             
            класс МОДУЛЬ
            {
             int mmxx;
            };
             
            класс Телевизор
            {
             БЛОК Антенный_блок;
             БЛОК Блок_питания;
             БЛОК Блок_разверток;
            };
             
            класс Блок_разверток
            {
             МОДУЛЬ модуль_горизонтальной_развертки;
             МОДУЛЬ модуль_вертикальной_развертки;
             МОДУЛЬ модуль_синхронизации;
            };
            // ....
            int __cdecl _tmain(void)
            {
             _tprintf(_T("Hello, world!\n"));
             
             Телевизор Рубин714, Рекорд, Филипс;
             Блок_разверток Универсальный;
            ///...
            Цитата ЫукпШ @
            Любой с++ это позволяет.

            FIXED.

            Препроцессор — не прерогатива MS.

            Добавлено
            Цитата yuan @
            На Java все стало deprecated (забыто)

            Что «всё»?

            Цитата yuan @
            В реальных языках программирования кроме общей концепции есть еще и неожиданности.
            "Вы не можете иметь статические переменные внутри Java функций". И т.д. в больших количествах.

            Да ты ладно! Видимо, тебе нужен нереальный язык программирования.

            Цитата yuan @
            И забыть о неожиданностях языков, чтобы все-таки все было как с кубиками?

            Какое отношение это имеет к статическим переменным, например? Впрочем, может, тебе нужно в детский садик, там будут тебе кубики.

            Цитата yuan @
            (ООП как-то это обещало,обещало, но почему-то не совсем вышло...)

            Что оно тебе обещало и почему не вышло? А может ты просто тролль, пытающийся развести холивар?
              Цитата korvin @
              Цитата ЫукпШ @
              Любой с++ это позволяет.

              FIXED.

              Препроцессор — не прерогатива MS.

              Не надо искажать цитаты.
              Критерием истины является практика.
              Попробуй взять другой компилятор, откомпилировать и собрать программу
              с приведённым мной исходником.
                Цитата ЫукпШ @
                Критерием истины является практика.

                Нет, не является.

                Цитата ЫукпШ @
                Попробуй взять другой компилятор, откомпилировать и собрать программу
                с приведённым мной исходником.

                Прикреплённая картинка
                Прикреплённая картинка

                Problems?
                  Цитата korvin @
                  Problems?

                  Ещё пробуй.
                  user posted image
                    Цитата ЫукпШ @
                    Ещё пробуй.

                    Мне-то зачем? У меня всё работает.
                      Спасибо, в общем примерно так я себе это и представлял.
                      Мне нужен пре-препроцессор со встроенным словарем русских слов и перекодировкой в латиницу.
                      Это как-нибудь со временем.



                      Кстати массив обьектов имеет свои сложности. Обьекты-потомки имеют бОльшие габариты и не помещаются в ячейках массива (портят память).
                      (Java сразу использует массивы указателей на обьекты).


                      Всем пока.
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,1350 ]   [ 19 queries used ]   [ Generated: 28.03.24, 23:24 GMT ]