На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Коротко о разделе:
Здесь разрешается создавать темы, относящиеся к любому языку программирования, для которого не существует раздела на форуме (например, Lisp, Tcl/Tk, FORTRAN и т.д.). Если раздел для нужного Вам языка есть, большая просьба создавать тему в нем.
Вопросы, связанные с JScript, Perl, PHP обсуждаются в разделе WWW Masters.

Обратите внимание:
1. Прежде чем задать вопрос, воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали.
2. Если Ваш вопрос связан с конкретным языком программирования, обязательно укажите название языка в имени темы.
3. Постарайтесь давать темам информативные названия. Темы с названиями типа "Помогите, горю" будут удалены.
4. Помните, чем грамотней будет задан Ваш вопрос, тем больше будет у Вас шансов получить на него ответ. Как правильно задавать вопросы
5. Ипользуйте тег [ code ] ...текст программы... [ /code ] для выделения текста программы.

Просьбы выполнить какую-либо работу за автора в этом разделе не обсуждаются. Темы с подобными просьбами будут перемещены или удалены. Для заказов у нас существуют специальные разделы: Разовые заказы и подработка, ПОМОЩЬ СТУДЕНТАМ.

Если кто не понял (а такие есть) — чтобы за вас решали ваши задачки, идите на другие ресурсы.

