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

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

    Они не входят в язык, а являются его расширением.
      Цитата AndNot @
      Форт замечателен тем, что обеспечивает очень удобные низкоуровневые средства, и в то же время не менее удобные высокоуровневые.

      привели пример того, что ты считаешь низкоуровневым

      -Added
      Цитата AndNot @
      Извини если что не так, но честно говоря не удержался, встретив высказывание чисто сишника.

      Visual Basic
      C\C++
      Паскаль
      Java
      Ассемблер(правда совсем чуть-чуть)

      -Added
      Цитата mo3r @
      Они не входят в язык, а являются его расширением.

      ну по идее С++ тоже всего лишь расширение С
        Цитата impik777 @
        ну по идее С++ тоже всего лишь расширение С

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

          MathLab
          Lab View
          С/С++ или Паскаль (точно сказать не могу)

          Автоматические системы управления(сам этим занимаюсь)
          то же

          насчет нечеткой логики
          Нейронные сети очень часто моделируют на С/С++ или Паскаль
          Сообщение отредактировано: impik777 -
            Уважаемый impik777, советую Вам сначала изучить предмет разговора (хотя бы прочитать одну из книжек за авторством Лео Броуди), и только потом утверждать о безоговорочном преимуществе С++.

            Цитата impik777 @
            ведь на работе с вас не будут требовать сделать запись в файл особым способом
            а попросят смоделировать например транспортныю систему, для расчета оптимальных маршрутов и т.д.

            Я сейчас пишу программу для моделирования молекулярной динамики. Угадай на чём.

            Цитата Kopa @
            P.S. В Форте самая мощная конструкция CREATE ... DOES>

            А в моём Форте нет такой конструкции. :wall: Хотя наверняка есть конструкция, выполняющая аналогичные функции. Не напомните вкратце, что она делает?
              Цитата wormball @
              Уважаемый impik777, советую Вам сначала изучить предмет разговора (хотя бы прочитать одну из книжек за авторством Лео Броуди), и только потом утверждать о безоговорочном преимуществе С++.

              1. сам писал к нему интерпретатор(к одному из подмножеств)
              2. о безоговорочном преимуществе С++ не говорю, а лишь утверждаю о его применимости во многих областях, как и Паскаль

              3. На Форт не наезжаю, а лишь поправил некотрые мнения относительно С++

              Добавлено
              насчет низкоуровнего подхода в Форте - я особо его не разглядел,
              по крайней мере в моем понимании этого понятия
              если меня поправят буду очень рад
              Сообщение отредактировано: impik777 -
                Цитата impik777 @
                1. сам писал к нему интерпретатор(к одному из подмножеств)

                Есть у меня подозрение, что это подмножество было такое убогое. Более гибкого и выразительного языка я не встречал. Всё-таки советую почитать Броуди, сильно расширяет сознание. (для начала лучше "способ мышления - Форт")

                Цитата impik777 @
                2. о безоговорочном преимуществе С++ не говорю, а лишь утверждаю о его применимости во многих областях, как и Паскаль

                На любом языке программирования по определению можно написать программу для решения любой (алгоритмически разрешимой) задачи.

                Цитата impik777 @
                3. На Форт не наезжаю, а лишь поправил некотрые мнения относительно С++

                Все твои аргументы абсолютно беспочвенны. Кстати, если ты читал настоящее обсуждение, то я тоже не наезжаю ни на С++, ни на кого-либо/что-либо, а просто хочу выяснить, чего современным языкам не хватает до идеала.
                  Форт конечно упрощает проектирование задачи
                  но в программирование очень много завязано на железе
                  ведь программист - не только творец, но и переводчик
                  между человеком и машиной

                  ведь когда иностранец(это просто пример, а не наезд на иностранцев)
                  еще плохо знающий русский говорит на нем например без падежей
                  ему это конечно проще сказать свою мысль (ведь на английском падежей нет), а нам разбирать,
                  что он сказал - тяжелее, и нам бы хотелось, что бы он говорил правильно, тогда мы его быстрее и лучше поймем,
                  то же самое в отношении человека и компьтера,
                  а какой бы не был хороший компилер или интерпретатор, всего он учесть не может
                  поэтому С/С++ и Паскаль реализую нам возможность, где надо говорить на машинном языке,
                  но и дают компу некии инструмент понять нашу речь
                    Цитата mo3r @

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

                    Кхм... Вообще-то ключевое слово asm как раз является стандартным для C++.
                    Но не для C. Курим Страуструпа хотя бы.
                      Цитата wormball @
                      На любом языке программирования по определению можно написать программу для решения любой (алгоритмически разрешимой) задачи.

                      смотря какие будут последствия для программера и компа :)

                      ученому, незнаюшему особо тонко железо, конечно лучше выразить свои идеи на Форте,
                      я в этом безоговорочно согласен,

                      язык должен быть такой, который дает возможность не только проектировать, но и заботится о оптимизации
                      и подстройке под железо,
                      библиотеки пишутся именно для выражения частных задач на этапе проектирования простыми способами
                      (МОДУЛЬНОСТЬ - по Броуди), но при этом они жестко оптимизированы
                      Библиотеки не расширяют язык, они скрывают от программиста проблемы взаимодействия с железом, одновременно
                      давая ему возможность, что-то исправить в зависимости от текущей ситуации

                      -Added
                      Цитата antigen @
                      Цитата mo3r @

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

                      Кхм... Вообще-то ключевое слово asm как раз является стандартным для C++.
                      Но не для C. Курим Страуструпа хотя бы.

                      :yes:
                        Цитата antigen @
                        Кхм... Вообще-то ключевое слово asm как раз является стандартным для C++.

                        Но это совсем не значит, что ассемблер присутствует. Стандарт (а точнее, пункт 7.4) скупо говорит, что "The meaning of an asm declaration is implementation-defined. [Note: Typically it is used to pass information through the implementation to an assembler]". Т.е., в реализации эта конструкция может вообще ничего не делать, не нарушая при этом Стандарт.
                          Цитата mo3r @
                          Да и в C его тоже нету...

                          Еще когда кодил на Borland C 3.xx я встроенным асмом частенько пользовался.
                          Цитата impik777 @
                          но ВСЕ эти больше строятся на этих четырех (даже трех)

                          Если уж так рассуждать, то давай вспомним схемотехнику, и придем к соглашению, что все это строится на двух логических операциях- напряжение и его отсутствие :lool:
                          Цитата impik777 @
                          если тебе это надо значит ты просто неправильно спроектировал систему наследования

                          В области ИИ всего не спроектируешь, и именно для этого и нужна способность программы к динамическому изменению. Да и в других областях эта способность не бывает лишней. К примеру, поставил программу, а пользователь автоматически имеет все те средства для изменения программы, которые использовались при ее написании, и может настроить ее под свои цели(согласись, что на всех не угодишь).
                          Цитата impik777 @
                          привели пример того, что ты считаешь низкоуровневым

                          В ломы набивать что-то осмысленное, посмотри лучше фрагмент из старенького вируса:
                          ExpandedWrap disabled
                            CODE GO_PROG
                             ( Code for run infected file!  [CS IP SS SP -- ] )
                             BP, F0 MOV ES, BP MOV DS, BP MOV
                             DX, # 0080 MOV AH, # 1A MOV 21 INT CLI CS PUSH DS POP
                             SP, 06 MOV AX, 04 MOV AX, BP ADD AX, # 10 ADD SS, AX MOV
                             AX, 00 MOV AX, BP ADD AX, # 10 ADD AX PUSH 02 PUSH DS, BP MOV
                             STI
                             FAR RET
                            END-CODE

                          Это не ассемблер, это форт-слова. Просто каждое компилит код по своей мнемонике. Но, при желании, можно заставить их компилить коды под другой процессор, и вообще все что угодно.
                          Цитата impik777 @
                          MathLab
                          Lab View
                          С/С++ или Паскаль (точно сказать не могу)

                          Первые две не знаю, а С и Паскаль каким боком способны к динамическому самоизменению? Ты сможешь изменить конструкцию WHILE? Или добавить новую?
                          Цитата impik777 @
                          насчет низкоуровнего подхода в Форте - я особо его не разглядел,
                          по крайней мере в моем понимании этого понятия
                          если меня поправят буду очень рад

                          А собственно что ты понимаешь под низким уровнем? Если коды, то в форте и это есть. Даже если и не будет, то добавить поддержку минутное дело.
                          Цитата impik777 @
                          Форт конечно упрощает проектирование задачи
                          но в программирование очень много завязано на железе
                          ведь программист - не только творец, но и переводчик
                          между человеком и машиной

                          А ты знаешь, что Форт - платформенно независимый язык? Реализации Форта есть практически на всех машинах, начиная с древнейших 8 битных. Чего не скажешь о С и Паскале, которых на тех же машинах или небыло или были очень убогими. И кстати, Форт иногда выступал в роли операционной системы.
                          Цитата wormball @
                          А в моём Форте нет такой конструкции. :wall: Хотя наверняка есть конструкция, выполняющая аналогичные функции. Не напомните вкратце, что она делает?

                          Выцеплено из комплекта шароварной поставки форта SPForth 1.01
                          Цитата

                          Конструкция CREATE ... DOES> (<BUILD...DOES> в старых версиях), определяющая данные и одновременно действия над ними, используется в Форте "испокон веков" (с момента его рождения в 1971 г.), а сейчас нам пытаются преподнести это как нечто новое и нарекли умным словом "инкапсуляция".
                          [skipped]
                          Это позволяет полноправно наследовать данные и методы, но не в глобальном масштабе на уровне словарей, а в местном масштабе - на уровне слов (процедур и их данных): слово (процедура), в котором встретилась конструкция CREATE...DOES>.., становится способным само генерировать код слова (и это слово тоже со всеми основаниями можно считать обьектом, точнее экземпляром обьекта, в терминологии ООП Турбо Паскаля) с заданием в нем полей данных (которые описаны после CREATE) и методов над ними (методы описаны после DOES>). Причем, в этом случае каждому экземпляру обьекта может быть присвоено свое имя, в отличие от не всегда удобных указателей Паскаля и Си (при этом вы можете работать и с указателями - в Форте нет абсолютно никаких ограничений !). Самый простой и самый классический пример обьекта в Форте (хотя никто не пользуется в Форте термином "обьект") - это стандартное слово Форта CONSTANT, которое используется для описания констант (экземпляров обьекта CONSTANT), оно реализуется элементарно: : CONSTANT CREATE , DOES> @ ; теперь при выполнении в программе действий 10 CONSTANT TEN определяется константа TEN со значением 10. Все константы, определенные через это слово CONSTANT, будут использовать единственный общий метод "@", который собственно и будет класть константу на стек, доставая ее из поля, сформированного словом "," (запятая). Слова DOES> и CREATE, хоть часто и используются в паре, совершенно взаимнонезависимы и не менее часто используются по отдельности. Комбинируя описанные средства создания обьектов вы можете создавать любые структуры, какие только могут прийти в голову человека, в том числе и такие, для которых еще не придумали названия любители звучных терминов.
                            Цитата AndNot @
                            Еще когда кодил на Borland C 3.xx я встроенным асмом частенько пользовался.

                            Опять же, это не значит, что в языке эта возможность есть. Её просто нету. То, чем ты пользовался — это нестандартное расширение языка.
                            Цитата AndNot @
                            К примеру, поставил программу, а пользователь автоматически имеет все те средства для изменения программы, которые использовались при ее написании, и может настроить ее под свои цели(согласись, что на всех не угодишь).

                            Пользователю это не надо. Скорее, это может оказаться удобным для использования в программе.
                            Цитата AndNot @
                            Реализации Форта есть практически на всех машинах, начиная с древнейших 8 битных. Чего не скажешь о С и Паскале, которых на тех же машинах или небыло или были очень убогими.

                            Кхм... Скажем так: C — это и есть самый кросс-платформенный язык (на 8-битных машинах он тоже был доступен).
                              Цитата AndNot @
                              Если уж так рассуждать, то давай вспомним схемотехнику, и придем к соглашению, что все это строится на двух логических операциях- напряжение и его отсутствие

                              это уже электротехника, а не логика :wacko:

                              -Added
                              Цитата AndNot @
                              В области ИИ всего не спроектируешь, и именно для этого и нужна способность программы к динамическому изменению. Да и в других областях эта способность не бывает лишней. К примеру, поставил программу, а пользователь автоматически имеет все те средства для изменения программы, которые использовались при ее написании, и может настроить ее под свои цели(согласись, что на всех не угодишь).

                              представь себе понятие телевизора как интерфейс
                              и его реализации: черно-белый и цветной (наследование)
                              теперь меняем родителя - телевизор, на, скажем, микроволновку
                              пользователь (пользователь-программист!) смотрит на интерфейс и видит микроволновку
                              он думает - сейчас я поверну эту ручку, и у меня выставится время готовки, а тут оба на
                              он у меня каналы переключает :lool:
                              че пользователь с какой печкой сделает ????

                              -Added
                              Цитата
                              К примеру, поставил программу, а пользователь автоматически имеет все те средства для изменения программы, которые использовались при ее написании, и может настроить ее под свои цели(согласись, что на всех не угодишь).

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


                              по ходу выполнения программы
                              неужели пользователь не программист когда-нибудь хотел сделать это!!!! :lool: :lool: :lool:
                              вы юзаете базу данных и думаете - че-то не то, надо бы родителя у класса текстового поля сменить
                              а то оно левое какое-то

                              ПО ХОДУ ВЫПОЛНЕНИЯ ПРОГРАММЫ изменения кода бесмысленны, т.к пользователь понятия не имеет о том, как она работает
                              и не должен
                              даже на этапе написания проги, если вы юзаете чужую либу, вас не волнует как она сделана, вы работаете через интерфейс.
                              это принцип ИНКАПСУЛЯЦИИ

                              -Added
                              Цитата AndNot @
                              А ты знаешь, что Форт - платформенно независимый язык? Реализации Форта есть практически на всех машинах, начиная с древнейших 8 битных. Чего не скажешь о С и Паскале, которых на тех же машинах или небыло или были очень убогими. И кстати, Форт иногда выступал в роли операционной системы.

                              во-первых, С и Паскаль были реализованы на всех компах
                              во-вторых, никакая реализация не оптимизирует код лучше самого программиста
                              в-третьих, низкий уровень - это не только асм, но и работа с памятью
                              в-четвертых, у каждого типа проца свой ассемблер(даже структура другая)
                              в-пятых, почти весь распостранненый софт (ОС, базы данных, инет-проги и т.д.)
                              в древнейших времен присали именно на С/С++ или Паскаль
                              в-шестых, все распостраненные языки , кроме асма и некоторых еще, - платформенно независимые языки
                              иначе теряется весь смысл его использования ;)

                              Добавлено
                              кстати...
                              Цитата

                              Форт — это не совсем язык программирования; вернее, он перекрывает понятие языка программирования. Форт в большей степени является виртуальной машиной и операционной системой ForthOS. Синтаксис и семантику Форта можно расширить (в рантайме) до любого другого языка программирования. Использовать Форт в качестве метаязыка удобно благодаря доступности средств Форта, поддерживающих те языки, которые уже есть в Форт-системе. Все ресурсы Форт-системы доступны пользователю и представлены в виде словарных статей. Как правило, словарные статьи, определённые пользователем, имеют точно такое же представление в Форт-системе, как и все остальные словарные статьи, из которых и состоит вся Форт-система.

                              поэтому наш спор не совсем логичен, т.к.
                              это попытка выяснить кто сильнее - КИТ или ТИГР ;)
                              Форт не сколько язык программирования, а является виртуальной машиной и операционной системой
                              а это уже совершенно другое
                              и на самом деле сравнивать их нельзя, так как они имеют под собой различные задачи, ДАЖЕ на уровне проектирования

                              Добавлено
                              поэтому разгоревшийся в начале обсуждения спор о том, какой язык лучше, надо отбросить
                              как неотносящийся к проблеме данной темы
                                impik777, я так и не понял - ты читал Броуди? Обязательно прочитай обе книжки, а потом спорь, ибо все твои аргументы выглядят смешными с точки зрения Форт-программиста.

                                Цитата impik777 @
                                а какой бы не был хороший компилер или интерпретатор, всего он учесть не может
                                поэтому С/С++ и Паскаль реализую нам возможность, где надо говорить на машинном языке,
                                но и дают компу некии инструмент понять нашу речь

                                Вообще-то в Форте можно непосредственно записывать байты в исполняемый код.

                                Цитата impik777 @
                                ученому, незнаюшему особо тонко железо, конечно лучше выразить свои идеи на Форте,
                                я в этом безоговорочно согласен,

                                Да будет тебе известно, что молекулярная динамика - одна из самых критичных к скорости вычислительных задач, специально для неё строят терафлопные суперкомпьютеры. Моя программа уже сейчас догоняет по скорости программу, которую до этого использовали в нашей лаборатории, при условии, что я почти что не занимался оптимизацией.

                                Цитата impik777 @
                                Библиотеки не расширяют язык, они скрывают от программиста проблемы взаимодействия с железом, одновременно
                                давая ему возможность, что-то исправить в зависимости от текущей ситуации

                                В Форте они делают то же самое плюс расширяют язык.

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

                                MathLab
                                Lab View
                                С/С++ или Паскаль (точно сказать не могу)

                                В С++, как мне показали в начале настоящей дискуссии, есть некоторые средства к расширению языка, правда, я так и не понял, как они работают. Остальные перечисленные языки такой возможностью не обладают. Кстати, матлаб пишется Matlab

                                Цитата mo3r @
                                К примеру, поставил программу, а пользователь автоматически имеет все те средства для изменения программы, которые использовались при ее написании, и может настроить ее под свои цели(согласись, что на всех не угодишь).

                                Пользователю это не надо. Скорее, это может оказаться удобным для использования в программе.

                                Пользователю это не надо сейчас, когда сложилась такая ситуация, что производители софта не желают раскрывать исходники (или делать их понятными), а желают срубить с пользователя побольше бабок за новую версию программы, в которой есть возможности, отсутствующие в предыдущей версии, хотя их можно добавить буквально парой строк кода. Таким образом программистские способности большинства людей атрофируются и они даже не подозревают, какие возможности дало бы им программирование. Ещё буквально 20 лет назад всем пользователям приходилось программировать, и никто не жаловался.

                                В конце концов, программист тоже пользователь.

                                Цитата impik777 @
                                ПО ХОДУ ВЫПОЛНЕНИЯ ПРОГРАММЫ изменения кода бесмысленны, т.к пользователь понятия не имеет о том, как она работает
                                и не должен
                                даже на этапе написания проги, если вы юзаете чужую либу, вас не волнует как она сделана, вы работаете через интерфейс.
                                это принцип ИНКАПСУЛЯЦИИ

                                Принцип инкапсуляции нужен для того, чтобы было удобнее писать программы, а не чтобы запрещать программисту или пользователю делать то, что он хочет.

                                Цитата impik777 @
                                поэтому наш спор не совсем логичен, т.к.
                                это попытка выяснить кто сильнее - КИТ или ТИГР

                                Кит сильнее, адназначна 8-) Кит - десятки тонн, а тигр 800 кг. Так и здесь: Форт - это и язык программирования, и бесконечная расширяемость языка, и язык проектирования, и в некоторых реализациях операционная система и виртуальная машина. А перечисленные здесь языки - в лучшем случае два из этих пунктов. Плюс Форт весит меньше: мой Форт (тот, на котором я пишу молекулярную динамику) весит менее 100 килобайт.

                                Добавлено
                                Цитата AndNot @
                                Конструкция CREATE ... DOES>

                                Не очень понял, при чём здесь инкапсуляция и наследование. Посмотрел в Броуди, честно говоря, так и не понял, для чего она мне может понадобиться. У меня есть реализация работы с массивами, я её сделал без этой конструкции. Я хочу свои массивы переписать плюс сделать объекты, даже придумал как, но так и не придумал, как мне может помочь эта конструкция.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (31) « Первая ... 8 9 [10] 11 12 ...  30 31


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