На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (31) « Первая ... 7 8 [9] 10 11 ...  30 31  ( Перейти к последнему сообщению )  
> идеальный язык программирования , каким он должен быть?
    Цитата wormball @
    ООП на Форте я пока что не видел (может быть, плохо искал) и пока что не придумал, как нормально организовать. Наверное, было бы полезно.

    В AstroForth видел такую либрару. Но все дело в том, что в форте сами словари и слова вполне можно рассматривать как ООП. Несколько необычное, неявное, но довольно гибое ;) Другое дело, что можно сделать это немножко удобнее. Вот тебе и будет неплохой язык программирования. Главное, что бы ООП не бросалось в глаза, как в ЯВУ, а было по прежнему ненавязчевым. Но это чисто мое мнение.
    Цитата wormball @
    У того же Броуди наглядно показывается, что при отказе от специфического синтаксиса Форта и попытках подражания синтаксисам других языков сильно затрудняется процесс видоизменения языка.

    Но есть довольно таки удачные примеры создания на Форте того же Лиспа и Пролога в одном флаконе. Полученный гибрид с успехом применялся в экспертных системах. Автора не помню, у вирмейкеров эту книженку видел ;)
    Цитата mak4444 @
    Вообще, Форт получается в результате максимального упрощения интерпретатора.
    Если-бы вычислительная техника пошла по пути Форта, у него не было-бы названия.
    Т.к. Форт может быть в основе всего.

    Да, и в результате, как оказалось, сейчас используются неплохие Форт-процессоры.
      Я тут понял один прикол. Самое сложное в программировании на Форте (для тех, кто программировал до этого на других языках) - это избавиться от страха перед ошибками. Ежели я что-то написал, то я ещё по полчаса перед первым запуском перечитываю код и выискиваю ошибки, тогда как Форт позволяет обходиться без этого, легко находя ошибки в процессе тестирования.
        Цитата wormball @
        Я тут понял один прикол. Самое сложное в программировании на Форте (для тех, кто программировал до этого на других языках) - это избавиться от страха перед ошибками.

        Непонял, а при чем здесь страх? Если я кодю на асме, то проверяю наличие ошибок постой компиляцией, а ошибки в логике программы IMHO везде одинаковы.
        Кстати, wormball, а почему бы тебе не добавить слово, которое делает парсинг входного выражения, как в ЯВУ? Согласись, что нелегко переходить на польскую запись после 10 лет учебы в школе :)
          Цитата AndNot @
          Непонял, а при чем здесь страх?

          Как при чём - страх перед необъяснимыми ошибками и многодневными безрезультатными перечитываниями исходников. По крайней мере, когда я программировал на паскале, дело было именно так :'( . Может быть, это лично мой недостаток. Так или иначе, в форте несколько другая идеология тестирования, при которой (по крайней мере у меня) ошибки находятся почти мгновенно.

          Цитата AndNot @
          Кстати, wormball, а почему бы тебе не добавить слово, которое делает парсинг входного выражения, как в ЯВУ?

          Я над этим думал, основная сложность - теряется универсальность и простота, т. е. для каждой новой функции надо будет оговаривать её поведение в конструкции со скобками. Вплотную этой проблемой ещё не занимался, возможно, когда-нибудь сделаю. Лично мне отсутствие такой функции несильно мешает.
            Цитата wormball @
            Я над этим думал, основная сложность - теряется универсальность и простота

            Я немного другое имел ввиду. Просто добавить слово, а не менять весь язык. К примеру:
            ExpandedWrap disabled
               MyVar := expression

            Слово := и будет выбирать из входного потока данные и переробатывать их в польскую запись. Есть соответствующий алгоритм. Он как раз и работает со стеком. Вроде мелочь, но зачастую удобно для быстрой проверки на "вшивость" той или иной формулы.
            Цитата wormball @
            т. е. для каждой новой функции надо будет оговаривать её поведение в конструкции со скобками.

            А это уже действительно коренная ломка. Лучше не надо ;)
              Цитата AndNot @
              Цитата wormball @
              Я над этим думал, основная сложность - теряется универсальность и простота

              Я немного другое имел ввиду. Просто добавить слово, а не менять весь язык. К примеру:
              ExpandedWrap disabled
                 MyVar := expression

              Слово := и будет выбирать из входного потока данные и переробатывать их в польскую запись. Есть соответствующий алгоритм. Он как раз и работает со стеком. Вроде мелочь, но зачастую удобно для быстрой проверки на "вшивость" той или иной формулы.
              Цитата wormball @
              т. е. для каждой новой функции надо будет оговаривать её поведение в конструкции со скобками.

              Все о чем тут сказано есть в библиотеках и возможностях
              языка и при желании используется в Форте:)
              При этом Форт при этом не перестает быть Фортом.

              P.S. В Форте самая мощная конструкция CREATE ... DOES>
              решаем множество проблем для убирания избыточности кода.
                По поводу сабжа где-то слышал так -
                Цитата
                идеальный язык программирования - это тот, в котором все программисты одни и те же действтия делают одинаково
                и в Индии, и в России и ещё где попало. Тогда по сути "пропадает" проблема разборки в чужом коде :)

                ЗЫ "Пропадает" в кавычках ибо имхо.
                  я насчет спора про два файла
                  где короче и быстрее на Форте или С++
                  wormball,
                  ты говоришь ,что на С++ эта задача решена за счет библиотеки,
                  но и на форте тоже эта задача решается с помощью библиотеки
                  ТОЛЬКО ВСТРОЕННОЙ
                  ведь проц кроме четырех логических действий
                  (лог. И, лог. ИЛИ, лог НЕ, лог. ДОПОЛНЕНИЕ, ну и копирование)
                  он ничего не знает просто С++ обеспечивает более низкоуровневый подход
                  но с помощью библ. можно пользоваться и высоко уровневым
                  а Форт обеспечивает только ВЫСОКОУРОВНЕВЫЙ ПОДХОД

                  именно поэтому серьезные прикладные программы в области науки, а также операционные системы и
                  крутые комп игры пишу на таких титанах как С/С++ или Паскаль/Дельфи(реже)

                  если на С++ библ можно переписать (оптимизируя под тек задачи) или написать новую
                  то на Форте придется выбрасывать эту версию интерпретатора а также весь написанный под него код
                  по соображением несовместимости

                  Добавлено
                  самый идеальный язык (на данный момент), это С++, так как он обеспечивает ЛЮБОЙ уровень подхода
                  от асма(ниже некуда) до объектного программинга(самый высокий)

                  а потом, если можешь вырази этот код на Форте

                  ExpandedWrap disabled
                    typedef class DObject_base
                    {
                    protected:
                        GRect_map position;
                     
                        PR_RESULT PutInMap();
                        void PopInMap();
                        void Move(GVector_map& v,PARAM_VALUE sp);
                        void Destroy(PR_RESULT INTELLIGENT = RES_OK);
                     
                    public:
                     
                        P_RECT_INF GetMyPosition()const {return &position;}
                     
                        virtual void CreateObject()=0;  // for create object
                        virtual void Die()=0;           // for destroy object
                     
                        virtual OBJECT_ID GetObjID()const = 0;
                        virtual MODE_TYPE GetHeight()const = 0;
                        virtual MODE_TYPE DrawMode()const =0;
                     
                        virtual MODE_TYPE Collision(PARAM_VALUE Obj_type) = 0;
                        virtual PR_RESULT Contact(MODE_TYPE Con_type) = 0;
                        virtual STRING_RES GetAboutObject()const = 0;
                        
                        virtual void Think() = 0;  // timer function (T = 0.4 (0,5) sec)  
                        
                    } DOBJECT;
                     
                    typedef class DStatic_obj:public DObject_base
                    {
                        void Think(){}
                        MODE_TYPE DrawMode()const {return NULL;}
                     
                    } DSTATIC;
                     
                    typedef class DDecoration_stat_obj:public DStatic_obj
                    {
                        PR_RESULT Contact(MODE_TYPE Con_type){return RES_BAD;}
                     
                    } DDECORATION;


                  именно саму идею наследования как связи
                    Цитата impik777 @
                    самый идеальный язык (на данный момент), это С++, так как он обеспечивает ЛЮБОЙ уровень подхода
                    от асма(ниже некуда) до объектного программинга(самый высокий)

                    :no: Идеального языка не существует. Единственный нормальный способ писать неглючные нетривиальные программные системы — комбинировать преимущества различных подходов, языков и инструментальных средств. Кстати, «объектный арограмминг» — далеко не самый высокий уровень, так же как и ассемблер — не самый низкий уровень.
                    Хотя в одном согласен: C++ обеспечивает широкие возможности (а со следующей версией стандарта они, вроде бы, станут еще шире и менее неудобными), чего никак не могут предоставить многие другие языки. Но, всё-таки, C++ — это язык общего назначения, и всюду его совать не стоит — для многих задач/областей есть специализированные языки.
                      Цитата
                      Идеального языка не существует

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

                      Добавлено
                      еще я хотел добавить, что соревноваться кто быстрее перевернет файл вверх тормашками уже не концептуально
                      т.к большинство стандартный алгоритмов написаны
                      специалистами матаматиками, до которых нам - большинству(я не хочу ни кого обидеть)очень далеко

                      сейчас большую значимость имеет моделирование и проектирование
                      ведь на работе с вас не будут требовать сделать запись в файл особым способом
                      а попросят смоделировать например транспортныю систему, для расчета оптимальных маршрутов и т.д.
                        Цитата Kopa @
                        P.S. В Форте самая мощная конструкция CREATE ... DOES>
                        решаем множество проблем для убирания избыточности кода.

                        А кто с этим спорит? Только она самая мощная не только в Форте, а наверное вообще среди любых ЯВУ.
                        Цитата Rulikkk @
                        Цитата
                        Цитата
                        идеальный язык программирования - это тот, в котором все программисты одни и те же действтия делают одинаково

                        и в Индии, и в России и ещё где попало.

                        Упаси боже до такого дожить :( Лучше уж уйти в монастырь (желательно в женский :lol: Ведь это по сути оковы для программиста. Да и, к счастью, такое в принципе не возможно.
                        Цитата Rulikkk @
                        Тогда по сути "пропадает" проблема разборки в чужом коде

                        Да не, скорее всего просто исчезнут нормальные программисты :) А проблемы всегда будут, каким бы ты программистом не был. К примеру, если я никогда не программировал PCI, то встретив подобные сорцы не смогу их разобрать, пока не узнаю об этой теме хотя бы основы.

                        Добавлено
                        impik777 wrote:
                        Цитата impik777 @
                        ты говоришь ,что на С++ эта задача решена за счет библиотеки,
                        но и на форте тоже эта задача решается с помощью библиотеки
                        ТОЛЬКО ВСТРОЕННОЙ

                        Это не встроенная библиотека(а вообще странный термин), это стандартный набор слов Форта, так же как в С++ void,while и тд.
                        Цитата impik777 @
                        ведь проц кроме четырех логических действий
                        (лог. И, лог. ИЛИ, лог НЕ, лог. ДОПОЛНЕНИЕ, ну и копирование)

                        Проц знает намного больше :D
                        Цитата impik777 @

                        просто С++ обеспечивает более низкоуровневый подход но с помощью библ. можно пользоваться и высоко уровневым а Форт обеспечивает только ВЫСОКОУРОВНЕВЫЙ ПОДХОД

                        Я валяюсь :lool: :lool: :lool: :lool: :lool:
                        Форт замечателен тем, что обеспечивает очень удобные низкоуровневые средства, и в то же время не менее удобные высокоуровневые. Причем без напрягов.
                        Цитата impik777 @
                        именно поэтому серьезные прикладные программы в области науки, а также операционные системы и
                        крутые комп игры пишу на таких титанах как С/С++ или Паскаль/Дельфи(реже)

                        В области науки, а точнее в области ИИ и экспертных системах, применяется Форт, Лисп, и Пролог. Причем в Форт легко добавляются возможности Лиспа и Пролога, после чего это уже нечто. А С ,сколько бы плюсов не было, до них далеко. Нет у него такой гибкости. Он по своей сути статичен и не способен к самоизменению и написанию программ с нечеткой логикой.
                        Цитата impik777 @
                        самый идеальный язык (на данный момент), это С++, так как он обеспечивает ЛЮБОЙ уровень подхода
                        от асма(ниже некуда) до объектного программинга(самый высокий)

                        А ты на С++ ООП можешь, по ходу выполнения программы, потомку поменять родителя? Или добавить/удалить/изменить методы? На Форте ноу проблем. Просто в Форте нет понятий ООП(они появились позже), но все возможности ООП уже встроены. И асм имеется, причем значительно более мощный, нежели в С++.
                        А насчет примера: в Форте не нужно так все расписывать. Там это делается по умолчанию, т.е. есть список словарей, у каждого словаря свой набор слов, и есть текущий словарь, куда и добавляются/удаляются/изменяются слова. Естественно любой словарь можешь сделать текущим и работать с ним. Можешь его сбросить на диск и считать обратно(и не только на диск, а вообще без разницы куда), можешь просто удалить. Причем это сама структура языка, сам Форт, а не дополнительные либрары и примочки.
                        Извини если что не так, но честно говоря не удержался, встретив высказывание чисто сишника.
                          Цитата AndNot @
                          И асм имеется, причем значительно более мощный, нежели в С++.

                          Кхм... В C++ нету ассемблера.
                            Цитата mo3r @
                            Кхм... В C++ нету ассемблера.

                            Сорри, просто для меня нет разницы между С и С++ ;) Все равно ими не пользуюсь <_<
                              Цитата AndNot @
                              Сорри, просто для меня нет разницы между С и С++ ;) Все равно ими не пользуюсь <_<

                              Да и в C его тоже нету...
                                Цитата AndNot @
                                А ты на С++ ООП можешь, по ходу выполнения программы, потомку поменять родителя? Или добавить/удалить/изменить методы?

                                :lool:
                                если тебе это надо значит ты просто неправильно спроектировал систему наследования

                                -Added
                                Цитата mo3r @
                                Кхм... В C++ нету ассемблера.

                                а асм вставки ???

                                -Added
                                Цитата AndNot @
                                Проц знает намного больше :D

                                :lool:
                                но ВСЕ эти больше строятся на этих четырех (даже трех)
                                т.к. первые три - это элементарные звенья которые могут составлять структуру процессора
                                (есть другие, но они относятся к немного другим вещам)
                                например операция сложения реализуется с помощью этих трех звеньев
                                (есть такие вещи как сумматор, полусумматор ;), например)
                                просто все это забито на уровне железа
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (31) « Первая ... 7 8 [9] 10 11 ...  30 31


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0538 ]   [ 14 queries used ]   [ Generated: 18.07.25, 17:04 GMT ]