Полезные ссылки:
Есть. ;)
Наши Исходники | GPSS (en), GPSS (ru) (!) | Common Lisp | Tcl/Tk | Haskell | Lua
Модераторы: B.V.
Страницы: (3) 1 [2] 3  все  ( Перейти к последнему сообщению )  
> Выбор языка для программ, анализирующих и меняющих свой же собственный код.
    Цитата applegame @
    D вполне умеет подобное.

    А "F" наверное и подавно? :D
    Написать код, понятный машине, и дурак сможет. И только хороший программист сможет написать код, понятный людям
      Цитата Исмаил Прокопенко @
      которая кроме основной задачи могла бы ещё анализировать свой код и при необходимости менять его, без "костылей" не получится.

      Вложи в свою программу компилятор и меняй на здоровье. Python, грубо говоря, так и работает.
      Цитата TheMachine @
      т.е. в общем случае вы правы конечно, а мне надо спать больше а пить меньше
        Цитата shm @
        Python, грубо говоря, так и работает.

        Фитон - это не компилятор. Это интерпретатор
        Написать код, понятный машине, и дурак сможет. И только хороший программист сможет написать код, понятный людям
          Цитата Исмаил Прокопенко @
          Фитон - это не компилятор. Это интерпретатор

          Так я и говорю "грубо говоря". В твоем случаешь компилируешь, загружаешь и запускаешь.
          Цитата TheMachine @
          т.е. в общем случае вы правы конечно, а мне надо спать больше а пить меньше
            Цитата Исмаил Прокопенко @
            Фитон - это не компилятор. Это интерпретатор
            Интерпретатор, компилятор… Сейчас любой уважающий себя интерпретатор перед выполнением программу компилирует. Просто компилирует не в машинные коды, а в байт-код.
            Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
              Цитата amk @
              Цитата Исмаил Прокопенко @
              Фитон - это не компилятор. Это интерпретатор
              Интерпретатор, компилятор… Сейчас любой уважающий себя интерпретатор перед выполнением программу компилирует. Просто компилирует не в машинные коды, а в байт-код.

              А надо-то (по теме) наоборот. Чтобы "каждый уважающий себя компилятор мог интерпретировать свой код"
              Написать код, понятный машине, и дурак сможет. И только хороший программист сможет написать код, понятный людям
                Как насчет языка Erlang ?, сам на него посматриваю.
                Цитата
                Горячая замена кода
                Для систем, которые не могут быть остановлены для обновления кода, Erlang предлагает горячую замену кода (англ. hot code upgrade). При этом в приложении могут одновременно работать старая и новая версии кода. Таким способом программное обеспечение на Erlang может быть модернизировано без простоев, а выявленные ошибки исправлены[8][33].
                無駄に 5 分
                  Цитата Исмаил Прокопенко @
                  Чтобы "каждый уважающий себя компилятор мог интерпретировать свой код"
                  В таком случае он просто превратится в интерпретатор.
                  Существует такая штука, как динамическая компиляция. Но в таком случае придётся всюду таскать компилятор языка.
                  Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
                    Пришла еще мысль, а ведь программа совершенно не обязательно должны иметь архитектуру "один исполнительный файл с кучей кода", можно использовать динамические библиотеки в работе. Вы можете программно править исходник, собирать библиотеку, отключать старую, подключать новую.
                    Это реализуемо тем же С++ и еще рядом языков.
                    Правда, придется таскать с собой какой-нить компактный компилятор :)
                    Ну и конечно же можно на сам крайняк менять код отраженный в озу, патчить страницы, занятие веселое, в общем-то :D , при высоких требованиях ко времени совершения операции замены кода имеет смысл.

                    Добавлено
                    К слову об интерпретаторах, код, написанный на асме тоже интерпретируется, правда уже самим процессором. Тоже вариант, если хотите. Правда, к языкам высокого уровня и сверх-высокого уровня не относится.
                    無駄に 5 分
                      Цитата simsergey @
                      К слову об интерпретаторах, код, написанный на асме тоже интерпретируется, правда уже самим процессором.

                      Вы ошибаетесь. Код на АСМ-е ещё достаточно высокоуровневый.
                      Там есть описания сложнейших структур данных, параметрических (причем вложенных) макросов и т.п.

                      Код на АСМ-е КОМПИЛИРУЕТ специальная программа. Называется "ассемблер".

                      А вот "машинный код" (т.е. просто набор ноликов и единичек) интерпретирует уже сам процессор
                      Написать код, понятный машине, и дурак сможет. И только хороший программист сможет написать код, понятный людям
                        Исмаил Прокопенко, ты так уныло троллишь, что даже отвечать лень.
                        Цитата TheMachine @
                        т.е. в общем случае вы правы конечно, а мне надо спать больше а пить меньше
                          shm Вы не в курсе какой код выполняет процессор?
                          Написать код, понятный машине, и дурак сможет. И только хороший программист сможет написать код, понятный людям
                            Цитата Исмаил Прокопенко @
                            shm Вы не в курсе какой код выполняет процессор?
                            :facepalm:
                            無駄に 5 分
                                Цитата Исмаил Прокопенко @
                                Вообщем нужен ЯПСВУ, который "искоропки" имел бы конструкции, которые позволяли бы писать программы, анализирующие и меняющие свой же собственный код во время компиляции. Т.е. чтобы программа являлась одновременно как бы пользовательским расширением компилятора и языка.

                                Это ты как-бы про Форт рассказываешь. В Форте написание программы - это расширение языка в сторону задачи.

                                Добавлено
                                Цитата Исмаил Прокопенко @
                                Вообщем нужен ЯПСВУ, который "искоропки" имел бы конструкции, которые позволяли бы писать программы, анализирующие и меняющие свой же собственный код во время компиляции.
                                Цитата Исмаил Прокопенко @
                                Почему я назвал такой язык языком СВЕРХ высокого уровня?


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

                                Только Форт не язык сверхвысокого уровня. Он мета-язык, но насчет уровней он покрывает их все сразу. Им можно пользоваться на низком уровне, используя его как продвинутый макроассемблер, а можно на сколь угодно высоком, потому-что изюминка Форта - механизм порождения понятий. Такого нет в других языках. Из-за этого механизма в Форте из коробки нет, к примеру, массивов или записей. Просто потому, что и то и другое понятие порождается в нем в одну строчку. К примеру, массивы я привычно создаю так
                                : ARRAY CREATE CELLS ALLOT DOES> SWAP CELLS + ;
                                а записи так
                                : -- CREATE OVER C, + DOES> C@ + ;
                                а можно создать любые абстракции. Сколь высокого уровня. Все внутренности Форта программно доступны. Все что угодно можно в нем перекрыть и динамически и статически. Можно как угодно на лету изменить его синтаксис. Можно налепить на нем такое, что и опытный фортер никогда не узнает в нем Форта. Ну и к тому-же самая рекордно короткая реализация Форта влезла в 512 байт. И в 2 килобайта если без фанатизма. Из-за этого половина фортеров пишут на собственных Фортах. И я тоже. Но резьбу в мозгу для освоения Форта придется перенарезать.

                                Добавлено
                                Не туда прилетело что-ли ?

                                Добавлено
                                как-то криво сообщение вышло и не отредактировать и не удалить, чтобы перенабрать.
                                Сообщение отредактировано: B.V. -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 [2] 3  все


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1401 ]   [ 14 queries used ]   [ Generated: 22.09.17, 11:33 GMT ]