Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.116.40.177] |
|
Страницы: (3) 1 [2] 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#17
,
|
|
|
Цитата Исмаил Прокопенко @ которая кроме основной задачи могла бы ещё анализировать свой код и при необходимости менять его, без "костылей" не получится. Вложи в свою программу компилятор и меняй на здоровье. Python, грубо говоря, так и работает. |
Сообщ.
#18
,
|
|
|
Цитата shm @ Python, грубо говоря, так и работает. Фитон - это не компилятор. Это интерпретатор |
Сообщ.
#19
,
|
|
|
Цитата Исмаил Прокопенко @ Фитон - это не компилятор. Это интерпретатор Так я и говорю "грубо говоря". В твоем случаешь компилируешь, загружаешь и запускаешь. |
Сообщ.
#20
,
|
|
|
Цитата Исмаил Прокопенко @ Интерпретатор, компилятор… Сейчас любой уважающий себя интерпретатор перед выполнением программу компилирует. Просто компилирует не в машинные коды, а в байт-код. Фитон - это не компилятор. Это интерпретатор |
Сообщ.
#21
,
|
|
|
Цитата amk @ Цитата Исмаил Прокопенко @ Интерпретатор, компилятор… Сейчас любой уважающий себя интерпретатор перед выполнением программу компилирует. Просто компилирует не в машинные коды, а в байт-код.Фитон - это не компилятор. Это интерпретатор А надо-то (по теме) наоборот. Чтобы "каждый уважающий себя компилятор мог интерпретировать свой код" |
Сообщ.
#22
,
|
|
|
Как насчет языка Erlang ?, сам на него посматриваю.
Цитата Горячая замена кода Для систем, которые не могут быть остановлены для обновления кода, Erlang предлагает горячую замену кода (англ. hot code upgrade). При этом в приложении могут одновременно работать старая и новая версии кода. Таким способом программное обеспечение на Erlang может быть модернизировано без простоев, а выявленные ошибки исправлены[8][33]. |
Сообщ.
#23
,
|
|
|
Цитата Исмаил Прокопенко @ В таком случае он просто превратится в интерпретатор.Чтобы "каждый уважающий себя компилятор мог интерпретировать свой код" Существует такая штука, как динамическая компиляция. Но в таком случае придётся всюду таскать компилятор языка. |
Сообщ.
#24
,
|
|
|
Пришла еще мысль, а ведь программа совершенно не обязательно должны иметь архитектуру "один исполнительный файл с кучей кода", можно использовать динамические библиотеки в работе. Вы можете программно править исходник, собирать библиотеку, отключать старую, подключать новую.
Это реализуемо тем же С++ и еще рядом языков. Правда, придется таскать с собой какой-нить компактный компилятор Ну и конечно же можно на сам крайняк менять код отраженный в озу, патчить страницы, занятие веселое, в общем-то , при высоких требованиях ко времени совершения операции замены кода имеет смысл. Добавлено К слову об интерпретаторах, код, написанный на асме тоже интерпретируется, правда уже самим процессором. Тоже вариант, если хотите. Правда, к языкам высокого уровня и сверх-высокого уровня не относится. |
Сообщ.
#25
,
|
|
|
Цитата simsergey @ К слову об интерпретаторах, код, написанный на асме тоже интерпретируется, правда уже самим процессором. Вы ошибаетесь. Код на АСМ-е ещё достаточно высокоуровневый. Там есть описания сложнейших структур данных, параметрических (причем вложенных) макросов и т.п. Код на АСМ-е КОМПИЛИРУЕТ специальная программа. Называется "ассемблер". А вот "машинный код" (т.е. просто набор ноликов и единичек) интерпретирует уже сам процессор |
Сообщ.
#26
,
|
|
|
Исмаил Прокопенко, ты так уныло троллишь, что даже отвечать лень.
|
Сообщ.
#27
,
|
|
|
shm Вы не в курсе какой код выполняет процессор?
|
Сообщ.
#28
,
|
|
|
Цитата Исмаил Прокопенко @ shm Вы не в курсе какой код выполняет процессор? |
Сообщ.
#29
,
Сообщение отклонено: negram -
|
Сообщ.
#30
,
|
|
|
Цитата Исмаил Прокопенко @ Вообщем нужен ЯПСВУ, который "искоропки" имел бы конструкции, которые позволяли бы писать программы, анализирующие и меняющие свой же собственный код во время компиляции. Т.е. чтобы программа являлась одновременно как бы пользовательским расширением компилятора и языка. Это ты как-бы про Форт рассказываешь. В Форте написание программы - это расширение языка в сторону задачи. Добавлено Цитата Исмаил Прокопенко @ Вообщем нужен ЯПСВУ, который "искоропки" имел бы конструкции, которые позволяли бы писать программы, анализирующие и меняющие свой же собственный код во время компиляции. Ну потому что на нем пишут не исходник, а "исходник исходника" если можно так выразиться. Вот вот. В Форте если тебе надо создать исполняемую программу, то ты пишешь программу, которая интерпретируясь и на лету переключая режимы интерпретации и компиляцми создаст исполняемую. Только Форт не язык сверхвысокого уровня. Он мета-язык, но насчет уровней он покрывает их все сразу. Им можно пользоваться на низком уровне, используя его как продвинутый макроассемблер, а можно на сколь угодно высоком, потому-что изюминка Форта - механизм порождения понятий. Такого нет в других языках. Из-за этого механизма в Форте из коробки нет, к примеру, массивов или записей. Просто потому, что и то и другое понятие порождается в нем в одну строчку. К примеру, массивы я привычно создаю так : ARRAY CREATE CELLS ALLOT DOES> SWAP CELLS + ; а записи так : -- CREATE OVER C, + DOES> C@ + ; а можно создать любые абстракции. Сколь высокого уровня. Все внутренности Форта программно доступны. Все что угодно можно в нем перекрыть и динамически и статически. Можно как угодно на лету изменить его синтаксис. Можно налепить на нем такое, что и опытный фортер никогда не узнает в нем Форта. Ну и к тому-же самая рекордно короткая реализация Форта влезла в 512 байт. И в 2 килобайта если без фанатизма. Из-за этого половина фортеров пишут на собственных Фортах. И я тоже. Но резьбу в мозгу для освоения Форта придется перенарезать. Добавлено Не туда прилетело что-ли ? Добавлено как-то криво сообщение вышло и не отредактировать и не удалить, чтобы перенабрать. |